Jump to content

Would like to build a Roland Programmer (JD990/MKS80-70, Etc)


mkultra
 Share

Recommended Posts

I have a JD-800 that I've been wanting to put on the market now for a week. The premise is that I don't really need it, and it's missing two essential things I use heavily when making sounds; cross-mod, ring modulator. Enter the JD-990, the JD-800 rack version which has those two essential things thrown in. Currently I use the 800 to control the 990. But it's very limited to what it can control on the 990. You can't switch which tone to edit, change waveforms, x-mod/ring, etc. It occurred to me that if I can do just about everything from a software based editor (sounddiver/Unisyn) I may be able to edit the same parameters with a custom made controller.

Now. How cost effective would be to build myself a controller for such a synth. Would I be better off sticking with the JD-800 as a controller? What would entail to complete this kind of project? Are there examples of completed projects I could look at? Is it possible to have both a Sysex & CC controller in one box? Would I need to learn assembly or C if I just want a controller? Would a stock midibox64 do the job?

Mind you that I'd also plan to use this controller to control other synths (and possibly efx gear) that have passed through my hands on & off throughout most of my life. Roland MKS-80-70-50-7, Digitech gsp2101, ensoniq dp2/dp4. I'm a rack oriented kind of guy.

Yet another question.. Is it possible to retrofit MIDI lighting controllers as synth programmers?

Link to comment
Share on other sites

Basically/Globally: Yes you can do what you want, if you say SoundDiver can control it. It mostly only depends on what your Synth lets you control over MIDI.

If I look at your profile, I would suggest that you explore the forum and ucapps.de more (watch the "MB of the week"-section) and you will get inspired automatically. Some of your questions cannot be answered wth yes or no (You might have to change code in "C" or you might not... depends on what exactly you will do).

Greets, Roger

Link to comment
Share on other sites

The JD-800 has a zillion sliders.  Generally it's much easier to do rotary knobs than sliders on a DIY panel.

AFAIK a stock MB64 will not send variable sysex messages in response to a knob value change without custom programming.

MKS-80 ... well given the market value of the MPG-80, I'm surprised nobody has built a MIDIbox version yet.

MKS-50 ... PG-300 is already a steal on eBay, and doing a MIDIbox version may be impractical.

Retrofitting MIDI lighting controllers as synth programmers ... consider the "MIDI Processor / Filter" project, which is really just a CORE module with some code examples.

Link to comment
Share on other sites

Im making a similar midibox for controlling a Zoom G9.2tt, which mostly requires SysEx messages.

if you use MIOS, sending SysEx is easy. the only difference is with a SysEx message, you are not limited to the same amount of bytes as a CC

sending a CC you would use code like

  // send mapped CC value
  MIOS_MIDI_TxBufferPut(0xb0); // CC
  MIOS_MIDI_TxBufferPut(0x10); // CC number
  MIOS_MIDI_TxBufferPut(MIOS_AIN_Pin7bitGet(pin)); // 7bit pot value
Where as with SysEx you just have to send more data.
  // send CC value
  MIOS_MIDI_TxBufferPut(0xF0); // SysEx Start
  MIOS_MIDI_TxBufferPut(0x10); // SysEx data
  MIOS_MIDI_TxBufferPut(0xA2); // SysEx data
  MIOS_MIDI_TxBufferPut(0x13); // SysEx data
  MIOS_MIDI_TxBufferPut(0x59); // SysEx data
  MIOS_MIDI_TxBufferPut(0xF1); // SysEx data
   etc...
  MIOS_MIDI_TxBufferPut(MIOS_AIN_Pin7bitGet(pin)); // 7bit pot value
  MIOS_MIDI_TxBufferPut(0xF7); // SysEx End

However, alot of midi sysex messages are not 7bit. my G9.2 has some that only go from 0-50, others that are on or off, one thats 10 bit... so you need to do some scaling of pots.

hope that helps.

Link to comment
Share on other sites

Errr...sysex data bytes must be 7bit maximum. If you want a reference other than me:

System Exclusive

