Sauraen

MIDIbox FM V2.0 on LPC17

63 posts in this topic

Great project, man!!

Try these - 9mm top diameter. Love their quality and tactile feel.

$(KGrHqNHJ!8E63SLg9tQBO0gHoNrNg~~60_12.J

 

I'm using them as encoder knobs painting caps with permanent marker (can't find black caps without mark)
But for my new SEQV4 I'll make black acryllic milled ones. 

Share this post


Link to post
Share on other sites

Here is compared to LCD

71vljQf.jpg

Edited by Schrabikus

Share this post


Link to post
Share on other sites
Try these - 9mm top diameter. Love their quality and tactile feel.

Thanks for the recommendation, but that would be about $50 for me (two orders counting shipping), and considering the whole synth was only about $300, that's a bit too much. Also, they have those lines, and in order to get rid of them I'd have to get rid of the nice red too.

Share this post


Link to post
Share on other sites

Now for a demosong that I didn't write, featuring drums, a non-crashing MIDI event handler, and overflowing (30+) voices:

 

 

The song is Dr. Fruitcake's "Mario's Tropical Paradise" OC ReMix. Anyone else have nostalgia for the heyday of the MIDI file? :smile:

Edited by Sauraen

Share this post


Link to post
Share on other sites

Wow that's quite impressive! Nice work!

Share this post


Link to post
Share on other sites

Here's a video showing off the chorus module I just added, plus velocity sensitivity and sustain pedal/smart notestacks:

 

Share this post


Link to post
Share on other sites

After a lutenist friend was bugging me about electronic musicians being lazy by always playing in equal temperament, I implemented a custom temperament system for MIDIbox FM V2.0:

 

gallery_10357_214_1471269.jpg

 

You can select standard equal temperament, or set up a custom temperament system entirely from the front panel. The custom temperament system allows you to select a base note and specify that note's frequency, and then set up all the other notes from an octave as whole-number ratios from the base frequency. Changing what note the tuning is centered around preserves the ratios and recalculates everything, so if you change keys you only have to adjust one value. The ratios are preset to a modified just intonation, but you can make it almost whatever you want. The two main limitations are that all the octaves of one note letter are fixed to multiples of the same pitch (i.e. you can't do 24-note scales or other weird things like that), and that due to OPL3 limitations, some pitches will glitch if you try to make them too far from their equal-tempered version (e.g. you can make an E tuned like an F, but maybe not like an A).

Share this post


Link to post
Share on other sites

Just a quick progress update.

 

The main thing I've been working on, while implementing smaller features and fixing bugs, is creating a full 2-op General MIDI patch bank, all 128 standard instrument sounds each only using one 2-op voice (currently about half done, I'm doing the most-used patches first, and some of them are surprisingly realistic). This is stored in Bank MSB 0 LSB 0, but you can move them in bulk to a different bank if you want just by changing the folder name on the uSD card (in a computer). I've also implemented [optional] autoload mode (when the patch changes, the new one is loaded from the uSD card), and you can [individuall] set whether the synth will ignore BMSB, BLSB, Program, Volume, Pan, and Other messages. It's playing MIDI files very well and with increasing ease of configuration.

 

The very next thing to do is full CC control--which CCs change which parameters will be in your mios32_config.h file, so if you don't like the defaults for some reason you can change them easily and recompile. (There is still the Vari modulator of course which can be assigned to a CC within your MBNG configuration file.) These CCs will allow you to edit/modulate all the parameters of a standard voice (including all OPL3 parameters), but they will not work with LINKed (multi-voice) sounds--there's just too many parameters and CCs don't support an easy way of accessing all of them. I could make some RPN/NRPN scheme, but it would still be a pain to program changes into your DAW.

 

Once I finish that, the only other major additions are the wavetable and the sequencer, both of which have some skeleton support already in place.

 

Others may be able to build faster than me, but it took me about two months to make the hardware you see above; so I would say that if there is anyone who is interested in a MIDIbox FM V2.0, that they could start building it anytime now. I can provide you with my code when you get to that point. It will also be useful for debugging and testing, both hardware and software, to have more than one in existence--and it will force me to document any unclear features. What you need:

  • Fully-stuffed LPC17 core with uSD card
  • One or two OPL3 modules--if you use two, connect all the corresponding pins on the two boards except the OPL3's #CS pin, and there's a couple modifications to the resistor values on the output stage, plus you have to make a small mixer board with a couple op-amps on veroboard, but trust me, 36 voices is worth it!
  • +/-12V power supply ()
  • If you want to do a front panel, the front panel is a modified (more features) version of MIDIbox NG. You can build whatever layout you want and wire it in accordance with the MBNG spec, and you will be able to map it properly in your config file to the MBFMV2 commands. It should have the 18 voice buttons with 2 color lights each, 4 mode buttons with light, 8 softkeys without light, menu, select; datawheel; DUPL, LINK, 4-op (each with lights); a value display; some way to switch which OPL3 (doesn't have to be a toggle switch, it can be two lighted buttons or one toggle button); basically it should look like mine, except you can use bank switching to reduce it to 2 or only 1 row of operator controls, and you can use banking to put some of the software modulator controls (on the right) on the same controls.
Edited by Sauraen

Share this post


Link to post
Share on other sites

Here's a new (classic) demosong, showing off patch loading/saving, optional automatic CC control, the mixer menu, and a few of my patches:

 

Edited by Sauraen

Share this post


Link to post
Share on other sites

I apologize for not being more active here, I've been busy (and I'm currently studying abroad in France, so I don't have my equipment).

 

Depending on my workload in the fall, I am seriously considering upgrading the CPU in my MIDIbox FM V2.0 to the STM32F4 module. This will make things so much easier, as I was really running out of RAM in developing the synth engine while keeping all MIDIbox NG functionality. The only code I will have to rewrite is the low-level stuff from the OPL3 driver, but even that should be pretty simple. After this change, it is very possible that it will support up to four OPL3s! (no code changes, just #define OPL3_COUNT 4)

Share this post


Link to post
Share on other sites

The STM32F4 module finally arrived, and within the next couple weeks I will be swapping it in for the LPC17 core and porting the code. The only code that will have to change is the OPL3 driver, but it'll be even faster thanks to TK's J10A/B pinout! Then I can just start allocating more memory for the arrays... *drools* Point is, I should have working code soon, so if anyone wants to build a MIDIbox FM, this will be the way to go!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now