Program Change Button

@Greenman
get('foo') returns the value of the widget with id “foo”, do you have such a widget in your session and does it have a value suitable for a target option ? Looks like an unadvised copy-paste, I guess you should have written “midi:foo” here.

@Greenman spam it spam it !!
I’m agree with @jean-emmanuel the problem is not OSC but the midi protocol and the synth

i understand "i can spam it" that's it ? so i keep going :slight_smile:

No actually.

Ah mais non pas du tout it's wanted. i believed it was the name of the midi parameters foo in my screenshot.

So this works with a push button :

How can i get the same result using the script field ?
this doetn't work. i send a note midi signal on the channel 1 with a value of 60 and a velocity of 127 right ?


So what i miss ?

You missed my point: get() returns a widget’s value, you don’t need it here and should only write "midi:foo", the reason it’s been written above with get() is because @zoltan stores that information (the target) in a variable widget and retrieves its value to define the target argument.

1 Like

ah mais qu’il est c… :slight_smile: (no translation available)
of course
image

what is the syntax to get the value of the off value to send velocity to 0 when up

Hello,

So to change instrument in Helm via a push button,

With the points in mind (this is sonic pi syntax but you get it)

midi_cc 0, bank #midi control channel 0
midi_cc 32, folder #midi control channel 32
midi_pc, patch #midi program change


Cheers

1 Like

Hi,

I had a matrix button that was sending Program Change with this :

JS{{
var props = {}
var prgm = [6, 9]
var labels = ["Bass Cyber v3", "Bass_Simple Bass"]

props.label = labels[] props.mode = "tap" props.address = "/program" props.preArgs = [@{variable_bass_mc}, prgm[]]
props.target = @{variable_midi_port}

return props
}}

I came back and it doesn't work anymore

every time I hit a button it sends me this : (Doesn't program change)

RECEIVE | ENDPOINT(midi_out) TYPE(PROGRAMCHANGE) CHANNEL(4) DATA(6)
RECEIVE | ENDPOINT(midi_out) TYPE(PROGRAMCHANGE) CHANNEL(4) DATA(1)

If I try with a simple button : (and it Program Change my VST)

RECEIVE | ENDPOINT(midi_out) TYPE(PROGRAMCHANGE) CHANNEL(4) DATA(6)

Am I missing something ?

Best
Z

Can you paste your code again but between triple backticks ? The code formatting is messed up otherwise.

```javascript
// code goes here
``` 

sorry I just discovered it - was looking for a complicated keyboard combo ?!

JS{{
var props = {}
var prgm = [6, 9]
var labels = ["Bass Cyber v3", "Bass_Simple Bass"]

props.label = labels[$]
props.mode = "tap"
props.address =  "/program"
props.preArgs = [@{variable_bass_mc}, prgm[$]]
props.target = @{variable_midi_port}

return props
}}

This shows the correct program change is sent but another one is sent right after. It could be worth checking OSC output directly (with the server's debug option to true) to make sure of that.