|
Post by mo13 on Dec 17, 2021 15:40:38 GMT
I am wondering if there is such a thing you could do in Streambyter as micro values,I want to be able to select 999 samples by using a fader, the receiving device accepts CC values for that. if such thing even would be possible, what kind of midi messages would be most suitable for that ? many thanks ahead!
|
|
|
Post by uncledave on Dec 17, 2021 19:25:43 GMT
Hi. I expect you know that the range of a MIDI CC value is 0-127 (7 bits), so a simple CC cannot select from 999 samples.
What is the receiving device, and how does it use CC values to make the selection? If it just uses a single CC, it's limited to 0-127.
However, the first 32 CCs can be paired with the second 32, creating double CCs that can handle 14-bit data. The lower-numbered CC has the Most Significsnt 7 bits, the higher numbered has the LSB. So, for example, CC #0 is paired with CC #32, and so on up to 31 and 63. If the receiving device uses this mode (not everything does), it's easy to send the two CCs, and I can show you how to split the number into MSB and LSB.
Reading your post, it won't be possible to select from 999 items using a single hardware fader, since faders only send a single CC, limited to 0-127. You might be able to use two faders to set the MSB and LSB, but it'll still be hard to set them accurately. If your controller has encoders, and you can set them to send increments, you can use a script to convert that into a 14-bit value. I have a script for that.
|
|
|
Post by mo13 on Dec 17, 2021 19:52:45 GMT
Thanks for the quik reply, the receiving device is Expert Sleepers Disting Ex, it handles 127 CC values but you can chose up to 999 values with it’s own hardware encoder.
I have 2 options for faders, Michigan Synthworks F8R which has I2C midi and with which I’m not familiar with, but this is from the Disting manual and if I understand correctly, the F8R can act in the same manner as the encoders on receiving the hardware?
I2C mappings let you control algorithm parameters via the I2C bus (see below). Every parameter can be assigned an I2C controller simultaneously, and each parameter's response to that controller set independently. The I2C mappings set the base parameter values, exactly as if you had changed the value manually with the 'V' knob. When you switch to a new algorithm, default I2C mappings are applied, which is to control parameters 7 and up (i.e. everything except the common attenuverter parameters) from I2C controllers 0 and up. The controller range of 0-16383 is mapped to the parameter's full value range.
Another option is Faderfox EC4 which does have the setting that you’ve mentioned :
CCAh - two control change commands (MSB/LSB) 14 bit highres mode (values 0 to 16383)
in case the first option is the most accurate and easy one to set up then I would just go with that, but again the midi I2C concept is brand new to me so would be good know which one is more suitable to achieve the above.
|
|
|
Post by mo13 on Dec 17, 2021 20:12:47 GMT
A little extra from the manual on I2C which mention's more about your solution :
set parameter X to value Y (using 0..16384 range) <address> 0x5E <side / parameter index> <value MSB> <value LSB> The 0-16384 value range will be scaled to the actual parameter value range.
seems like that should be the one then without a need for a script?
|
|
|
Post by uncledave on Dec 17, 2021 21:48:03 GMT
A little extra from the manual on I2C which mention's more about your solution : set parameter X to value Y (using 0..16384 range) <address> 0x5E <side / parameter index> <value MSB> <value LSB> The 0-16384 value range will be scaled to the actual parameter value range. seems like that should be the one then without a need for a script? Maybe, but will it be compatible with the receiver? I don't know anything about your gear, all of which seems to have built-in magic. Just remember that the signals between devices will always be the basic 3-byte MIDI messages, no matter how they are generated magically.
|
|
|
Post by uncledave on Dec 17, 2021 22:40:48 GMT
OK, so I read the Disting manual; that's quite a device. Both it and your F8R are Eurorack modules using the I2C protocol. This has nothing to do with MIDI or StreamByter. If you can make them work together, you should be all set. Can you configure the F8R to send that 0x5E message with the correct data? If not, you might need to send MIDI to some other module that can convert it into the command you need.
There's not much we can do to help you in this, since I2C is a totally different protocol. You now know how MIDI can handle numbers greater than 127, and I'll be glad to help if you need to script some of that. (By the way, I should mention that you might run into another way MIDI can handle big numbers, the RPN/NRPN method. It's even stranger, since it requires 4 messages to send one value.)
|
|
|
Post by uncledave on Dec 17, 2021 23:17:52 GMT
Reading some more, it looks like you can use the I2C Mapping setup in Disting to map one of those faders to the parameter you want (is it the sample folder number). The 14-bit value in the I2C message has enough resolution to span 0-999. Still not sure how you're going to adjust the fader so precisely. So, I think you can do it entirely with I2C, no need to involve MIDI at all.
|
|
|
Post by mo13 on Dec 19, 2021 7:48:36 GMT
thanks for looking into it uncledave, I tested it with I2C, as you've mentioned - the purpose was to select 999 samples and indeed it's nearly impossible to adjust the fader precicely. It always skips a few increments. so I was wondering since my other controller (EC4) can send both NRPN or LSB/MSB if that might work more accurately, I can set the display mode on EC4 to 1000 incements but then again I lack the knowldge behind it on how the Disting would receive that through 14bit values. Would gladly test the script for it though!
|
|
|
Post by uncledave on Dec 19, 2021 11:13:30 GMT
As I read the disting manual, it does not accept MIDI CC beyond the normal one-byte format. This is something that must be explicitly implemented in the device, and it's actually pretty uncommon.
However, there is hope. Disting accepts a wide variety of MIDI SysEx messages, including one to set any parameter to a 16-bit value. If you can show me what EC4 sends in LSB/MSB mode, I could whip up a script really easily. Use a MIDI monitor and screen grab a couple of low values and some high ones. I'm especially interested in the order in which it sends the two CCs.
BTW, which disting mode are you using? Multisample, Wavetable, ?
|
|
|
Post by mo13 on Dec 19, 2021 12:00:46 GMT
I'm using the 6 SD Trigs mode. so in this case CC7 selects 999 sounds from the first folder, CC8 from second and so on. 6 folders in total - CC 7 to 14 this is how EC4 is set up, and I would like to use 6 of it's encoders for file selection :  from the manaul : CCAh - two control change commands (MSB/LSB) 14 bit highres mode (values 0 to 16383) 0 to 31 (MSB) for high CC resolution mode (32 to 63 for LSB follows automatically) here is what's on the monitor :  as you can see when it reacher 127 from value 0 it restarts again from value 1 so I assume that's what we're looking for?
|
|
|
Post by uncledave on Dec 19, 2021 12:33:23 GMT
Looks good. It'll take a few minutes. I wasn't expecting multiple parameters. Should be no problem though.
Do you have a way of sending MIDI to Disting?
|
|
|
Post by mo13 on Dec 19, 2021 13:04:02 GMT
nice, certainly - Midifire - EC4 - Streambyter - Disting
|
|
|
Post by uncledave on Dec 19, 2021 17:10:34 GMT
OK, here we go. First, I have the Disting manual for firmware 1.11. The way I read the description of SD 6 Triggers is that you can select one folder with param 7, then 6 files with params 8-13. Anyway, the script is configured to use 6 CCs from 7-12, as you described. You can change it however you like by adjusting the few parameters at the top. The attached file is a zipped copy of a file saved by stand-alone StreamByter. You will need it to access the file. It's a free app. Download the file, unzip it, tap and it should open in StreamByter. To use it in StreamByter AUv3, you would need to save it to iCloud. To use it in MidiFire, select all the text and copy it to a StreamByter block in MidiFire. Hook it up to the EC4, put the MidiFire monitor on the output, and open its large view to see the SysEx messages being sent. I assume the messages always come in pairs, with nothing else in between. You should probably avoid turning two knobs at once, just in case that pairing is disrupted. I've tested this using another script that converts my incremental encoders into 14-bit CCs, like what EC4 should be sending, and it generates the correct SysEx stream as I read the manual. Attachments:DistingSelect.sbr.zip (1.26 KB)
|
|
|
Post by mo13 on Dec 19, 2021 18:44:30 GMT
what can I say...all instantly working + super precise now and I only need to set the upper value on EC4 to 008 then it stops the increment at 1032, otherwise on 007 it stops at 903. thank you uncledave  !
|
|
|
Post by uncledave on Dec 19, 2021 19:07:00 GMT
what can I say...all instantly working + super precise now and I only need to set the upper value on EC4 to 008 then it stops the increment at 1032, otherwise on 007 it stops at 903. thank you uncledave  ! Hey, you're very welcome. I was prepared for all sorts of glitches, since I have none of the hardware. Glad to hear it's working. That SysEx method on the Disting seems like a powerful way to get right into its parameters with maximum accuracy and precision. Cheers!
|
|