ilmenator

Universal Synth Editor - MIDIbox GLCD

33 posts in this topic

Hello all,

after more than half a year of development we are very proud to announce the MIDIbox GLCD, a universal synth editor.

It consists of 16 rotary encoders with push-buttons grouped around two vertical 240x64 GLCDs (hence the name) and allows to edit up to 16 different synths (devices) at a time. Each device can contain up to 4x16 modules with 16 parameters each - that should be enough for even the more complex synths. Once it is configured through a JAVA application, it runs in stand alone mode. It can receive a synth's complete edit buffer and is therefore always in sync with the synth itself - e.g. if the waveform "SAW" is selected on the synth, MIDIbox GLCD knows about it and tells you on the display.

Internally it runs on three core modules, the master module with a PIC18F4620, the slave module for the second display with a PIC18F452, and a MIDI merger module (18F452 or 16F877, as you wish), so you can connect both the synth to be edited and a keyboard to the MIDIbox GLCD. Also, there is an IIC MIDI module (USART bug in 18F4620), a stripped down LTC module for MIDI activity LEDs, and the usual DIN / DOUT boards. Last not least there are lots of banksticks in the box, a total of 768kByte for storing the necessary data.

MIDIbox GLCD is capable of sending all known MIDI messages for controlling / editing synthesizers: note on/off, continuous controllers, RPN, NRPN, SysEx, and you can even use it when your synth only understands complete dumps of the edit buffer. It gives new value to all those late 80's, early 90's synth that come in a 1U rack mount case with a 2x16 character LCD and 6 buttons to edit the synth via a labyrinth of hidden menus and submenus.

It is configured to work with your favourite synth by using a JAVA software and the MIDI implementation chart of your synth. That is the bad part about it: you need to do this yourself, as of now there is no parameter set readily available. The good news is that these parameter sets, once built by the user, can be exported to an XML format and thus easily imported by other users of the MIDIbox GLCD.

This is the point where we probably need some help: in principle, the JAVA editor software is up and running, but it is still buggy in a number of ways.

Now, if you are interested in this project, go to the Wiki and have a look here: http://www.midibox.org/dokuwiki/midibox_uc. It is all documented, you can download all the sources, it is all there. Please bear with us, as  some of the english language documents have been created using automatic translation - expect to read some funny sentences  ;D.

Best regards, ilmenator

edit: updated link to WIKI

Share this post


Link to post
Share on other sites

Dude that is awesome!

I'd love to see pics of it's screens when it's on!

Edit: Is it possible to add more encoders/buttons/screens?

Share this post


Link to post
Share on other sites

Wow the documentation of the source is fantastic! It's the sort of doco that you only write if you're being paid to, or made to... by your uni lecturer ;)

BTW, the reason I asked about the extra buttons is that I was considering making my MB synths without a CS and using this to control them instead instead, but there are certain things that would be better with a slightly different UI, so I was wondering how it can be customised... But I don't think it's that kind of thing really..?

I'll be making one either way... Just gotta save up for PLEDs that big  :o

Share this post


Link to post
Share on other sites

thats downright cool :)

I think that solves my lack of entusiasm for finishing my two midibox synth projects ...im just going to box them up with minimal controls & lcd ...and just build this as a control surface :)

This is definately the next thing ill be building from here :)

Only one niggle tho, although the layout of the knobs is logical ...my mind keeps on wishing for a more naturally symetric appearrence. so i'll be mirroring one of the screens control knob layouts.

All said tho.. Excellent work !

Share this post


Link to post
Share on other sites
Wow the documentation of the source is fantastic! It's the sort of doco that you only write if you're being paid to, or made to... by your uni lecturer Wink

Well, that WAS my job as a lecturer... but this time it was fairly easy, the guys really did a good documentation job.

Edit: Is it possible to add more encoders/buttons/screens?

Well, it would be possible, it is a modular thing, you know... But to be honest, it would result in a really big amount of work, because also the JAVA editor would have to be modified.

so i'll be mirroring one of the screens control knob layouts.

On the other hand it should be fairly easy to modify the encoder positions to a more symmetrical layout  ;), even if this implied a different 'screen setup' for the second LCD.

Because stryd asked for more screenshots in another thread: Here you can see the Device select screen, the Module select screen and a demo Parameter screen.

What we will really need is some help with the JAVA editor software. To make it more sweet to all of you, I am in the process of setting up a public SVN repository, so you can easily contribute or peek around the software. I will let you know once it is up and running.

