Lexicon PCM80/81 Remote Control For ipad

ctreitzell

Member
Messages
2,204
Yeah, wow...this thing is confusing
only the Masters make changes I would expect
I am pretty lost with it

*edit 10 min later*
seems to make a little more sense now
got it doing what I imagine
The Masters are required!
 
Last edited:

ctreitzell

Member
Messages
2,204
OK, so I have analysed the SysEx variable bits for the Tempo based delay times.
I was looking for a way to organise the named ticks.
The way the PCM UI works the cursor is positioned (using *Load button)
and Adjust scrolls through the Echo or Beat to arrive at the desired value.

Well, that functionality is not straightforward to replicate in the remote. There isn't a control for that that I know of...maybe one will show up :)
To start with, I can make two buttons which toggle (show/hide) between two identical controls to navigate rising Echo and rising Beat values separately...it will appear that way, anyway.

The SysEx is a little tricky here; suffice to say the rising midi numbers scroll through the Echo (1-24) first and the Beat raises every 25th tick; not the other way around.
like so:
\ 1: 1 Echo:Beat
\ 2: 1 Echo:Beat
\ 3: 1 Echo:Beat
\ 4: 1 Echo:Beat
\ 5: 1 Echo:Beat
\ 6: 1 Echo:Beat
\ 7: 1 Echo:Beat
\ 8: 1 Echo:Beat
\ 9: 1 Echo:Beat
\10: 1 Echo:Beat
\11: 1 Echo:Beat
\12: 1 Echo:Beat
\13: 1 Echo:Beat
\14: 1 Echo:Beat
\15: 1 Echo:Beat
\16: 1 Echo:Beat
\17: 1 Echo:Beat
\18: 1 Echo:Beat
\19: 1 Echo:Beat
\20: 1 Echo:Beat
\21: 1 Echo:Beat
\22: 1 Echo:Beat
\23: 1 Echo:Beat
\24: 1 Echo:Beat
\ 1: 2 Echo:Beat
\ 2: 2 Echo:Beat
\ 3: 2 Echo:Beat
\ 4: 2 Echo:Beat
\ 5: 2 Echo:Beat
\ 6: 2 Echo:Beat
\ 7: 2 Echo:Beat
\ 8: 2 Echo:Beat
\ 9: 2 Echo:Beat
\10: 2 Echo:Beat
\11: 2 Echo:Beat
\12: 2 Echo:Beat
\13: 2 Echo:Beat
\14: 2 Echo:Beat
\15: 2 Echo:Beat
\16: 2 Echo:Beat
\17: 2 Echo:Beat
\18: 2 Echo:Beat
\19: 2 Echo:Beat
\20: 2 Echo:Beat
\21: 2 Echo:Beat
\22: 2 Echo:Beat
\23: 2 Echo:Beat
\24: 2 Echo:Beat
\ 1: 3 Echo:Beat
\ 2: 3 Echo:Beat
\ 3: 3 Echo:Beat
and so on
 

ctreitzell

Member
Messages
2,204
Last night I was wondering how capable MDP2 is of receiving midi messages. I started searching and found users wanting their remote (for all kinds of hardware) to reflect the hardware settings. MDP2 is capable receiving midi, so now it's just a case of figuring out how to employ it.

I was considering making two remotes, where one is built in Lemur and could handle the display, front panel controls and system settings with MDP2 controlling parameters...2 ipads :-/
...

In doing so, I remembered there is a software module to compatible with MDP2 which is capable of intercepting and rewriting midi messages both GM and SysEx. Stream Byter is designed to cope with some of the midi issues presented when considering building a remote for devices like the PCM80/81 where different algorithms have the same parameters with different SysEx IDs. Stream Byter should be able to parse arguments and dynamically adjust those differing SysEx IDs based on which algo is currently loaded.

The PCM is capable of informing a Host of the PCM's current state. If nothing else, the PCM could send MDP2 a message informing which algo is currently loaded. MDP2 controls could be set up to display which algo is currently loaded and load a set of Stream Byter instructions to adjust SysEx parameter IDs to match the currently loaded algo.

Employing Stream Byter should also greatly reduce the number of pages and control layouts as it will allow reusing similar controls. This will help massively with navigation and should make a simpler end user UI.

Obviously it will take me some time to work these things out. I am nearly done with Max Value Named Ticks with just several Delay Times to concatenate. Then I should be able to get on to creating the actual remote.
 

ctreitzell