....all SysEx messages must begin with a 0xF0 status and end with a 0xF7 status. In other words, this is the only MIDI message that has 2 Status bytes, one at the start and the other at the end. Inbetween these two status bytes, any number of data bytes (all having bit #7 clear, ie, 0 to 127 value) may be sent. That's why SysEx needs a 0xF7 status byte at the end; so that a MIDI device will know when the end of the message occurs, even if the data within the message isn't understood by that device (ie, the device doesn't know exactly how many data bytes to expect before the 0xF7).

......

Furthermore, although the 0xF7 is supposed to mark the end of a SysEx message, in fact, any status (except for Realtime Category messages) will cause a SysEx message to be considered "done" (ie, actually "aborted" is a better description since such a scenario indicates an abnormal MIDI condition). For example, if a 0x90 happened to be sent sometime after a 0xF0 (but before the 0xF7), then the SysEx message would be considered aborted at that point.....

'course, you can send a 10bit value in two 7bit data bytes, with room to spare.

Link to comment
Share on other sites

Welcome to the MIDIbox community!

After looking around in the forum you might want to take a look at the "MIDIbox UC", a Universal Control unit that was built for just the same purpose: control synthesizers that have only a minimal control surface (Korg M3R comes to mind, or even worse, Oberheim Matrix-1000). It is described in the  WIKI.

There is also a forum post introducing the box and the concept.

A drawback of this project is that the JAVA editor software is not completed yet, so it's basically a nice box that demonstrates the concept, but is not fully functional yet. Yes, I have the box at home, but was not able to complete the software for a number of reasons. If you (or anybody else) is into JAVA programming, you are very welcome to give me a hand  :).

Best regards,

ilmenator

About SysEx: Stryd was faster again...  ;D

Link to comment
Share on other sites

Some of your questions cannot be answered wth yes or no (You might have to change code in "C" or you might not... depends on what exactly you will do).

Greets, Roger

I'd like a basic controller with the option to store global presets for each synth/efx box. This could sound confusing. I don't want to save synth patches, but global control templates according to each piece of gear. That way I wouldn't have to re-program it every time I use a different piece of gear. Every knob/slider would have a different sysex manufacturer's ID for every global preset for a particular synth. Does that make sense?

MKS-80 ... well given the market value of the MPG-80, I'm surprised nobody has built a MIDIbox version yet.

MKS-50 ... PG-300 is already a steal on eBay, and doing a MIDIbox version may be impractical.

Retrofitting MIDI lighting controllers as synth programmers ... consider the "MIDI Processor / Filter" project, which is really just a CORE module with some code examples.

I looked at the project and didn't make much sense of it, applied to what I'd like to do. I'd assume (since I can't grasp this much info) this would allow me to translate the code coming out of a lighting controller into sysex code tailored to a particular function.

Often times I wonder if I'm better off getting a PG-1000 controller, and remap msgs within logic's environment to other synths.

As far as availability concerns. It's incredibly tough to find old roland gear, even if they're only controllers. The pg-200/300/1000/800 could fetch as much as $370 on ebay, or $150 depending on the alignment of the planets at an auction's end.

For the roland gear it takes me as long as months to hunt down what I want. Only to sell it back later at whatever price I'd find justified, often on the first try and at a fixed auction.

sending a CC you would use code like..

Where as with SysEx you just have to send more data..

However, alot of midi sysex messages are not 7bit. my G9.2 has some that only go from 0-50, others that are on or off, one thats 10 bit... so you need to do some scaling of pots.

hope that helps.

Does that mean that in this syntax, instead of putting a range value of 0-127 in cc. In Sysex I'd have to type out every hex step between 0xF0 & 0xF7 ?

Welcome to the MIDIbox community!

After looking around in the forum you might want to take a look at the "MIDIbox UC", a Universal Control unit that was built for just the same purpose: control synthesizers that have only a minimal control surface (Korg M3R comes to mind, or even worse, Oberheim Matrix-1000). It is described in the  WIKI.

There is also a forum post introducing the box and the concept.

A drawback of this project is..

About SysEx: Stryd was faster again...  ;D

That was such a tease.., and it signals what I could get myself into..

