How to detect channel correctly? #418
Replies: 2 comments 5 replies
-
From the adaptation programming manual: " Confusion about MIDI channel and "Device ID".Note that many synths call the individual setting its Device ID and not the MIDI channel. Think of the Device ID as a channel used only for sysex messages. The idea was if you have more than one device of the same type, you still want to be able to communicate with each device separately, so you would set them to different device IDs in their setup and then the computer. In many documents (and the Orm) this gets confused/mixed up/used interchangingly with MIDI channel, so please be aware there are subtle differences. Note that also many synths while allowing to specify a device ID actually will ignore it when being addressed. Many implementations are incomplete. What works mostly: createDeviceDetectMessage is called either once or 16 times, once for each MIDI channel. That depends on the return value of needsChannelSpecificDetection(). channelIfvalidDeviceResponse() should return -1 on a message that is not from the synth, and the MIDI channel when it is correct. Sometimes, you cannot spot the MIDI channel from the message, then I just return 0. channeIfValidDeviceReponse() might additionally detect the sysex device ID of the synth. This can be stored in a global variable in the python module and later be reused when creating messages with a specific device ID. On startup, the "Quick detect" is run - this calls createDeviceDetect with the stored MIDI channel to the stored MIDI interface, and expects a positive answer via channelIfValidDeviceResponse(). The process is a bit quirky given there are so many different ways to do this. Check the settings file (%APPDATA%\knobkraftorm\knobkraftorm.settings ) before launching the Orm, and then check the MIDI log (without running manually the autodetection) to see if the synths were probed on the correct channels and devices. |
Beta Was this translation helpful? Give feedback.
-
Chris, I've read this before.... except the last paragraph, which is exactly what I needed to move forward. Thanks 👍 |
Beta Was this translation helpful? Give feedback.
-
For most synths, the auto-detected MIDI channel is wrong.
What can I do about it?
needsChannelSpecificDetection doesn't make a difference.
Can I force KK to force load MIDI channel from the adoption file?
(considering I keep my physical setup fixed)
I know I need to better understand createDeviceDetectMessage and channelIfValidDeviceResponse if I want to try to improve the adoptions.
Beta Was this translation helpful? Give feedback.
All reactions