ctreitzell
Member
- Messages
- 4,738
it's a bunch of docsany chance to share your doc in regards to sysx Todd? i'm intrigued.. cheers
how would I share them?
Google Drive, I guess
I'd need to get my feet back under the desk on it, I guess
it's a bunch of docsany chance to share your doc in regards to sysx Todd? i'm intrigued.. cheers
it's a bunch of docs
how would I share them?
Google Drive, I guess
I'd need to get my feet back under the desk on it, I guess
OK, let's get some context before anyone dips their toes into this ocean and faces a deluge of info.
The very first thing to realize is that there are only 14 Global SysEx IDs
A SysEx ID defines a target parameter of an Algorithm. Some algorithms have 70 parameters capable of SysEx remote control. More commonly, there are about 50 parameters per algo which can be remote controlled.
In their infinite wisdom, Lexicon did not use the same SysEx ID for like parameters from algo to algo.
That means that usually there are around 35 to 50 parameters per algo that can be accessed directly by SysEx; yet those IDs need to be looked up in a table. I have a massive spreadsheet with all the parameters in a vertical column and all the 43 algos in a horizontal row and the ID numbers in cells.
Next you need to know how many ticks per parameter. Some have two ticks....some have 40,000 ticks!
I'll come back to this...
OK, so continuing on from post #1203
1- every algorithm has different parameter IDs and I've created an Exel document for that;
2- I've made another Exel document which gives the number of ticks, the display syntax for each tick and the correct midi number/value for every tick.
3- I've got another Exel doc which has the midi numbers/values correlated to SysEx.
The reason I have the MIDI number/values is because MIDI Designer Pro 2 uses those values for its controls and then translates those numbers to SysEx in the "background"
It would be possible to use the Named Tick document to look up the display syntax you want and get the midi value you want,
then input the midi number into an online SysEx to MIDI calculator and determine the SysEx value to add to the SysEx message to input into a midi controller. This Named Tick document has a SysEx example message included for every tick range, but since the parameter IDs are different for every algorithm, it made no sense to make a document for the SysEx exact messages.
Alternatively, my MIDI to SysEx conversion doc could be used.
So for every parameter remote control message you would want to send
you'd need to input a parameter ID and a value.
The parameter IDs are a single SysEx byte (00-7F).
The VALUEs are four bytes, which are Lexicon LSB first.
Sounds complicated? Well, it isn't as bad as it might seem. Let's look at an example.
Let's look at changing the Key in a Res2>Plate Algo. There are only 12 ticks which are quite human readable.
Here is the example SysEx message in my named tick doc:
F0 06 07 7F 0B 01 29 00 V1 V2 V3 00 F7
The 7th byte tells the PCM8x to which parameter to send the value to
Well, that parameter ID is not correct; the SysEx ID for the Key parameter for RES2>Plate is 47, not 29.
So needs to be changed to:
F0 06 07 7F 0B 01 47 00 V1 V2 V3 00 F7
BUT, there is no value in this message.
The value of the message is represented in the last four bytes where I have V1 V2 V3 V4.
OK, well SysEx always uses the same protocol for a message
F0= start of SysEx message
F7= end of SysEx message
and many controllers will want these bytes dropped from the message as the controller has likely been programmed to add those bytes to your messages.
Also, V1, 2, V3, V4 I have used in my documentation to show variable bytes. To add a value to the message you need to determine that and add it to the SysEx:
Starting with:
F0 06 07 7F 0B 01 47 00 V1 V2 V3 V4 F7
we need to replace the Vn bytes with actual values:
F0 06 07 7F 0B 01 47 00 00 00 00 00 F7 will send an actual value to a PCM80 depending upon which algorithm is loaded.
If Res2>Plate is loaded, this message will send a message to set the Key in the Pitch section to the lowest value which would be a midi value of 0 which equals the key of C for this parameter.
Following on from that logic, we can look at all the tick values for this Key parameter:
0 \C
1 \C# or Db
2 \D
3 \D#:Eb
4 \E
5 \F
6 \F#:Gb
7 \G
8 \G#:Ab
9 \A
10 \A#:Bb
11 \B
well, all those values might seem to translate straight across in SysEx for any value range less than 16 ticks, but not quite; we can now get the SysEx value for each tick:
F0 06 07 7F 0B 01 47 00 00 00 00 00 F7 = 0; which = C
F0 06 07 7F 0B 01 47 00 01 00 00 00 F7 = 1; which = C# or Db
F0 06 07 7F 0B 01 47 00 02 00 00 00 F7 = 2; which = D
F0 06 07 7F 0B 01 47 00 03 00 00 00 F7 = 3; which = D#:Eb
F0 06 07 7F 0B 01 47 00 04 00 00 00 F7 = 4; which = E
F0 06 07 7F 0B 01 47 00 05 00 00 00 F7 = 5; which = F
F0 06 07 7F 0B 01 47 00 06 00 00 00 F7 = 6; which = F#:Gb
F0 06 07 7F 0B 01 47 00 07 00 00 00 F7 = 7; which = G
F0 06 07 7F 0B 01 47 00 08 00 00 00 F7 = 8; which = G#:Ab
F0 06 07 7F 0B 01 47 00 09 00 00 00 F7 = 9; which = A
F0 06 07 7F 0B 01 47 00 0A 00 00 00 F7 = 10; which = A#:Bb
F0 06 07 7F 0B 01 47 00 0B 00 00 00 F7 = 11; which = B
If these messages aren't working on a PCM81; change the 3rd byte from 07 to 10.
That third byte targets the actual actual device...I know I already decoded these messages in this thread a while back and explained the Lexicon LSB.
If you've been able to follow on from here, this is the first step.
There are some other things to get to grips with:
Hex to decimal conversion;
Lexicon proprietary LSB first
When we get into parameters with a lot of ticks, an understanding will be important.
Try this, see how you go and and let us know; I'll come back and start on the bigger ranges.
I gotta do some other stuff right now, tho![]()
thanks for this Todd. Can you recommend an easy/convenient app for the mac to send these messages to the pcm8x?
I have only sent patches with the snoize sysx librarian app so far..
cheers
My pleasure@ctreitzell
These posts are excellent. Thank you for taking the time. I'd really like to use the Sysex capabilities of my RJM Mastermind more as it would save me having to patch every preset I use, although I understand that the Sysex parameter IDs are unique to each algorithm.
This information is invaluable.
My pleasure
I don’t want to fully derail this mammoth thread…that said, this info is PCM8x specific, even if the overall SysEx is somewhat generic
so, I guess I’ll keep posting until someone asks me to move somewhere else
Yeah @pangea2003 … with what device to send the messages? I use MIDI OX…my Mac knowledge is nil
RJM MM is what you want to use! @BenniD has his Stream Deck. I’m using a Morningstar MC-8.
Maybe you guys ask me for specific parameter control you want program and I’ll cover it
@husker the best part is you don’t have to do any Patching and whatever patching you do have can remain intact
With my MC-8 I have programmed a changing values across all 6 voices of PCM8x to one set of values and then to another…and back and forth…it is 24 MC-8 SysEx messages one way; and 24 the otheri do have a mc6 but i never tried sysex messages with it..
i also have a streamdeck so i'll do some research then
thanks once again Todd
Right…so you kind of want a remote control…I totally understand.Hi Todd - thanks - yes, getting rid of patching would be my main objective, especially as I seem to use some algos much more than others and I would have less programming this way.
As I'm quite new to the PCM81, my initial "needs" are much less complex than yours and others. I'm trying to learn what parameters do within each algorithm matrix/grid and then think about how I would like to control them further, mainly in a performance environment.
I'm interested in starting with basics like simpler, within-preset control of CHO / REV / DLY [On/Off] but then moving to more dynamic real-time control of REV spaces, panning, spatial positioning and so on.
Thanks again.
I understandHi Todd - thanks for your reply. The RVB size thing was more a brain-storming thing - I'd be happy if I could just do the baby steps ON/OFF thing first!
I think I was thinking of using the master depth parameter for the chorus, the master delay time for the delays, and either output LVL (or possibly input LVL to preserve trails?) for the RVB.
I think you may have posted some of this kind of data earlier in the thread for the CHO+RVB algorithm which was great. I think the M-Band + RVB algorithm would be good to tackle.
The kind of playing scenario would be... 80s rock where the main guitar has a CHO/FLA effect on (I'll stay away from the detuning pitch algos at the moment) with perhaps a short plate reverb for ambience (depending on the venue); when the solo is due, I would like to be able to kick in a delay and perhaps turn off the reverb to not get too wet - and then reverse these changes going back to rhythm duties.
I hope this makes some sense. I may have to catch up with you tomorrow as here in the UK it's my bed time!