Best regards, ilmenator

MIDIbox_GLCD_menu_Device_select_small.JPG

MIDIbox_GLCD_menu_Module_select_small.JPG

MIDIbox_GLCD_menu_Parameter_demo_small.JPG

Share this post


Link to post
Share on other sites

Sweeet as.  :D

Share this post


Link to post
Share on other sites

Ist ja witzig, in Ilmenau hatte ich mal vor jahren Medientechnologie studiert :) Aber unsere Medienprojekte sahen da noch n bisl anders aus ;)

Share this post


Link to post
Share on other sites

Thanks Volker, Jacob, Ilmenator! This isn't the first time where the MIDIbox platform was used in an school or university project, but it's the first time where such an excellent documentation was written! Not to say that the idea behind this project is innovative when you compare it with today's MIDI controllers. The user interface seems to be very ergonomically designed - if I wouldn't have so many own projects in the queue, I would build one and help on the adaption to various synths, and maybe also on display screen improvements :)

I think that the source code, the editor and the documentation is a big step towards a completely community maintained family of new MIDI controllers - you have some software and DIY skills, and don't want to spent the money for the two 2 GLCDs, or you prefer more buttons for several synth functions? Then just create a derivative and publish your changes! :)

Best Regards, Thorsten.

P.S.: you could omit the MIDI merger by using the MIDI In of the MBHP_IIC_MIDI module. Performance shouldn't be a problem here (a MIDI Controller works event driven), you only need to poll for incoming packages and forward them to the MIDI Out

Share this post


Link to post
Share on other sites

Hi ilmenator,

What we will really need is some help with the JAVA editor software. To make it more sweet to all of you, I am in the process of setting up a public SVN repository, so you can easily contribute or peek around the software. I will let you know once it is up and running.

There is a growing list of work that needs to be done on MIOS Studio, and after uni exams are over in a couple of weeks I will finally have some time to jump in and start improving it.

While I don't really have time to have a good look at your editor software, I'm happy to help out and answer any questions you might have in regards to JAVA and MIDI.

One question, is there any particular reason you are using SWT instead of standard Swing?

Cheers,

- Adam

Share this post


Link to post
Share on other sites

Hi Adam,

thanks for offering your help - it is much appreciated here!

One question, is there any particular reason you are using SWT instead of standard Swing?

I was not involved in the SWT vs. standard Swing decision, and I cannot see any discussion on this in the documentation that we have. I think it was just something related to the look of the tool. In fact, one of the criticisms that the review commission had was that the tool's platform independency was never actually tested to a reasonable extent  :(.

TK wrote:

The user interface seems to be very ergonomically designed - if I wouldn't have so many own projects in the queue, I would build one and help on the adaption to various synths, and maybe also on display screen improvements Smiley

There is quite some usability thinking that went into the user interface. Yet it is very ''dry'' and clear (you might call it ''unsexy''). I was considering some kind of graphical representations of envelopes on a third GLCD, but it would have turned out too complicated in this first implementation. Yet there is room for improvement: e.g. the vertical bar graph should be able to also represent negative parameter values. Currently it shows the MIDI value going from 0-127 (0-16384 for 14 bit parameters) - it would be nice to show the actual ''user'' value (see the chapter of the documentation discussing the user scales).

... and don't want to spent the money for the two 2 GLCDs...

With respect to the cost of those displays: you can find them regularly at ebay, and I payed 13,- Euros each for the ones I purchased for my own personal box. LED backlight included...

Best regards, ilmenator

Share this post


Link to post
Share on other sites

hi,

A third screen dedicated to Graphical display of envelopes and the likes, although futher complicating the project.. is definately a good option to have..

Good for an additional development step maybe..

Graphical envelope editing is something which proves invaluable on my jd990 for quick editing & on things like eq & compression on my digi desk.. its much quicker to read and more overall relavent to what you are hearing ..than a string of numbers :)

Maybe this third lcd could be in the middle & also serve one secondary function as a  '(modulation) matrix / patch bay' editor ? ...ie with a small array of buttons around it which allow for rapid editing (& display of the routing options) of those links which mostly consist of on/off (or cycling through +/-/dev/x math, etc) values ?

Added to that (or instead of maybe).. the rotarys on the adjecent screens could be used to edit variable 'modulation matrix' values, when this screen mode is active ?

