Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Midi Out for data

Tobisc
2010-11-30
2013-11-04
  • Tobisc
    Tobisc
    2010-11-30

    Hi!
    I'm working on a midi foot controller for rakarrack using arduino as platform. My idea/request is if rakarrack can have an extra midi out? this midi out will communicate to the controller the state of rakarrack (FX on/off, midi On/Off, tap tempo, etc). So, every time rakarrack change his state, the lights of the controller and other stuffs will keep updated.
    Other idea is the "phantom" module… je This "FX" don't' process any signal. Is only a mask for outside FX like amp distortions or any analog pedal. With this future is possible to have all the sound chain organized from rakarrack.
    Ok, thats all i think. Sorry for my terrible English. Thanks all the people that makes rakarrack, a super FX processor!

     
  • Josep Andreu
    Josep Andreu
    2010-11-30

    Hi

    Interesting ….the thing is …. what do you need exactly? …  we can define a System exclusive messages … or maybe do you want more simple data …. tell me … :-) 

    Josep

     
  • Tobisc
    Tobisc
    2010-12-01

    Hi!
    I think SysEx are good idea. I'm sure you have more idea of how define this for rakarrack.
    The very important thing that rakarrack must tell to the controller are:

    - The FXs that are loaded in the preset. (the controller have 10 buttons like raka for On/Off).
    - If the FXs are On or OFF in the moment that are loaded.
    - Update the parameters in the controller that for some reason have been  changed from the computer. This is very important with the parameters that have visual reference in the controller (Tempo, FXs On/Off,etc).

    The "Phantom" module or mask FX, is for the FXs outside rakarrack. This future come up for my amp (lanney tf300). This amp have a beautiful Overdrive/Distortion that is part of my chain of sound. I think that use the FootSwitch of the amp and the controller is too difficult for live performance. Is better if all is configured in the preset of rakarrack y driven by the controller. This special module could be for reverb, flanger, delay or any FX. Of course that others FX maybe need some special improvements in the hardware controller for manipulate the parameters, but that is another history. For now FX On/Off will be great.

    May be you or any one have some other ideas for the controller? I well be happy with new ideas.

    Cheers!!! And thanks!!!

     
  • Transmogrifox
    Transmogrifox
    2010-12-01

    I'm not sure what spare digital communications pins you will have, but you may also add some LCD's at each button to indicate the FX loaded in that slot.  Rakarrack could give you that information in a numerical format over MIDI (some sort of SysEX message), then internal to the arduino board you can have a table to match names to numbers and display to the LCD. 

    Of course, that is more complicated, and you would need LCD's.  Probably Rakarrack on the computer gives you all of that feedback, but Rakarrack can be run headless… then the LCD might be a useful feature on the controller.

    Just an idea.

    The analog inputs can be used with real pots so you can adjust things with a knob.  Unfortunately you can't change the knobs without a servo if something is changed on the computer…. I think I am dreaming too big for the arduino.  It doesn't have enough pins for much more than on/off.

    One thing that is realistic for an analog output pin (does it have that?  You can use PWM on a digital output  if there is no DAC):
    VU meters.  We could certainly send a VU level over MIDI, normalized to 127.  Then you can either install a VU bar, or an analog meter, or even just a single LED (like clip/limit indicators).

    Anyway those are ideas that come to mind right now.

     
  • Renato
    Renato
    2010-12-02

    wow, this is really cool. I think you're dreaming too high only in terms of how many ports the arduino has, because otherwise every single thing you said is doable on an arduino. I think it does have some analog outs, but ATM I'm not sure either… otherwise, yeah, you can do it with PWM also

    We could even do a project for an "official" rakarrack pedal board, built with arduino!

     
  • O ts
    O ts
    2010-12-02

    it would be great !
    really !
    can you hurry because i need it for march 2011 ;o)
    Olivier

     
  • Tobisc
    Tobisc
    2010-12-02

    Hi everyone!
    It makes me very happy you like the midi controller project for rakarrack. I propose "Rakaduino" jajajaja.
    I believe that all ideas are possible. Some more complicated than others.
    Although ATMEGA chips used in the arduino platform do not have too many ports of exit and entry, there are many techniques for scaling. One is the use of shift registers. Or use the analog inputs to sense different buttons through voltage dividers. That is, with some extra circuits can take advantage of the good enough arduino.
    The idea of the VU bar is more than tempting. With a PWM port, resistors and diodes do the trick. (I saw some schemes on the Internet)
    The LCD's would be fantastic, but too expensive and difficult to obtain, at least for me. On the other hand should be those which already have integrated serial communication, otherwise, would run out of ports. I'm not sure how many shift registers can be used together. I will use only two and that's enough for me to all the leds and stuff.
    To update the status of certain values, these should be handled by encoders rather than potentiometers. But again, it escapes me now;)
    If you want, I can send to those who want the schemes that I have made so far. I clarify that I am only a fan of electronics, can and must be many mistakes. Feel free to fix them, jejejej

    Well, thank you very much for the ideas and interest.
    PD:

    Why use arduino?

    "For the philosophy of free software and hardware and all that that entails.
    "Because it's fun.

     
  • Transmogrifox
    Transmogrifox
    2010-12-04

    I would be curious to see how efficiently arduino uses the hardware compared to writing everything from the ground up in C or ASM.  In college I programmed the motorola HC12 processor in assembly, then spent some time on the Microchip PIC microcontrollers.  When you take a look at the vast quantity of free ASM and C for these, you will see that Arduino is not particularly unique by being "open source" or "free".  Much of the code I have seen for these uC's is more free than GPL because it has no licensing restriction on it whatsoever…. it's like what Stephen M. Bernsee used to "license" his pitch shifter code : Wide Open License… where basically it's keep the authorship on it so I, the author, doesn't get sued for distributing my own code freely.

    Anyway, what Arduino brings to the open source world is a quick development platform that is free & open source… sort of like the open source equivalent of parallax's "Spin" language for the propeller chip, including all kinds of useful libraries.

    The thing I don't like about encoders is they are not position dependent (if you use the continuous +1/-1 type).  Pots with servos bring a fluid analog feel back through the hardware interface.  At the same time, given cost constraints, the cheap digital encoders certainly are attractive.

    For LCD's :  If you could get something that was able to share the same line as the next (like an RS-422 type network), and each could have it's own address, then you could drive them from one pin, single-ended serial communications.  I haven't done my research to see who does this, but I agree the cost will add up rapidly.

    As for the VU meter, you probably don't even need diodes because the LED's serve that function.  Make several resistor dividers - one for each LED  - and set the voltage on the far end to ~1.5V less than the voltage you want to have turn it on.  It's even better if you put the VU meter network on a 12V supply voltage, then drive a transistor with the digital output pin using PWM to amplify the nominal 5V to 12V range.  That allows you to put more separation between each voltage level so you have a better defined on or off state on each LED.  Of course, put a capacitor on the collector of the transistor to average out the PWM signal.  There's a 1-pin-per channel solution.

     
  • Tobisc
    Tobisc
    2010-12-30

    Hi everyone!
      I'm finishing the first prototype of Rakaduino.
      At this point I just need the system exclusive messages (midi) from rakarrack in order to continue programming the micro controller … :)
      Thank you very much to all who work to make rakarrack how good it is.
      Greetings and Happy New Year!

     
  • Josep Andreu
    Josep Andreu
    2010-12-31

    Hi

    Really good …  can you please send us a complete list of the data that you need? …  I need almost a guide of what you need .. then I will send the MIDI expected data you will need to receive in each case …  when we have this list ready I will code the necesary functions to send.

    Josep

     
  • Tobisc
    Tobisc
    2011-01-02

    Hello Josep!
    Rakarrack must report the name or ID and status (on / off) of each of the 10 FX as well as its parameters. Also the various modules (tuner, MIDI, tap tempo, etc.).
    I think the best way to rackarrack know when and how to send information is through a SysEx sent from the controller. Perhaps the "SysEx" can tell you that information needed by the controller, so there is no need to send all the information each time. For example, a requesting state sysex of the parameters of an FX or asking the status of certain parameters of certain FX, etc. Or one to send partial information of all FX and modules, for example if they are on or off (very common when you need to update the status of the LEDs representing each of the FX in the controller). Surely you have better idea of how to implement this.
    I hope not to be too unspecific and that these paragraphs help.
    Greetings!

     
  • dmgeurts
    dmgeurts
    2013-11-04

    did this go anywhere? Would it be possible to parse the preset name vis SysEx. I have a python script to drive a usb led matrix display...