Jump to content

WaveTable Utility


mburch

Recommended Posts

 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

Requires:  Java Runtime (JRE) 6 or higher

MIDIBoxFMWTEditor.zip

 

Edited by mburch
Link to comment
Share on other sites

Hi Martin,

maybe I can help you to check this next week.

However, did you know the JSynthLib based MIDIbox FM editor, which supports a Wavetable editor as well?

I think that it is a good reference for your implementation! :)

Here is the code: http://sourceforge.net/p/jsynthlib/code/HEAD/tree/trunk/JSynthLib/src/main/java/synthdrivers/MIDIboxFM/

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 :-(

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Thorsten, thanks!  That would be great!

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...  :smile:

Edited by mburch
Link to comment
Share on other sites

  • 2 weeks later...

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.

 

Thanks for the help,

  Martin.

Link to comment
Share on other sites

Looks like a bug in the RAM based Wavetable option - I will check this soon!

(I wasn't able to try SysEx access with this option due to the MacOS Java issues... :-/)

 

As a temporary workaround, you could disable this option in your setup_*.asm file:

#define WAVETABLES_IN_RAM   0

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Great!  Thanks.  It all works outside of RAM.  :smile:   (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.

 

Thanks,

  Martin.

Link to comment
Share on other sites

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.

 

Cheers,

Roel

Link to comment
Share on other sites

Hi mburch,

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.

Cheers,

Roel

Link to comment
Share on other sites

Hi Roel,

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.

 

Martin.

Link to comment
Share on other sites

Just wanted to troubleshoot the MBFM firmware, but I've the same problem.

 

I'm getting following error message under MacOS and Linux:

Exception in thread "main" java.lang.UnsupportedClassVersionError: ui/MainWindow : Unsupported major.minor version 51.0

 

Version under MacOS:

java version "1.6.0_65"
Java? SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot? 64-Bit Server VM (build 20.65-b04-462, mixed mode)

And under Linux (Ubuntu):

java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.2)
OpenJDK Client VM (build 20.0-b12, mixed mode, sharing)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Martin and Thorsten,

 

Both your solutions seem to work!

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.

 

Cheers,

Roel

Link to comment
Share on other sites

Thorsten,

  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.  :smile:   And, I'm glad you like the patches.  :smile:   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.

 

 

  Martin.

Link to comment
Share on other sites

  • 3 weeks later...
-After uploading firmware MBFM V1.4h, the MBFM display still shows MBFM V1.4g at startup. 

 

this is now changed in the official V1.4h release

 

 

From my quick tests it looks like just the first 16 steps are stored in RAM.

 

strange! All 32 steps should be stored iN RAM

 

Best Regards, Thorsten.

Link to comment
Share on other sites

strange! All 32 steps should be stored iN RAM

 

Hmm.  I'm seeing something strange on my device.

 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.

 

Thanks,

  Martin.

Link to comment
Share on other sites

I checked Martin's issue on my MBFM and it seemed to react as Martin said. Changes to WT seq. steps above 16 changed on all patches immediately. But after I uploaded version MBFM 1.4i this issue seemed to be solved, All steps react the same and changes are only saved for the selected patch now.  Thanks Thorsten, really unbelievable how you keep track on all those apps.

Cheers,

Roel

Link to comment
Share on other sites

  • 1 year later...

Just noticed this util..  Looks very interesting.

 

Currently cant get it to makes changes - the Send Request button resets values to some preset state and the CC# always jumps back to 21: OP2 Multplier.  Am I doing something stupid?

 

I have sound and can change patches using the tool so I have connectivity..

 

thanks,

 

Paul

Link to comment
Share on other sites

Hi Paul,

  from what I remember, the 'send request' button switches to the selected patch and imports the sequencer settings.  If the patch does not have the sequencer already running you will need to turn it on.  (Switch 'Sync' to 'note' or 'free')  The rest of the sliders etc. change the steps.

 

Martin.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...