Jump to content

reason


Guest didifeed
 Share

Recommended Posts

Guest didifeed

hi again !

i'm having a little bit problems asssigning the reason controllers. following things belong to the standard midi mapping of reason.

malstroem.jpg

the green bordered buttons in the picture are no problem because i simply can make them work via a toogle function of a button.

the selections which are marked with a red border in the picture are a big problem because when i assign them via the standard mapping they only go to the first and the last selection with @toggle. so they seem to need a value depending on the number of selections which can be made.

if i assign them via midi remote mapping it works. also with a button configured as @onoff note.

i tried several things like poly aftertouch etc.

i think i would need a meta event which makes a incremental value. i have programming skills but i don't know how to get this things working. i could assign them via the midi learn but i that is not really what i want. i would have to assign it in every new project  :(

perhaps somebody knows a easier way than implementing a meta event.

thx

Link to comment
Share on other sites

Hi,

you don't need a meta event, you only have to specify different "velocity" values for the note which controls the radio button section. And you have to set the button mode to "OnOnly", so that no Note Off (with zero velocity) is sent when the button is released.

Example (in midibox64.ini format).

I'm assuming that the radio button group is assigned to Note Number 0x30 (C-3). Of course, you can do the same with CC's...

    # The first five Buttons control the Shaper mode
    1   =  90 30 00  @OnOnly
    2   =  90 30 20  @OnOnly
    3   =  90 30 40  @OnOnly
    4   =  90 30 60  @OnOnly
    5   =  90 30 7F  @OnOnly

Best Regards, Thorsten.

Link to comment
Share on other sites

Guest didifeed

thx thorsten!

yes ... throstens way is nice but much buttons are wasted in this way. i also assigned a pot to it with a max value of the number of selections. my box has only 32 pots+32buttons and so i didn't want to waste pots for such functions. but i found that i have pots left even if i assign the selections to some. so its not the best but a good solution.

my other problem is that i don't understand how to work with the bankstick at all. it's a little bit crappy because i don't have a lcd on my box and to this end i can't see what i'm doing hehe

Link to comment
Share on other sites

Ok, then I will just give you an example for a meta event: open mb64_meta.inc, search for "MB64_META_Handler_10" and replace it by:

MB64_META_Handler_10
        ;; do nothing if button released (button value == 0x00)
        movf    MIDI_EVNT_VALUE, W
        bz      MB64E_META_Handler_10_End
        
        ;; increment variable
        incf    MY_BUTTON_TOGGLE_STATE, F
        ;; reset to zero if value >= 5
        movlw   0x05
        IFGEQ   MY_BUTTON_TOGGLE_STATE, ACCESS, clrf MY_BUTTON_TOGGLE_STATE
        ;; send value
        movlw   0xb0
        call    MIOS_MIDI_TxBufferPut
        movlw   0x10
        call    MIOS_MIDI_TxBufferPut
        movf    MY_BUTTON_TOGGLE_STATE, W
        call    MIOS_MIDI_TxBufferPut
MB64_META_Handler_10_End
        return
This will send CC#16 with values 0, 1, 2, 3, 4, 0, 1, 2, ... every time you press the single button. Thereafter locate the variable to a free address, open app_defines.h, search for an unused address (lets say 0x03c) and write:
MY_BUTTON_TOGGLE_STATE EQU     0x03c
The meta event has to be assigned to the button with
     1   =  F0 10 7F  @OnOff

You could also assign it directly in the source code (see mb64_presets.inc), this saves some effort.

There are several ways to implement this for more toggle buttons, the most simple way is to add a dedicated meta function for each one. For this, you have to enhance the lookup table at the beginning of mb64_meta.inc

BankStick: each bank contains a complete setup (SysEx dump). If no LCD is available, you could also switch between the banks with a Program Change event over MIDI Channel 16 (coming from external), or you could assign some buttons to special functions like described here: http://www.ucapps.de/midibox/midibox64_sfb_table.txt

You are right, without a LCD it isn't easy to understand all the possibilities of the application!

Best Regards, Thorsten.

Link to comment
Share on other sites

Guest didifeed

thx a lot for the function

but it doesn't work :o(

mplab tells me some errors when building.

Error[113]   D:\MIDIBOX64_V2_3\MB64_META.INC 244 : Symbol not previously defined (MB64E_META_Handler_10_End)

Error[126]   D:\MIDIBOX64_V2_3\MB64_META.INC 244 : Argument out of range (-13725 not between -128 and 127)

Warning[207] D:\MIDIBOX64_V2_3\MB64_META.INC 258 : Found label after column 1. (MB64_META_Handler_10_End)

have inserted it as explained

bankstick: i'm already trying to get a cheap lcd because reichelt doesn't send orders below 100 euro to austria  :( so i have to look for one at ebay. my problem is that mios is a really complex and powerfull tool (well done by you) and i have a little bit problems to understand the structure ... it's also a little bit hard because i don't understand assembler code. i think i'll open a new thread for understanding mios and the bankstick things.

what i also don't understand is how a memory dump is defined. it's a simple syx file isn't it? i want to make my configurations with the mk_syx and then uploading to banks ... is this right? but i don't know how to tell the box to which bank the syx file should be uploaded. it's no problem to send it with midiox but then i would only have one "master-config" on the box.

thx for tha help and wasting your time for us

greez

Link to comment
Share on other sites

There are two problems, you have to rename "MB64E_META_Handler_10_End" by "MB64_META_Handler_10_End" (typing error), and you have to ensure that both labels are beginning at the first column.

Best Regards, Thorsten.

Link to comment
Share on other sites

Guest didifeed

hi and thx one more for your cool meta-event

but i would like to know if and how i can tell the event on which midi channel it sends

thx

Link to comment
Share on other sites

Hi,

replace 0xb0 by 0xb1 for channel 1, 0xb2 for channel 2, ... 0xbf for channel 16

You could also specify the channel with the Meta Event, e.g. if you replace "movlw 0xb0" by "movf MIDI_EVNT_VALUE, W", "andlw 0x0f", "iorlw 0xb0" the specified button value (should be within 00 and 0F) will be added

Best Regards, Thorsten.

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