Jump to content

ENCODER and MAPs problem / bug?


ABP Electronics
 Share

Recommended Posts

Hello MidiBox users,

 

Here is the idea and a problem:

 

I want to use encoder to select different sounds from my sound module. I want to have sounds organised in logical groups like: Pianos,Electric Pianos, Strings...etc. I aslo need to use CC0 for bank changes. I know that ProgramChange is not supported by MAPS, so I have a following idea:

 

Assign 2 EVENT_ENC to 1 hw_id encoder . First Event encoder would change CC#0 using maps, second encoder would use undefined cc to select values from second map : for example cc 14. Number of entries would be the same in both maps. So configuration would look like this:

 

EVENT_ENC  id=1  hw_id=1  enc_mode=Absolute  range=map1  type=CC ch=2 cc=0 
EVENT_ENC  id=2  hw_id=1  enc_mode=Absolute  range=map2  type=CC ch=2 cc=14
 
MAP1 64 0 8 16 62 63 64 0 1 2 8 62 63 0 64 0 8 0 64 0 8 62 63 64 0 8 9 64 0 8
MAP2   0 0 0   0   0   0   1 1 1 1 1   1   1 3   6 6 6 7   2 2 2   2   2   4 4 4 4   5 5 5
 
Now - plan was to use EVENT_RECEIVER and EVENT_SENDER to change second values from CC14 to ProgramChange. This part of the experiment works ok, however there is a problem how encoder "reads" the map.
 
when I turn the encoder - on the first map it only goes to 63 - when it finds repeated value "64" it goes back to first "64" and keeps going :0,8,16,62,63....and back to 64 . On second encoder I only get value 0. I have performed tests with different maps and it always do the same action. Whenever there is repeated value in the MAP - it will go back to to the same value at the beginning of the MAP.
 
For example if we use velocity map:
 
MAP1    0   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30 \
       32  34  36  38  40  42  44  46  48  50  52  54  56  58  60  62 \
       64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79 \
       80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95 \
       96  96  97  97  98  98  99  99 100 100 101 101 102 102 103 103 \
      104 104 105 105 106 106 107 107 108 108 109 109 110 110 111 111 \
      112 112 113 113 114 114 115 115 116 116 117 117 118 118 119 119 \
      120 120 121 121 122 122 123 123 124 124 125 125 126 126 127 127
 
Highest value I can get is 96. After this value encoder will only repeat 96.
 
Is there any way that encoder can accept the same value twice in the MAP? I tried different versions of firmware....always the same results.
 
Regards,

 

 

Link to comment
Share on other sites

Hello again,

 

I also have done test with button in Toggle mode.

 

EVENT_BUTTON id=  65  button_mode=Toggle  type=cc chn=1 cc=20  range=MAP5 
MAP5  0 1 2 4 8 16 32 64
 
This configuration works OK.
 
But this....
 
EVENT_BUTTON id=  65  button_mode=Toggle  type=cc chn=1 cc=20  range=MAP5  
MAP5  0 1 2 2 4 8 16 32 64
 
does't work...it stops on "2" and keeps repeating "2"
 
Any ideas?
 
Regards,
Bartosz

 

Link to comment
Share on other sites

Hi,

 

this is because how maps are handled. With the current implementation, maps with duplicated values won't work.

 

I've to check if an alternative option is possible which allows to handle your use case, stay tuned...

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK,

Thanks for a quick reply. I was trying to find way around it. But it doesn't seem to be easy.

Also another request...

For EVENT_KB is there any easy way to make keyboard transpose and start key ( for split point) not fixed. I mean these 2 parameters dependent on value of different event? So I can transpose keyboard by +/- semitones by turning encoder or pressing a button? Same with start key....

I think it is fundamental functionality of any keyboard controller. Easy way means - without going into C programming.

Best regards,

Bartosz

Link to comment
Share on other sites

I spent some time this evening to make a proper map index handling possible - hopefully with success!

 

Please try this version at your side: http://www.ucapps.de/mios32/midibox_ng_v1_033_pre7.zip

 

 

Also another request...

 

step by step please!

First we've to try to get the firmware stable again after the changes, this requires careful testing at both sides.

 

I remember that there is an open request for defining transponse and split point, but my current focus is on fixing bugs, not adding new bugs^H^H^Hfeatures ;-)

 

Best Regards, Thorsten.

Link to comment
Share on other sites

But there is already a transpose-function! I'm sure you can switch it on with a bit of effort. I don't have the time at the moment to check it out. I just wanted to let you know, that transpose is already integrated in NG.

 

Shouldn't it also be possible to adjust the range of the keyboard with two encoders? I can't find the original thread, but here is what TK said a while ago:

Link to comment
Share on other sites

Hi FantomXR,

 

But there is already a transpose-function! I'm sure you can switch it on with a bit of effort. I don't have the time at the moment to check it out. I just wanted to let you know, that transpose is already integrated in NG.

 

Shouldn't it also be possible to adjust the range of the keyboard with two encoders? I can't find the original thread, but here is what TK said a while ago:

 

I don't think it is a solution....it is part of it...

 

With NGR script I can set up minimum / maximum value for the parameter "range" of the keyboard.

 

If we take NGC configuration like:

EVENT_KB id=1 hw_id=1 type=NoteOn chn=1 key=any use_key_number=1 range=0:47 kb_transpose=0 lcd_pos=1:1:1 label="Note %n Chn#1"

and then using NGR we set-up:

set_min KB:1 48
set_max KB:1 72

Then we got a keyboard which will only respond to keys from range 48-72.... so we have split point.

 

But you can't control parameter called "kb_transpose" this way.... it must be fixed in NGC configuration.

 

We need TK to clarify if I am right.

 

Regards,

Bartosz.

Link to comment
Share on other sites

But you could for example put an EVENT_KB which has transpose = 0 in bank1 and another KB with transpose = 12 in bank 2 and switch between the banks with a switch.

 

Not perfect, but a workaround.

 

My setup is much bigger then you think.

 

I have 2 physical keyboards, every physical keyboard makes 3 EVENT_KB - each assigned to different midi channel. I can play 3 different voices together on each keyboard and switch particular channels on/off during performance .

 

With your idea I will need to make another 12 EVEN_KB to get transposition octave up/ down for each EVENT_KB. To get transposition up/down by semitones I will need 11x6 EVENT_KB. It is a bit of overkill...isn't it?

 

But as you said - it maybe a workaround - but I am sure TK can possibly implement more practical solution.

 

Regards,

Bartosz

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