Jump to content

YAPFB - Yet another pod XT floorboard - some questions i can't figure out


Greeny_fr
 Share

Recommended Posts

Hi there,

I'm currently building a Midibox 64 to use as a floorboard with my Pod XT. So far i have :

1 core

Midi In & Out

3 unmuxed pots (volume, wah and another optional parameter)

13 buttons on a DINX4

  • Bank + & -
  • Preset A B C D
  • Boost, Stomp, Mod and Delay
  • Tap Tempo
  • Tuner on/off
  • Wah on/off

13 LEDS on a DOUTX4 (one led per button)

A working bankstick

A little box with 4 buttons for the menus

Everything is working fine (buttons are working, LEDs are lit, pots control whatever i want them to) but i have some conceptual questions that are bugging me. I have searched (and managed to get all my hardware troubles fixed) but have not really been able to find answers; in fact it's been mostly confusing. I'm using the Midibox64 source and customizing it. I'm not afraid to code even though i have very little experience, so i'm not asking you to do it for me but just to guide me please, especialy to point out where i have to customize things in the source files :)

1 - The pod XT live has 128 presets : 1A->1D .... 32A->32D. I'd like to switch between them obviously by using ABCD buttons and bank +/-. For each preset i'd like to have recalled the current status of stomp delay mod and boost so that the according LEDs are lit directly, plus i'd like to be able to assign the 3rd pot to a different parameter. If possible, i'd even want to store a patchname.

What's the correct way to do that ? I'm lost. I thought : I configure Midibox to go in patchmode. Perfect, 128 total. Bank +/-  could increase/decrease an internal value "B" from 0 to 32. The ABCD buttons could be assigned to a "go to patch 1+4B, 2+4B, 3+4B, or 4+4B" via meta events and so i can access 128 presets.

But if i go into preset X, it doesn't send a program change message at the same time, does it ? Is it even possible ? In general, can i make so that a button press executes more than 1 function ? I think it's possible given the fact that menu buttons have totally different uses than the other ones.

2 - I'd like to have the bank +/- led blink (or just light on) when i press them and stop blinking when i select a patch. Once again, any clues on where i have to search ?

3 - Can some LEDs be assigned to the current midibox patch ? So far i have the ABCD buttons assigned to program change but if A is active and i press B, the "A" led doesn't light off.

4 - Where do i have to make changes so that the first line of the LCD displays the current patchname ?

There are 70+ files for the midibox so excuse me if it looks stupid, but once again i've tried to search but it confused me even more than i was.

Thanks for all.

Link to comment
Share on other sites

1. When you press an "ABCD" button, the midibox must send a program change midi message to the POD.

"A Program Change Message is a MIDI channel message containing two bytes of information.

The first is a status byte which contains information about the type of message ("I'm a Program Change Message") and the MIDI channel on which the message is being sent.

The second is a data byte containing a number from 0-127."

The MIDI channel can be a hardcoded number say 16. Set the POD also to that midi channel so that it will react.

The second byte is a the program number which in your case is: [nr of ABCD button pressed] + 4*"B".

> "In general, can i make so that a button press executes more than 1 function?"

You can program the midibox to perform a whole series of "actions" in reaction to a button press. Some actions that it can do are:

- Sending a midi message.

- Updating LCD text.

- Controlling outputs like for LEDs

- etc.

2. Define variables in your program that "model" the buttons and states of your floorboard controller.

Design and then program a "state-machine" of your floorboard controller. That state-machine must change state (=change the values of those defined variables) when events happen (=when you press buttons). Then program the actions that must be performed when:

- When the state-machine is in specific state. OR

- When the state-machine goes into a specific state. OR

- When a specific event happens.

3. "Can some LEDs be assigned to the current midibox patch?..."

Well, LEDs are outputs for the midibox controllable via the DOUT driver.

When you press button B, you can program your state-machine to change state: variable "ButtonB" can be set to 1 while all other button variables can be reset to 0.

After this has happened, you can execute a function that you can program to "ChangeTheButtonLEDsAccordingToCurrentButtonState":

- Turn off all LEDs that correspond with a "button" variable that has value 0.

- Turn on all LEDs that correspond with a "button" variable that has value 1.

4. "Where do i have to make changes so that the first line of the LCD displays the current patchname ?"

First you must define the patchnames into a collection of string variables in the midibox program that you are writing.

Then write that string text to the LCD with the LCD driver in the midibox according to the program change value like:

Write the first patchname of the "patchname string variables" collection to the LCD when the first program is selected on the floorboard.

I do not know which specific available source files show program examples for these things but they are pretty standard:

- Declare and define variables.

- Program a state-machine.

- Handle DIN events by setting a defined variable to a specific value.

- Declare and implement helper functions that can be called from your main program.

- Send a program change midi message.

- Set output LEDs via DOUT by checking the value of a defined variable.

- Write a string variable to LCD.

By "Ilmenator": http://www.midibox.org/forum/index.php/topic,11804.msg95248.html#msg95248

"Assigning MIDI messages to certain buttons on the MIDIbox is a piece of cake, see the various C code examples, e.g. here:

http://www.ucapps.de/mios_c_send_din.html.

Or, you take a look at the MIDIbox LC:

http://www.ucapps.de/midibox_lc.html."

Link to comment
Share on other sites

Err... sorry flo but much of that doesn't apply here because the OP is modding MB64.... The advice you gave is more suited to a custom app. That said I think a custom app is  agood idea here, or better yet, you could use the excellent floorboard project, which has perhaps the best documentation of any project and is built especially for this purpose.

Link to comment
Share on other sites

Maybe we could raise forces to extend the floorboard project,

what is done is impressive, but still relies on using an external midi floorboard.

I am really interested on building a complete floorboard also, with banks and expression pedal, although I have other projects on the line!

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