Jump to content

Two part design idea


Guest roosta
 Share

Recommended Posts

Guest roosta

Hey,

 I'm a guitarist/bassist, and I've been trying to come up with a design that will give me some good flexibility and real time control. That is, I'm trying to design and intelligent foot controller, one that will be integrated into a larger system that I'm working on.  The heart of that system is actually a rackmounted PC running linux, recieving MIDI messages via PureData (an excellent Max/MSP like system) and controlling various LADSPA (vst-like linux protocol) and VST effect plugins.  So, what I've been thinking for the MidiBox end of things is this: build two separate Cores, one in the footcontroller, and another fully-fledged MidiBox 64e.  The big midibox will sit on top of my guitar/pc rack, and I will use it to tweak all the effect settings, by sending midi program change messages to PureData.  This way I can tweak things like reverb, eq, amp model, etc to my hearts content.  All the things that don't really need realtime control.  The floor controller will send program change messages to the big midibox via MidiBox Link, where, as I understand it, messages are wrapped with start/stop bytes, and are then intercepted by another CORE before traveling down the line.  The big midibox will then map the incoming Program Change messages (which are triggered by footswitches on the floor unit) to outgoing Program Change messages, using a lookup table.   For example, say I've got a floorcontroller that looks and acts almost exactly like the old floorcontroller project, except that it sends it's Program Change messages wrapped in MidiBox Link bytes (and it's built around a full CORE, not the old PIC16F87).  I have 120 possible program change messages to send (12 virtual banks of 10 switches, like the old project).   I write a little app to listen for program changes on whatever channel I set the floorboard to, and run that on the big midibox.  Now, whatever outgoing midi message I've assigned to that incoming message gets sent out to the PC.  The basic idea is to have a bunch of extra buttons attached to my big midibox, but to have them live in a separate chassis, where I can get to them with my feet.  This way, I get to control all the parameters of my plugins without a keyboard/monitor setup, and I get stompbox style contol over all aspects of the system.  Does anybody have any ideas or suggestions for me?  I've not looked at the ASM source yet, but I think i'm up for the coding task.  Is there anything inherently screwed with my design, or is there something really simple I'm missing?  thanks in advance,

Roosta

P.S. This project rocks.  I've been blown away the past couple weeks, learning about midibox and planning my own.  thanks!

Link to comment
Share on other sites

mm intereting :)

first I think you can just make a floorboard with switch, don't need any core module for that, you plug the switch on the MB64 ;)

For the linux stuff : I had a similar project, but instead using PD (but I didn't know I can make this with PD) I wanted to use jack + ladspa, so I need to write a client that handle plugin and midi in/out. And make a linux embedded system in rack case too ;)

do you have any stuff I can test with PD? I'm very interesting in that, but I don't have a lot of time...:-/

Link to comment
Share on other sites

Guest roosta

yeah, the thing that first got me thinking about this was SooperLooper, a LADSPA clone of the Gibson Echoplex digital looper.  check it out at http://essej.net/sooperlooper  - there's a couple of PD patches there, but you've got to install a patched version of the PD plugin~ external.  There's a link on the site.  One thing - the PD patch on the site doesn't send or recieve audio from the adc~ and dac~ objects.  Instead, it recieves incoming data by catching sooploopin~ and throws the outgoing data to sooploopout~.  So you either need to send it directly to the ADC/DAC, or do this in a separate window:

[adc~]--------[throw sooploopin~]

[catch sooploopout~]--------[dac~]

So, anyway, try it out.  It's a really cool plugin, for sure.  If you can't get it working right away with PD and just want to play with it,  there's a python test script that you can control with the PC keyboard.  Great thing about PD is that it already handles MIDI, LADSPA and VST (with vstserver and wine).

So, you think I could just have the switches in the floor box hooked to the core in the big midibox?  Hmm... A DIN module needs 5 pins to connect to the CORE.  A MIDI cable has five conductors....  Excellent!  But I was also wanting to have an LED display on the floor... Well, I'll just keep it kicking in my head a while.

Link to comment
Share on other sites

I've got similar needs  ::) (refer to topic about a Scizophrenic controller in this forum) but was aiming to solve it by mounting the MIDIbox in the foot controller chassis and teaming it with one of Throsten's earlier projects - a foot controller that let's you change patches! (It's under Old Projects on the sidebar of the main uCApps site).

I have built a MIDIBox and gotten it driving my Line6 POD and Emagic Logic just fine - the challenge I have is to use the control surface with ~11 footswitches (already built!) to change between controlling the "floorboard patch control" project and the "MIDIBox 64" project!

The MIDIBox will do everything I want except provide an elegant way to simply change patches!  ;D

Can anyone help with how to make a group of footswitches route their signal to the MIDIBox and then at the punch of a button route their signals to the floorboard project?  ???

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

×
×
  • Create New...