Member
Messages
2,204
Ha! well, wondering why Lexicon didn't use every hex number for IDs shows how green I is:bonk
It is stated right out of the gate at the beginning of the Midi Implementation Details! Duh! It's funny how one can read and read and peruse over and over again and the penny doesn't drop until it does.

"ASCII Character Data
Many of the System Exclusive messages include ASCII character data. This refers to the values between
0x20 (space) and 0x7E (tilde). No other values should be used. Character fields should be padded with
spaces — the C NULL-terminator should not be used. When the PCM 80 receives an out-of-range value,
it will convert that value to a space. The small block character on the PCM 80 display (used to indicate
patch source/destination) is transmitted as a tilde. It is not possible to transmit this character to the PCM
80 via System Exclusive messages. The ASCII backslash character (0x5c) maps to the yen character
(¥)on the PCM 80 display."


So alpha numeric hex descriptors were reserved for us to label our work which, in turn, limited the hex characters available for functionality.
 
Last edited:

ctreitzell

Member
Messages
2,204
yeah...uh...I can't get my PCM81 to send any type of SysEx "response" to any "request for data" so far.
Basically, the only SysEx outputs I get out of my PCM81 through MIDI-OX is Adjust (knob), a couple front panel buttons and Program/Register dumps.

Every time I include the Device ID bit, PCM81 throws an error. I'm obviously not writing my requests correctly or have not got the correct setup for the PCM81 to send :-/
 

Michaeltn86

Member
Messages
36
hi todd, very interesting posts. 2 years ago I thought that I would be able to help u, but u are WAY over what I know about the unit. so cool :]

edit: BTW, I didn't understand how the tempo worked 2 years ago, and after ur explanation it still remains a mystery, but I'm no musician and I'm not very smart ;]
 

ctreitzell

Member
Messages
2,204
hi todd, very interesting posts. 2 years ago I thought that I would be able to help u, but u are WAY over what I know about the unit. so cool :]

edit: BTW, I didn't understand how the tempo worked 2 years ago, and after ur explanation it still remains a mystery, but I'm no musician and I'm not very smart ;]
oh, man...2 years alreadyo_O...well, 18 mos since I got my 81

Hi Michael, I still don't really know how the tempo delay works...I understand the Echo part...but not the Beat part.
I emailed with Italo a bit last week and he said it works fine. He also said it requires some set up steps which I may have missed. I'll get some of his libraries and see if I can figure it out. I do have all the named ticks figured out tho :-D

I have lost focus a bit on the remote the last few days...been working on my rig, especially midi control and programming...I have to make some music over the next month, so I am prepping for that
 

uraniumwilly

Member
Messages
608
It’s so interesting that the world is full of so many different types of people. Todd slogs on and on after two years when if it was me I would have whined and complained all through the first month and quit. Then I would have whined and complained some more.
 

ctreitzell

Member
Messages
2,204
Thanks, @uraniumwilly :-D
I churned my way through the big delay numbers for named ticks, today
The only named ticks I have yet to do is
Varispeed 9049 ticks
and for Echo:Beat I already finished the 1-24 Echo:Beat numbers, then I'm gonna do Echo:Beat 1-24 which is a little tricky with excel formulas.

When I finish the ticks in excel, I need to copy each one into separate text docs to then send to myself and copy paste those ticks into MDP2.

Thing is, I have a few music jobs I that will probly eat up the rest of the month...plus I just purchased midi merge and thru boxes for my rig...that's gonna suck me in to some routing installation and programming.

Hopefully at some point I'll figure out how to get the PCMs responding to data requests...
 

ctreitzell

Member
Messages
2,204
OK, named ticks all done and converted into text docs! I am really, really surprised there under 60 parameter ranges including the long delay times.
So around 60 named ticks docks; these ranges are shared over various controls.

I do need to make some coarse controls, for instance scrolling on an ipad control from 300ms to 43.690sec takes about as long as spinning the the PCM Adjust encoder wheel. I will make a stepper for each delay control that is set to 100s (and 1000s for times from 9sec up to 43sec

Also, been thinking about how to employ Patching. Patch sources will be easy; the destinations, tho, are another kettle of fish...and setting Pivot values? Oh man, I don't know if it will be possible. And this Patching is probably the most annoying part of the UI where you set one (Pivot Point) value and have to loop back around the menu to set the next. I won't know what to do until I start experimenting.
 

ctreitzell

Member
Messages
2,204
Sorry everyone, I have been working on other things this past 5 weeks and the remote has taken a back seat
I've been working on my rack wiring and making cables rather than the PCM8x remote.

Between my last experiments with getting the PCM81 to respond to SysEx Patching messages (which were all failures)

and

Midi Designer Pro 2 adding the new hidden panels functionality;

I have gotten a bit off track working on other things like working on my house that needs all kinds of attention.

That doesn't mean I will abandon this project; I will have something working beyond the global controls I have already created a test layout for. If anyone wants that test layout for MDP2; PM me and I'll send you a copy :)

