I created a small utility quickly in Eclipse a while ago to edit and play around with the wavetables. Since I last used it, I have updated the core pic and subsequently, and stupidly, cleaned up the code without checking that it still worked correctly.
So I am currently at the point where everything seems to work correctly except for sending Sysex Parameter Message updates for the individual steps… Values and Modes. The CC assignments, Rate and Sync work correctly using Sysex Parameter Messages. So, I think the parameter messages are working correctly under index 128. I’m not sure above that…
For each Step Value Parameter Index I use the formula:
= 128 + (step * 4) + channel + 1
So the message for Step 1 on Channel 1 reads:
F0 00 00 7E 49 00 06 08 01 01 <value> F7
Does this look correct?
Thanks,
Martin.
UPDATE: Working program with source code below:
—Backup your sounds before using as it will automatically overwrite the modulated values.—
Attached is the source code (using Java Sound) and a Runnable JAR
Note that MacOS users (like me) won’t be able to use your tool (and we are also not able to use JSynthLib), since Apple doesn’t support SysEx in Java anymore
I remember JSynthLib from a number of years ago. Strangely, I have never seen the MIDIBoxFM editor. Great for a reference. Thanks!
No Mac OS support pretty much defeats the purpose of using Java. :sad: I guess I’ll look to see how easy it would be to move it over to Juce when it’s fixed. Though, I know nothing about Juce.
Thanks,
Martin.
Update 1: It looks like the JSynthLib editor is also not changing the step values / modes. The other Wavetable settings work. They all look to be sending Sysex Parameter messages and the Device ID looks to work.
So, next up, put an older PIC back in and test again…
Update 2 : Back at it. I grabbed an older chip and re-burnt the newest firmware. The older 18F452 chip does work correctly with the program. The newer 18F4685 chip does not deal with the individual step modes and values correctly both with the request to RAM and Voice. I also sent messages using the SysEx Tool in MIOS Studio with the same results.
Also, I noticed that the values returned from a sysex dump patch do not return the same values with the 2 different chips. But, the values do match what is in the ‘loaded’ wavetable. The last 16 steps seem to be always 0 on the 18f4685 chip. This might be the issue.
As a side note, which may be relevant, I only have 4 patch memory chips (A - D) and not the full 8 possible.
Great! Thanks. It all works outside of RAM. (Small bug when WAVETABLES_IN_RAM is disabled: There is an extra space at the start of line 401 in mbfm_rnd.inc.)
I’ll go back and check my Wavetable patches to make sure I didn’t subsequently damage them.
Last days I’ve been busy trying to find out what the wavetable sequencer does but I can’t get it. Maybe due to above mentioned ‘troubles’. I use PIC 18F4685, MBFM firmware 1.9 and 2 pieces of 24lc512 as RAM.
In the manual the description of the WT sequencer is quite clear but in practice the WT sequencer doesn’t seem to step through the 32 steps. I can only change some sounds in ‘Note step’ mode and then only by tweaking step 0. With step 0 on JUMP I can jump to other steps with different tweaks, but it doesn’t seem to step through the steps. I used both midisync and freerunning mode. I hope this is part of 'the bug otherwise I really don’t understand the WT sequencer. I’ll try disabling the ‘wavetable in RAM’ when I get some time.
I’d love to try your MBFM-WTeditor, but I don’t know how to. I unzipped your package and tried to open the jar file with java, but nothing happened. Am I missing something? I searched for Java Sound,but as far as I can tell it’s just a part of Java standard edition. I also installed the Java developement kit but with no luck. I hope you can show me the right direction.
What OS are you using? You just need the Java Runtime installed not the development kit. Though, that just adds extra bits pieces. Double clicking the .jar file should open the program.
If not open a “command prompt” and type:> java -jar “MidiBoxFM WT Editor.jar”
the path to the .jar file should be in the quotes.
I uninstalled all java stuff, and reinstalled Java (JRE6), unzipped the new MBFMWTEditor package and now the editor seems to works as it should. Thanks, it looks like a nice editor tool and I get a better idea of the sequencer now.
After that I uploaded the MBFM v1.4h firmware to my MBFM (18F4685) and now I can also change the WTsequencer steps with Martin’s editor.
some sidenotes:
-when I play the MBFM from ableton Live and at the same time use the editor to edit the WTsteps I get a ‘latency’ delay of exactly 1 bar. But maybe I’m doing something wrong, I’ll check it out.
-After uploading firmware MBFM V1.4h, the MBFM display still shows MBFM V1.4g at startup.
-Though I got far more results playing with the sequencer (not only step0 seemed to react now),I still can’t get a (firm) grip on what the sequencer is doing. I think I have to experiment a lot more, starting with 1 instrument, 1 operator and modulate only 1 parameter, and investigate what the steps do. ahu… The hole FM thing is new (and quite difficult) to me, I’m used to analogics.
and Martin, today I discovered you’re also the creator of the Funky Bank patches, thanks! there’re great and it were those patches that started me diving into this FM stuff again!
Thank you both, I’ll go further into my FM investigation and hope to get a better grip on FM synthese, and the WTsequencer. If I don’t succeed I’ll come back to you.
as Roel stated the RAM issue looks to be fixed. Thanks! From my quick tests it looks like just the first 16 steps are stored in RAM. Is this correct?
Roel,
Great! My utility does work elsewhere. And, I’m glad you like the patches. Though, I need to fix the WaveTable ones.
As you are sharing the MIDI connection, the delay could be due to either side. Java or Live. But, a 1 bar delay likely means live is the culprit. I’m glad Live at least likes to share its MIDI.
I just installed the new Firmware from the MIOS Download Section and made sure 1.4h appears. It looks like the last 16 steps on the WT are shared between all the patches and are automatically saved.
If I set all the step values for a patch on the device itself, with or without saving the patch, the last 16 steps values (16 - 31) show up on the other patches as well. The first 16 steps work fine.