flexoffset Posted February 22 Share Posted February 22 I have a Yamaha Motif ES synth for which I'm building an environment in Logic 10.7.7. This consists primarily of SysEx faders. For example, on the Motif, F0 42 10 7F 00 0A 00 01 VAL 7F would select MODE CHANGE. That's easy since there is only 1 value to tweak with the fader. However, I've run into two instances where I'm stuck, as there are multiple values to tweak. I suppose I have three questions: 1) How to I do about iterating through these multiple bit options on Master Tune and Output Gain? 2) Can you please explain what the Yamaha manual is trying to tell me here? 3) Is it possible to use multiple faders to control multiple VAL slots in a SysEx message? Many thanks. MATER TUNE F0 43 10 7F 00 00 00 02 then what?? 7F -102.4 – +102.3 [cent] 1st bit3-0 → bit15-12 2nd bit3-0 → bit11-8 3rd bit3-0 → bit7-4 4th bit3-0 → bit3-0 INDIVIDUAL OUTPUT GAIN F0 43 10 7F 00 00 00 10 then what?? 7F bit0: 0/+6dB 1 & 2 bit1: 0/+6dB 3 & 4 bit2: 0/+6dB 5 & 6 bit3: 0/+6dB 7 & 8 bit4: 0/+6dB 9 & 10 bit5: 0/+6dB 11 & 12 bit6: 0/+6dB 13 & 14 Quote Link to comment Share on other sites More sharing options...
des99 Posted February 22 Share Posted February 22 You are always going to be limited in the complexity of encoding/decoding sysex message formats over using dedicated software for this, unfortunately. If you're hitting the limits of what Logic can do with sysex faders, there's not a huge amount further you can go with this approach. Quote Link to comment Share on other sites More sharing options...
flexoffset Posted February 22 Author Share Posted February 22 Thx for the reply. Just so I'm clear: Those two parameters - and any that are similarly styled -- are beyond the scope of what the environment can do? Quote Link to comment Share on other sites More sharing options...
Solution des99 Posted February 22 Solution Share Posted February 22 Extracting multiple different parameters out of a sysex string, performing common sysex manipulations like bitwise operators, masking, nibble en/decoding, ASCII tables and unpacking multiple parameters and so on are all things relatively easily done with proper programming or sysex software dedicated to the task, but aren't really doable in Logic's Environment, which is not a programming environment. Sometimes you might be able to find some hacky workarounds for some things, but like I say, the limits are easy to hit if you have a sysex format that's in any way complex, and the things listed above, like in the documentation you show, aren't easy to do with Logic's relatively limited sysex support. 3 Quote Link to comment Share on other sites More sharing options...
gacki Posted February 23 Share Posted February 23 Those are two examples of two different problems (and strategies) often encountered with SysEx. des99 already gave an introduction. "Master Tune" is clearly a 16 bit parameter meaning that the whole parameter encompasses 16 bit. The problem with MIDI data is that we only have 7 bit at our disposal in SysEx (the 8th bit is the status bit). This in turn means that we have to split those 16 bit across multiple MIDI bytes (each allowing up to 7 bit). Since we're having a 16 bit parameter we're going to need at least 3 bytes; a possible scenario to split it 7-7-2. Yamaha choose 4 bytes instead (going 4-4-4-4); this has the advantage of making the data more easily readable and in general slightly easier to handle. Different manufacturers have used different approaches to this problem. "Individual Output Gain" is completely different: here are several parameters combined. This is pretty bad because it requires a slider in software (or hardware) to "know" about the other parameter values. Basically if you want to change the value for pair 3&4 you have to know the values for 1&2, 5&6, 7&8 and so on as well and have to incorporate those values into the SysEx message, too. This is not a problem when first transferring the data from the device (by requesting a SysEx dump) and working then "externally" on those (now known) bytes. Back in the day when all memory was very expensive it was completely normal to pack several parameters into a single byte inside the devices. Since Yamaha has chosen a SysEx format that basically mimics the internal memory structure of the device we're ending now with this unfortunate situation. 2 Quote Link to comment Share on other sites More sharing options...
flexoffset Posted February 23 Author Share Posted February 23 Thank you for the added insight. I'll just use the environment for the basic things. Des99 mentioned more dedicated software has no issue with these sorts of parameters. Yamaha has an editor for PC that indeed handles it all, and I think it remains on my laptop. I'd rather do it all on the mac. I suppose something like Pd, Max, ... or even CTRLR could manage through its Lua scripting? There appear to also be a range of python MIDI libraries on github. I have enough programming experience do severely endanger myself so I might dive down that rabbit hole. Both of your posts have been very enlightening. 1 Quote Link to comment Share on other sites More sharing options...
des99 Posted February 23 Share Posted February 23 Yes, those apps intentionally support these kinds of features, because a wide variety of devices they support require them. 1 Quote Link to comment Share on other sites More sharing options...
ABkasti Posted March 7 Share Posted March 7 (edited) I have exactly the same problem with the bits. Just I am programming my novation remote 1. but HAlf solution or a general thing is when the size indicator? after the sysex adress F0 43 10 7F 00 00 00 02 then what?? 7F When the size is greater than 1 eg 2 add a 00 After! so: 00 00 02 00 if size is 4 add a 03 00 00 02 03 to count one (128) up. But I havnt been able to find where the Bit stuff is hiding. oh add 3 zeros to get the first bit set values 43 10 7F 00 00 00 02 00 00 00 DV This code adjust around "0 -+1.5" 43 10 7F 00 00 00 02 00 04 00 7F add this 00 04 00 play around with counting up or down on the parameters 04 00 Found with trial and error tha this the highest tuning (+102.3): 43 10 7F 00 00 00 02 00 07 1F DV Edited March 7 by ABkasti researching 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.