it's just I have had to rethink my approach especially with the new hidden panels in MDP2.
 

ctreitzell

Member
Messages
2,204
OK,
I was making a simple...SUPER simple mistake with SysEx REQUEST DATA messages from the PCM81.
I was using the PCM80 MIDI Implementation Details Doc with a PCM81. I missed the part about PCM80 model ID is 07 and PCM81 is 10.

I got some aid from a brilliant forum member @ElliotG who very kindly offered to help me troubleshoot.

He whittled it down guiding me over PM here on TGP. Thanks, Elliot!! You RULE!

So, I should be able to incorporate Patching and whatever else SysEx power Lexicon built in. Wellll, maybe not whatever else....but now I can work it! I'll have to dive back into the SysEx planning because, this should mean differing parameter IDs for like controls can have a script deliver the correct ID for the currently loaded algo!

Which will shrink the amount of pages required!!! Darn good news!

Thanks again, @ElliotG
 

ctreitzell

Member
Messages
2,204
Latest status:
This past Sunday @ElliotG helped guide me to get the PCM to send a response with the currently loaded Algo
which was a success!

The shortest SysEx message which returns the currently loaded algo is a DISPLAY DUMP (kindly pointed out by Elliot from the get go). How to incorporate the display dump for more than just identifying currently loaded algo, I haven't advanced on yet.
There is a lot of experimentation and analysis in store. It's possible I'll come up with some kind of a PCM display into the MDP2 layout.

And then there is the PATCHING which, I presume, will take some serious effort.

I got somewhat disillusioned with getting no response from PCM in June; now that I'm getting re-excited (obsessive) about it...paid work has come in...a very good distraction.
 

ctreitzell

Member
Messages
2,204
I spent some time yesterday analysing Patching Assign response. On the one hand it's exciting to realize that each Patches SysEx is only 67 SysEx bytes. I had assumed it would be a monster 2000 byte novel.

There is a very similar issue with Patch DESTINATIONs as there is with differing parameter IDs per algorithm. In this scenario, a different list of destinations needs to be available to each Patch. (I believe I suspected that condition way toward the beginning of this thread). The good thing is, the solution is similar to different parameter IDs.

Still tinkering...
 

ctreitzell

Member
Messages
2,204
yeah...uh...I can't get my PCM81 to send any type of SysEx "response" to any "request for data" so far.
Basically, the only SysEx outputs I get out of my PCM81 through MIDI-OX is Adjust (knob), a couple front panel buttons and Program/Register dumps.

Every time I include the Device ID bit, PCM81 throws an error. I'm obviously not writing my requests correctly or have not got the correct setup for the PCM81 to send :-/
Well, there is good reason for this. I'm gonna hafta convert RTFM to FULLY COMPREHEND ALL THE STATEMENTS IN ALL THE MANUALS.
The whole thing is convoluted by design. Lexicon, in their infinite wisdom, designed the PC81 to send and receive SysEx in both PCM80 (ID 07) and PCM81 (ID 10) formats. That is my paraphrase of the first line in the SysEx portion of the PCM81 user guide. :bonk

So, for example, when in Edit mode, the ADJUST knob sends Real Time parameter adjustments. Using a MIDI listener those messages can be "captured". The PCM81 sends SysEx for those ADJUST knob messages in PCM80 (ID 07) format; exactly the same messages as an 80.
I was making a simple...SUPER simple mistake with SysEx REQUEST DATA messages from the PCM81.
I was using the PCM80 MIDI Implementation Details Doc with a PCM81. I missed the part about PCM80 model ID is 07 and PCM81 is 10.
Sending a DATA REQUEST to the PCM81 in PCM80 format, though, gives no response; the 81 ignores an 80 request. Neither the PCM80 MIDI Implementation Details nor PCM81 User Guide specifically say that the PCM81 will only respond to PCM81 (ID10) format data requests. The PCM81 did not exist when the PCM80 was released, so no MIDI Implementation Details for the 81 could be included. PCM81 user guide gives 2 or 3 sentences with vague advice.

The reason to have the "hybrid" SysEx message formatting for the 81 was originally considering racks of slaved units with a mix of 80s and 81s. Surely Lexicon did the same with the 90 and 91; although, that I do not know.
 
