I am trying to remote control a synth that can send its current synthesis parameters as SysEx blocks of data. This is handy because in theory it allows initialization of the NG event settings to the actual values in the synth. The synthesis parameters themselves can be controlled via NRPNs.
However, the SysEx data sent by the synth is organized in nibbles. E.g., a parameter value of 63 is sent as 03 15 (0x03 0x0F), and 64 is sent as 04 00 (0x04 0x00). Is there a way to convert that into regular 7bit or 14bit values that can then be output by the NG? Something like
fails because it can only take into account the upper or the lower nibble of the value I’m after, as syxdump_pos points to a single byte in the ^dump only.
I did something comparable (I guess) in C for converting between u16s and u32s in mem and u8s or u7s for sysexes. Maybe the code snippet below is of some use to you. I’m not familiar with the NG, so maybe not…
When you search in the .NGC documentation for the keyword “nibble”, you will find the appr. variables which allow to extract values on various ways: http://www.ucapps.de/midibox_ng_manual_ngc.html
The ^dump feature won’t work here, instead you’ve to extract the values with individual EVENT_RECEIVERs (unfortunately).
This also means, that the max. value position which can be parsed on this way is limited, because the maximum stream length is 128 bytes, and each variable consumes 2 bytes.
However, here a usage example for the case that these limitations are acceptable:
The values 0x45, 0x67 and 0x12 will be correctly forwarded to ENC:1..ENC:3
BUT: you need a MBNG update, because previous versions didn’t forward the value if the “stream” didn’t end with 0xf7 (now the value is forwarded with 0xf7, or if the last byte in the stream matched)
Oh, I see. I was thinking of creating an editor for Mutable Instruments’ Ambika synth, but the patch dump is larger than that, leaving about half of the parameters unaccessible. However, Ambika also provides direct access to its parameter RAM (kind of like the old basic PEEK). I’ll see if I can make use of that instead.