Variable values on modulation 'junctions' could be displayed as a small virtual rotary dial displaying its position -

or a little pie chart possibly with the 'math type (+/- etc) displayed in the middle.

Serving both these functions would probably require a wider display in the middle.. tho wouldnt that just look cool ;) ..and they are pretty plentiful on ebay & surplus outlets for reasonable prices.. so it needn't break the bank :)

edit2zn4.jpg

(ugly edit idea, without buttons..)

Additionally, extra control element, possibilitys could be added.. without further complicating the front panel - by using rotary encoders with a vertical click switch built in. non-cllick ones can have a switch added to them with a simple bit of mechanical enginuity however.

Additional note: Having such a hardware structure in place, would also allow for later development of the firmware to maybe include things like a graphical display of synth structure (oscs @ top, outputs @ bottom). and could allow quick visual navigation to a particular section for editing.. whilst facilitating an overview display of values.

Or pressing 'page up' or 'page across' on the modulation matrix; could take you to a page which follows the lines of the 'mod matrix' to a page with that part of the synth structure.. Just another idea (may need some further thinking through)

Share this post


Link to post
Share on other sites

Hey, I like that  ;D... let's see how many people jump the boat and help with that.

Btw, the rotary encoders around the display already do have a button function in our prototype...

Best regards, ilmenator

Share this post


Link to post
Share on other sites

sure.. would love to help... just wish i had the patience to pick up the programming ..as i certainly seem to come up with ideas alot  :-\

(some for better.. some for worse..)

Tho at the min theres afew things sitting here unfinished ...so ill get them done first before i get heavily involved in anything else..

Share this post


Link to post
Share on other sites

Well.. been sat here whilst away from home, reading up on the mios c functions & structure... and with my past dabblings in c ..its coming back to me somewhat & starting to make some sense.

Might well see some mios programs / programming from me yet..

Share this post


Link to post
Share on other sites

Great to hear!

In fact, most things in the MIDIbox GLCD itself are fairly well settled, a few minor things could use some improvements - but the overall functionality is there to cope with its primary goal, the editing of synth patches.

What is still in a state that needs some overhauling is the JAVA setup program. The main problem with this is that the conglomeration of parameters into one Sysex file for transmission into the MIDIbox GLCD is still kind of buggy. Therefore at the moment it is very difficult to create fully functional devices for the box. The basic structures are there, the concept and the protocol are fully described in the documentation, but some more work needs to be invested.

As already said I am in the process of setting up an SVN repository, but my university administrators are a little worried about security issues with their servers. I need a little more time, but when it's done hopefully we can coordinate the work on the editor in some way. Also, I am currently trying to form a new project group dealing with the editor software.

Best regards, ilmenator

Share this post


Link to post
Share on other sites

Brilliant device!  The name doesn't work for me though - maybe MIDIbox SynthEdit or Patcher or something?  GLCD is just the display, doesn't really reveal the function.

Share this post


Link to post
Share on other sites

yes.. fair comment, i'd second that too.. tho it'll be upto illumantor

Share this post


Link to post
Share on other sites

I don't care about the name, it was chosen by the students who did this project. Now the project is over, I am left with what they have been programming, and I can do whatever I please with the 'name tag'  ;D.

So let's call it MIDIbox SynthEdit!

Best regards, ilmenator

After all, it's just a name :-* (sorry Artesia, just could'nt resist  ;D)

Share this post


Link to post
Share on other sites

Isn't SynthEdit a program for making VST's? I'd suggest MIDIbox SE, whish is in keeping with the naming convention of the other MB's too - MIDIbox LC, CV etc...

Share this post


Link to post
Share on other sites

How about MIDIbox UC (Universal Control)

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

Agreed.  :)

I will change the name tag in the Wiki as soon as I find the time. Or is there anybody else who cares to do this?

Best regards, ilmenator

Share this post


Link to post
Share on other sites

yep, UC - Universal Control is cool.. A pretty clear discription of what it is :)

Share this post


Link to post
Share on other sites
How about MIDIbox UC (Universal Control)

Best Regards, Thorsten.

Nice. "you see"

I see a future in advertising for you T ;D

Share this post


Link to post
Share on other sites

I've started this.  i hope that's OK with Artesia and everyone else.  It's just a framework at the moment, to take the machine translated pages from original documentation and fix up the English.  Anyone's welcome to have a go, especially wennst du kann ein bisschen Deutsch sprechen.

Share this post


Link to post
Share on other sites