Last edited:

mentoneman

Guest
Messages
2,578
OK, named ticks all done and converted into text docs! I am really, really surprised there under 60 parameter ranges including the long delay times.
So around 60 named ticks docks; these ranges are shared over various controls.

I do need to make some coarse controls, for instance scrolling on an ipad control from 300ms to 43.690sec takes about as long as spinning the the PCM Adjust encoder wheel. I will make a stepper for each delay control that is set to 100s (and 1000s for times from 9sec up to 43sec

Also, been thinking about how to employ Patching. Patch sources will be easy; the destinations, tho, are another kettle of fish...and setting Pivot values? Oh man, I don't know if it will be possible. And this Patching is probably the most annoying part of the UI where you set one (Pivot Point) value and have to loop back around the menu to set the next. I won't know what to do until I start experimenting.
Just an fyi when setting patch points,
there are shortcut the units allow on the front panel to quickly jump between patch and parameter ROWS

And between the pivot points you have set on the DESTINATION parameter which you are editing, to help you quickly fine tune those points.

“Pressing the Load/* button will change the display to allow you to sequentially select: Src, Dst, Src Value and Dst Value. Press Up or Down together with Load/* to backstep to the previous parameter.”

Also,

When editing the Destination parameters values,
The EDIT button allows you to jump to the next assigned value (pivot point) to quickly fine tune those points while staying within the Destination value window/loop,
and not have to circle out and around the patch row control matrix in a single file one way fashion.

Also you can JUMP from the patch row Source editing sub menu to editing the actual parameter in its respective ROW by pressing the Edit button to toggle from the patch row Source editor to the parameter row/value being edited, and pressing Edit again brings you back to the Patch/Source location.

Now whether or not you can activate those short cuts via your sysex ipad interface or if this helps you is another question....
 

ctreitzell

Member
Messages
2,204
It's called JUMP :)

and sounds kinda complicated

I'm just looking into analyzing the SysEx at the moment
and getting somewhere, finally.

I'll try JUMP the next few days as I'm working on programming this Morningstar MC-8
and refer to your steps here

I don't know how much this JUMP functionality find its way into the remote
Is it a deal breaker for you?

thanks, man
 
Last edited:

mentoneman

Guest
Messages
2,578
Not a deal breaker at all-
Just being a second set of eyes on your progress to facilitate conversation and keep things in perspective. It would be awesome if you could discuss this project with the actual original Lexicon engineers to bounce ideas off of them!

It would be so nice to have a graphic display of the pivot point “curve” being created ala the tc gforce or fractal modifier window,
just to visually attach those numeric values to a X/Y real time waveform display!
Wanna change a pivot point destination value? Zoom the display to full screen and drag the curve with your fingertip!
 

ctreitzell

Member
Messages
2,204
Not a deal breaker at all-
Just being a second set of eyes on your progress to facilitate conversation and keep things in perspective.
Thanks, I really appreciate that! also, I definitely need to keep things in perspective
It would be awesome if you could discuss this project with the actual original Lexicon engineers to bounce ideas off of them!
Oh, my! I'm not sure I'm worthy of such an honor

It would be so nice to have a graphic display of the pivot point “curve” being created ala the tc gforce or fractal modifier window,
just to visually attach those numeric values to a X/Y real time waveform display!
Wanna change a pivot point destination value? Zoom the display to full screen and drag the curve with your fingertip!
Have you any youtube or video examples showcasing what you are talking about? What you are saying sounds like an Emphasis Filter....or like the EQ curve in Pro Q 2/3?
What might be possible (easy-ish to build) is something like the virtual vocoder in Reason...so, like a bank of faders and set the CC numbers first...then set the values with the fader bank.
Or when you mention XY dragging: changing CC number and value simultaneously? Is there some kind of
Zoom the display!?! what the smell? I'd have to write a app from scratch to deliver such functionality...maybe a later version
I just need to get the first one built.

Can you draw in the fractal modifier window? Using Axe Edit and/or FracPad, maybe? I thought the Axe interface was buttons, knobs and tabbed panels; which still has the user menu diving...I didn't know they have a touch screen
 

mentoneman

Guest
Messages
2,578
The touch screen comment was just a wish list item!

But just as software parametric eqs let you drag the frequency db curves up, down and across different eq points, it sure would be cool to have in a graphic pivot table to see at a glance where the pivot points are and to fine tune the parameter you are modifying quickly!
 




Trending Topics

Top