The end of your message maybe should read “…to send a patch from the PCM 70 to E1…” - right?
Yes of course. Too many things rattling around in my head at the moment.
The next goal is to get all of the “Row 0” names and values (as documented at the end of the manual) displaying properly. What I am finding so far is that there are a lot of lookup tables necessary because Lexicon has their own way of doing things. (Surprise! - not)
So, the next link I post will be for a preset that hopefully reads each single dump you send to it from the PCM 70 and displays that initial set of names and values
See what happens when you send PCM 70 sysex to this version
pm 70 incremental
It still doesn’t transmit anything, but let me know how it does with the various dumps from the PCM front panel.
There seems to be a discrepancy between what is documented for some of the values in the manual vs the actual dumps.
You can spin the encoders to go through the full range of values, but nothing is being sent back tot he PCM 70 yet. You can see how the range is constrained versus the display for now
On the plus side, I sold a few things and managed to pick up a PCM 70 for a semi-decent price, so in a week or so it’ll be easier to make some progress.
Since real hardware is on its way, I likely won’t post much/any more works in progress until it’s a lot farther along.
If you want to see what I mean about changing the range of the encoders dynamically, here are a few PCM 70 dumps to play with. Load the preset linked above and then send the dump via the Electra One UI console or via MIDI_Ox/Sysex Librarian.
The reason I want to dynamically change the base range is that by creating controls with the ID number the same and the parameter number the same as the PCM 70 parameter number, I can save a lot of creating and moving dummy hidden encoders and save a lot of LUA code since once I have the control ID or the parameter number, I have all I need to address everything about that value.
Since the PCM 70 uses the same parameter number to represent different parameters depending on the Type/Algorithm and those parameters have different ranges and different units, keeping track of all that efficiently will be a nightmare without the ability to ‘re-use’ the same control for different things.
PCM 70.zip (791 Bytes)
Not sure I understand what the most recent file represents.
It unzips to 3 sysex files - what are they for?
They are for people that do not own a PCM 70.
Just in case they want to play around with the preset to see when I mention issues or just want to look at how things are done inside the LUA code.
You lucky PCM 70 owners can just force a dump from the front panel.
Got it. The new version receives presets from PCM70 - tantalizing!
update for the folks playing at home.
The PCM 70 arrived last night (OS 2.0) and I had a few minutes to play around with it.
On the plus side, I can do Patch Select to pull back stuff.
Note for actual owners - it appears that you can only pull registers (i.e. - user saved things) and not factory programs via MIDI (at least with the 2.0 OS. I have the 3.0 images and will be burning EPROMs some time in the next couple weeks to test with 3.0 after this is stable)
I am really thinking about the layout of the controls and how to handle the fact that the same parameter number in a patch dump can be used for different things with different min/max and different formatting depending on which algorithm is being employed…
The Lexicon engineers were clever in the way they maximized the functionality with the limited memory and CPU; I just need to be slightly smarter about how I’m doing this otherwise it’s going to be a big bloated slow preset.
Also to note - after spending a couple hours walking through the front panel verifying the data being pulled back, I remember why I sold all my PCM-series stuff in the past. Painful UI almost fully negates the great sound.
Hi, I’ve made presets in the past for synths with multi effects. There I had foreseen to hide/show only the applicable parameters, change their color, name and min/max based on the effect type. Some of those presets had more than 20 different types, and via the E1 it was the only way to really use those effects to their fullest. The way to go was by using tables.
If you’re interested I’ll check which presets are the best to look into.
Thanks for the advice.
I like to have the control ID of the object be the same as the parameter number when possible so I can use one value and be able to update the ParameterMap and modify the control and it’s all tied together.
The PCM 70 re-uses the same parameter number for different things - sometimes with the same ranges and format, other times not. Changing the ranges is not currently doing exactly what I want (although Martin said he’d look into exposing more of the underlying data structure, I do not necessarily want to rely on that and I still have other headaches with that approach that need solving).
I started with a bunch of tables and a single page, but given that the PCM 70 doesn’t have that many parameters I am working on a slightly modified approach.
I do need to do some testing to see how quickly shuffling controls around and changing the active page is in practice, but I think I will have a fairly efficient implementation that uses less resources when I’m done.
I can theorize during the day while doing other tasks, but until I sit with the E1 and implement things I don’t know for sure. For example, I was trying to do something with a control to determine where it was located on the screen.
In theory slotLocation = helpers.boundsToSlot(control:getBounds())
should work, but in my initial tests, it was always returning slot 1.
Current working version: PCM 70 beta
If anyone has time (and are running the 3.1.7 beta), I’d like you to take a look at the PCM 70 preset so far.
Mainly, I’d like some feedback on the control layout, colorization, and naming. I tried to keep it fairly uncluttered and consistent, but maybe people other than me should judge the success or failure of that.
The preset assumes by default you are using the first set of MIDI In/Outs of the Electra One and using MIDI channel 1 on the PCM 70. There is a temporary button on the first page to take you to a config screen where you can change those things.
Some notes working with the PCM 70 for a bit –
I can pull down Registers and Programs to be edited, but for now I do not have a way to save the edits to a new slot (I think I know how, just need to work it a bit).
If you want to edit a register, you can just turn the Patch Select control to a valid number and press the get patch button.
If you want to load and edit a Program, you need to press the front panel Program button so the LED is on, then turn the Patch Select control to a valid Program number (keep turning - you will see the name change from register to program).
There is no real nice way to get the names of stuff stored in the registers. I can (and will) hardcode the names of the programs for os 2 and 3 eventually, but for now you just see the xx.yy format.
I have been testing with OS 2 only so far. I burned EPROMs to upgrade to OS 3, but I’m waiting until I have everything correct for 2 first. Mainly because the parameters ranges and such do not exactly match what is documented (no surprise there).
The values displayed on the E1 generally match with what is seen on the PCM 70, with some minor rounding/exceptions. There is also the issue of changing the various delay times based on changes to the Size parameter. I do not have that working correctly yet.
For my use, I have my Electra One configured to use bars and unchecked both boxes in the UI section. Currently, I remember the last control you touched when you change pages (only applicable for the Echo/Chorus, Multi-band Delays, and Resonant Chords programs since they needed 2 pages).
MIDI patching is not there yet. I have an approach and have tested it before, but had to rip it out temporarily while redoing all the other pages.
So - progress made, but wanted some outside opinions on the UI.
If anyone wants to play with it without a PCM 70, download the sysex files posted earlier in this thread and use the MIDI console inside the web UI to send the sysex dump to the Electra One.
doing some more updates the past couple days and surprise! ran out of memory.
You’d think something as simple as the PCM 70 wouldn’t take up a lot of room, but since every message is sysex and every algorithm uses slightly different parameters (and ranges) for the same parameter number, things grew quite a bit.
As a related question – a lot of synths incorporate a Mod Matrix kind of setup. Often it’s multiple entries of source → destination, and amount of modulation. If you have 10 entries and each one has a large list of sources and destinations, is there an efficient way to share the same list of values?
Creating one source and one destination and populating them and then copying those 9 or 11 more times seems like it would take up a large amount of duplicate space.
EDIT - can’t post 3 msgs in a row w/o someone else intervening…
lots more updates; still not ready to post as a public thing mainly due to a lot of memory limitations and min/max stuff not working yet. This is particularly an issue when you load a BPM version or adjust the size and rate parameters (which impact the legal ranges of the voice params). I know what to do, just don’t have the memory in the E1 to do it and/or waiting for the next release that hopefully fixes the dynamic assignment of min/max and other things.
The link is still the same: PCM 70 beta
However - this version attempts to check whether you have OS 2 or 3 loaded and will adapt appropriately (the assumption is that some values and such will be different. If not, then I’ll strip that code out).
I added code to make the master controls adjust the individual voice controls as appropriate, just like on the PCM 70. In fact, the bulk of the LUA code is all about making the GUI look and feel like a better, more modern PCM 70.
Also - the MIDI patching section is in and better with more human readable info on the displays.
If anyone has a moment or two and wants to play and give feedback, it would be much appreciated.
More EDITs - I’m out of memory.
There’s a bunch of stuff I want to do/try but the current version won’t really load in the new 3.2 OS. I guess I was super close before and with the update it’s enough to push me over.
So the PCM 70 editor is stuck in its current state until the mk II is available or until I can figure out why things like setMin(), setMax() and move slot, and hide and show controls don’t exactly work as intended. To make the editing experience nice and useful and map to what you see on the PCM 70 screen, I needed to incorporate a lot of large lookup tables and LUA code and I’m currently using all 12 pages for various controls because each algorithm in the PCM 70 is slightly different and needs special things each time.
You’d think something as simple as the PCM 70 wouldn’t need all that, but it does. In contrast, more complex devices like the Oberheim Cyclone or Alesis Micron use way less resources to do their thing.
Just a +1 (or +2, actually) for MW XT & PCM81. I’ve a Pro-800 preset well on the way if that’s of any interest :=)
For the XT, I started a preset to handle the Mod Matrix. The rest of the XT is mostly knob per function, so that’s less critical (IMHO).
The PCM 80/81 is coming along. I can handle both mschines, all versions of the OSes, and the Dual FX card and Pitch FX card. Still a lot of cleanup and testing to do, but it’s getting there.
The PCM 70 is almost done. Working on the save and va way to scan the registers to see which are used and which are open for storing. You can download and use the PCM 70 one now.
Cool to hear. Re the XT, although it is mostly knob per function as you say, I’d love the preset to include all the parameters including the ones from the XT’s front panel. My XT is racked away from the station where the Electra One will be sitting, so I’d like to have control from the One so I can jam away without moving over to the XT.
Really looking forward to the PCM81 preset, I think that will really open it up and make it more tweakable. Unfortunately don’t own the expansion cards (they are exorbitantly priced on the Bay)… how hard would it be to clone these somehow? Guess that’s for another thread though…
I was looking for the XT preset earlier this week. I thought I made it public, but I don’t see it.
Have to dig through my computers to see where I saved it. I can make it public and folks can add to it as they wish.
I’m really torn about the PCM 80/81 template. Need to finish up the PCM 70 first, but I’ve put about 6 months of work into the 80/81 to date and have done something that (I think) no one else had been able to do so far - namely figured out all the esoteric sysex and a way to support all the variations. Once it’s posted, all that effort is free for the taking; someone could make a computer editor and easily sell that.
I knew that going in, but past efforts with the Lemur and other open platforms has left me a bit wary. I expect this viewpoint to be unpopular, but I’m old enough to understand that people’s time and energy and IP should be compensated for in some way.
Feel free to use this thread as a rational discussion platform. My mind is still not set on what to do.
Well, I’d gladly pay a bit for the template.
I found and tweaked the Waldorf XT Mod Matrix preset. It’s now public.
Here: XT preset
re: compensation - I wonder if a KickStarter kind of thing would work?
Would certainly work for me…
Even though I think the Electra One is an amazing device for doing remote edits, the reality is that VST/AU type plugin editors are more widely used.
It seems a shame to penalize the 1/2 dozen Electra One users with PCMs and force hundreds of other PCM owners to buy an Electra One just to use an editor despite the fact it would make their lives much better.
So, even though I’m really sick of programming after doing it for 35+ years professionally and for 20+ years in support of music gear, the best compromise is probably this:
keep the preset private for now and if there’s any E1 users with PCM 80/81s and they are willing to use it in its mostly finished state and provide feedback, they can contact me directly for a copy.
in parallel, I’ll start spinning up on JUCE and create a VST that can reach a wider market.