Synthmaker will not send "C200" format sysex program change?
Archive · 20123 old posts
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
kreeper_6 ·
This has been killing me for days, I can send the message from any other source but Synthmaker. Is this a bug?
C2 represents the midi channel number and 00 the program number. In a string, "C200" to the sysex->MIDI and triggered it will not send. I'm watching through a MIDI monitor. All other messages are working, everyting from patch dump requests, to writes, to parameter changes.
What gives?
trogluddite ·
Welcome to the forum, kreeper,
The problem here is that program change is not a SysEx message - it is a regular channel message. The SysEx primitive is very strict about this, and won't send out a hex string unless is true SysEx - it has to be a message that begins with F0 and ends with F7.
To send a program change, or notes, controllers, aftertouch etc. (i.e. messages with a channel(, you have to use the 'MIDI Event' primitive...
To use this, you need to do a little translation of your hexadecimal numbers to get the four values needed by the primitive.
Status - this indicates the message type. In real MIDI this number is combined into a single byte along with the channels ("C2" in this case). The first digit "C" represents the type - decimal value 12. But because it it is the top 4bits of an eight bit value, it needs multiplying by 16 to give 192.
Channel - the MIDI channel that you want to use. Note that this is the actual channel (1...16). In your hex string this is the second digit of the first byte "2" - but because the hex number goes from 0...F (i.e. 0...15 decimal), this is actually a message for channel 3, not channel 2.
Data 1 - your actual program number would go here (converted to decimal) - that's the second byte; the last two digits "00" - nice and easy, that's just zero. Again you have to watch out for the numbering - the value here goes from 0-127, but some synths will display that as 1-128.
Data 2 - You don't need that one for a program change, so the value will be ignored. It will be used for messages that need extra data, such as the velocity for a note.
This little table shows the data needed for each different kind of channel message...
PS) There are integer <-> hex convertors in the toolbox that might save a bit of hassle if you have a lot a values to convert.
kreeper_6 ·
Ahhhh. Thank You! 😀
Reading back in the manual for this specific synth the section does in fact read as "1 - Channel Messages". Definitely clears my confusion away.
With all your recommendations in mind I came up with this and it works very much so. 🙂
I gotta give so much thanks to the wealth of information @ the forum here. I literally got into the program merely a few days ago and was able to come up with a fully working Controller. I took to the program very easily understanding schematics but only ever having done DIY circuit builds (GuitarPedals/SynthCircuits - Transfer/etching/drilling). Tackled SysEx and hopefully the full MIDI spec thanks to all the helpful tips. In all honesty this would have been impossible without the wealth of knowledge here being able to extract bits of helpful information here and there , not to mention all the GUI/Module packs available to analyze.
It seems I've showed up in the middle of the FlowStone transition and I hope that both the Developers and its community members are able to hold together as what I've been able to accomplish in such a short time would be all but impossible without. I hope too see the knowledgeable members stick around, you have helped more than you know.
Thanks Again! 😍
Wrote something here? To have a post removed or your name hidden, write to [email protected].