Add inputs
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package nl.astraeus.vst.chip.audio
|
package nl.astraeus.vst.chip.audio
|
||||||
|
|
||||||
|
import org.khronos.webgl.Uint8Array
|
||||||
import org.w3c.dom.MessageEvent
|
import org.w3c.dom.MessageEvent
|
||||||
|
|
||||||
object VstChipWorklet : AudioNode(
|
object VstChipWorklet : AudioNode(
|
||||||
@@ -7,6 +8,20 @@ object VstChipWorklet : AudioNode(
|
|||||||
"vst-chip-processor"
|
"vst-chip-processor"
|
||||||
) {
|
) {
|
||||||
var volume = 0.75
|
var volume = 0.75
|
||||||
|
var fmModFreq = 0.0
|
||||||
|
set(value) {
|
||||||
|
field = value
|
||||||
|
postMessage(
|
||||||
|
Uint8Array(arrayOf(0xb0.toByte(), 0x4b.toByte(), (value * 127).toInt().toByte()))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
var fmModAmp = 0.0
|
||||||
|
set(value) {
|
||||||
|
field = value
|
||||||
|
postMessage(
|
||||||
|
Uint8Array(arrayOf(0xb0.toByte(), 0x4c.toByte(), (value * 127).toInt().toByte()))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onMessage(message: MessageEvent) {
|
override fun onMessage(message: MessageEvent) {
|
||||||
console.log("Message from worklet: ", message)
|
console.log("Message from worklet: ", message)
|
||||||
|
|||||||
@@ -169,21 +169,41 @@ object MainView : Komponent(), CssName {
|
|||||||
Midi.send(data)
|
Midi.send(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
div {
|
div(ControlsCss.name) {
|
||||||
include(
|
include(
|
||||||
KnobComponent(
|
KnobComponent(
|
||||||
value = VstChipWorklet.volume,
|
value = VstChipWorklet.volume,
|
||||||
label = "Volume",
|
label = "Volume",
|
||||||
minValue = 0.0,
|
minValue = 0.0,
|
||||||
maxValue = 1.0,
|
maxValue = 1.0,
|
||||||
step = 2.0 / 127.0,
|
step = 2.0 / 127.0
|
||||||
width = 200,
|
|
||||||
height = 160
|
|
||||||
) { value ->
|
) { value ->
|
||||||
println("Value changed: ${formatDouble(value, 2)}")
|
println("Value changed: ${formatDouble(value, 2)}")
|
||||||
VstChipWorklet.volume = value
|
VstChipWorklet.volume = value
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
include(
|
||||||
|
KnobComponent(
|
||||||
|
value = VstChipWorklet.fmModFreq,
|
||||||
|
label = "FM Freq",
|
||||||
|
minValue = 0.0,
|
||||||
|
maxValue = 1.0,
|
||||||
|
step = 2.0 / 127.0
|
||||||
|
) { value ->
|
||||||
|
VstChipWorklet.fmModFreq = value
|
||||||
|
}
|
||||||
|
)
|
||||||
|
include(
|
||||||
|
KnobComponent(
|
||||||
|
value = VstChipWorklet.fmModAmp,
|
||||||
|
label = "FM Ampl",
|
||||||
|
minValue = 0.0,
|
||||||
|
maxValue = 1.0,
|
||||||
|
step = 2.0 / 127.0
|
||||||
|
) { value ->
|
||||||
|
VstChipWorklet.fmModAmp = value
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -195,6 +215,7 @@ object MainView : Komponent(), CssName {
|
|||||||
object StartSplashCss : CssName
|
object StartSplashCss : CssName
|
||||||
object StartBoxCss : CssName
|
object StartBoxCss : CssName
|
||||||
object StartButtonCss : CssName
|
object StartButtonCss : CssName
|
||||||
|
object ControlsCss : CssName
|
||||||
|
|
||||||
private fun css() {
|
private fun css() {
|
||||||
defineCss {
|
defineCss {
|
||||||
@@ -282,6 +303,15 @@ object MainView : Komponent(), CssName {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
select(ControlsCss.cls()) {
|
||||||
|
display(Display.flex)
|
||||||
|
flexDirection(FlexDirection.column)
|
||||||
|
justifyContent(JustifyContent.center)
|
||||||
|
alignItems(AlignItems.center)
|
||||||
|
margin(1.rem)
|
||||||
|
padding(1.rem)
|
||||||
|
backgroundColor(Css.currentStyle.mainBackgroundColor)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user