I'm having second thoughts now

Odd layout btw. But it does save on multiple LCD screens I guess.

Nice collage.

it looks interesting.

mios_intro.jpg

Thank you all for replying!

Link to comment
Share on other sites

Errr...sysex data bytes must be 7bit maximum. If you want a reference other than me:

What i ment was, ie.. my pedal has sysex for Phaser speed, it only uses 0-62, x00 to x3E. so sending a pot that goes from 0-127, the pot will max out at 62, less then half way, turning the pot above that wont effect the pedal. so it needs to be scaled down.

Link to comment
Share on other sites

I looked at the project and didn't make much sense of it, applied to what I'd like to do. I'd assume (since I can't grasp this much info) this would allow me to translate the code coming out of a lighting controller into sysex code tailored to a particular function.

Correct.

Often times I wonder if I'm better off getting a PG-1000 controller, and remap msgs within logic's environment to other synths.

I got the impression you wanted a standalone box.

There are plenty of MIDI knob boxes on the market, and using Logic you can get them to do almost anything.  MIDIbox is a whole different level of geekdom.  People here are doing amazing stuff, but not without spending a lot of time, effort and money.

As far as availability concerns. It's incredibly tough to find old roland gear, even if they're only controllers. The pg-200/300/1000/800 could fetch as much as $370 on ebay, or $150 depending on the alignment of the planets at an auction's end.

Patience, young jedi.  I have seen many PG-300's and 1000's go for dirt cheap.  Stick with it ... I find that if several get listed within a short period, then as they end supply tends to exceed demand, driving the price down.  Notice I did not say MPG-80, PG-200 or PG-800, which are always simply unreasonable.  I'm glad I got my PG-800 while programmers were cheap, but since PG-200's are through the roof, I have decided that I will instead eventually get the MIDI mod for my JX-3P and control it with a custom MIDIbox.

FWIW I also plan to build a custom front panel for my newly acquired Sequential Six-Trak.

BTW: I love my classic Roland polys too.  I have a JP-6, JX-8P, JX-3P, and Juno-106.  You and I could almost be brothers.  :)

Link to comment
Share on other sites

Often times I wonder if I'm better off getting a PG-1000 controller, and remap msgs within logic's environment to other synths.

I got the impression you wanted a standalone box.

Yes, I do  want that. Find me a controller with more than 32 knobs or sliders? These are usually very costly, and often software/sequencer-oriented controllers. Besides, I have done this before with a pg-800, and it wasn't very elegant. Although I do love how small and compact it is. Compare the pg-1000 to the beringher BCR2000. the beringher has 32 crappy, 360 knobs, all very tight together. The pg-1000 has an staggering count of 56 sliders!, and it isn't all that big either.

There are plenty of MIDI knob boxes on the market, and using Logic you can get them to do almost anything.  MIDIbox is a whole different level of geekdom.  People here are doing amazing stuff, but not without spending a lot of time, effort and money.

Please do point me to these controllers, because I cannot find them.

The only controllers I ever laid eyes on were the doepfer regalwerks and drehbank, which are impossible to find. The PC-1600 seemed to basic to me.

You know, I'll probably end up getting a pg-1000 with a d550, or d50, and remap things  to logic in order to control other gear. Unfortunately, you cannot plug ANY roland pg/mpg controller directly to a midi setup. Thanks Roland!

BTW: I love my classic Roland polys too.  I have a JP-6, JX-8P, JX-3P, and Juno-106.  You and I could almost be brothers.

My love for roland gear is very selective. I've found the jd-800 is a bit overhyped compared to the rack version. Yes I can make great pads with it, but I can make that (in true stereo) plus a heck of a lot more on a jd990. an MKS-70 with a pg-800 will always be better than a jx-8p, or jx-10. I've had x3 mks-80 in the past. Once with an mpg80, and it made a huge difference.

ugh, interfaces..

I do have to say though. What some of you are doing with this project is very interesting. I don't blame anyone for not being interested in doing custom dumb controllers.

Link to comment
Share on other sites

  • 1 month later...

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...
 Share

×
×
  • Create New...