Author Topic: few suggestions (midi, delay & tap tempo...)  (Read 197 times)

jluc

  • Newbie
  • *
  • Posts: 7
    • View Profile
few suggestions (midi, delay & tap tempo...)
« on: January 27, 2020, 08:44:02 PM »
Hi !

maybe I have to learn the c language  to try to program these suggestions myself, I'm afraid, mario, that you are already overworked ...
Anyway, I post here some ideas:

the possibility of calling channels with midi could be cool

ability to configure in config.txt the default delay value (B3) for each channel could be cool too.
another idea: a tap tempo (with a sensor for exemple) to define the default delay value (B3)

It could be nice if we could define in config.txt  the default values of the parameters for certain channels (for example channels 23, 24, 32) (i.e. a way to save certain finds during exploration with display on terminal) .

best regards
jluc
« Last Edit: January 28, 2020, 06:39:31 PM by jluc »

mario

  • Administrator
  • Full Member
  • *****
  • Posts: 143
    • View Profile
Re: few suggestions (midi, delay & tap tempo...)
« Reply #1 on: January 29, 2020, 09:21:41 PM »
Quote
maybe I have to learn the c language  to try to program these suggestions myself, I'm afraid, mario, that you are already overworked

-- That would be great! but it's all in c++, python is only used to upload/download firmware and config ???

Quote
the possibility of calling channels with midi could be cool

-- Interesting idea, and easy to do! But how to encode channel number on the MIDI controller?

Quote
ability to configure in config.txt the default delay value (B3) for each channel could be cool too.

-- Duly noted, it would require some expanding of the format. but easily doable.

Quote
another idea: a tap tempo (with a sensor for exemple) to define the default delay value (B3)

-- I have this in progress, together with detecting tempo from MIDI clock and Pocket Operator type sync. It almost made it into the recent update but was causing some instability so I've left it out.

Quote
It could be nice if we could define in config.txt  the default values of the parameters for certain channels (for example channels 23, 24, 32) (i.e. a way to save certain finds during exploration with display on terminal).

-- Editing config is cumbersome, indeed it would be way cooler to save a "snapshot" of current settings, as a new channel. There is enough channel numbers available. 8)

jluc

  • Newbie
  • *
  • Posts: 7
    • View Profile
Re: few suggestions (midi, delay & tap tempo...)
« Reply #2 on: January 30, 2020, 12:07:06 PM »
thanks for your answer

I realized that the python was not suitable (too bad because it seems easier to learn). I'm afraid my learning C ++ takes us a little far .... I don't really know which end to take the thing with (with python, I had a few courses, in french in addition !!!)

wonderfull tap tempo!  :D


Quote
Quote
the possibility of calling channels with midi could be cool

-- Interesting idea, and easy to do! But how to encode channel number on the MIDI controller?


I suggest using the program change and midi bank select programs (3 octets).

1/MIDI Controller  0 = Bank Select MSB (Most Significant Byte)
2/MIDI Controller 32 = Bank Select LSB (Least Significant Byte)
3/Program Change

most keyboard and controller have this capability
In that case this would transmit up to 444444


Quote
Quote
It could be nice if we could define in config.txt  the default values of the parameters for certain channels (for example channels 23, 24, 32) (i.e. a way to save certain finds during exploration with display on terminal).

-- Editing config is cumbersome, indeed it would be way cooler to save a "snapshot" of current settings, as a new channel. There is enough channel numbers available. 8)


True that being able to instantly save a current state would be ideal, but I thought that using config.txt would probably be easier to program

cheers

mario

  • Administrator
  • Full Member
  • *****
  • Posts: 143
    • View Profile
Re: few suggestions (midi, delay & tap tempo...)
« Reply #3 on: January 31, 2020, 09:03:40 AM »
re Pyton: looks like I replied to earlier version of your comment without noticing it has changed meanwhile ;D

Quote
I suggest using the program change and midi bank select programs (3 octets).

1/MIDI Controller  0 = Bank Select MSB (Most Significant Byte)
2/MIDI Controller 32 = Bank Select LSB (Least Significant Byte)
3/Program Change

most keyboard and controller have this capability
In that case this would transmit up to 444444

Interesting. Do you know if Arturia Keystep has this capability? I don't have any other MIDI controller right now. For simplicity and maximum compatibility I thought maybe just using white keys, while idle, could do the same task (for example c=1, d=2, e=3, f=4, g=SET, any other key for RST).

jluc

  • Newbie
  • *
  • Posts: 7
    • View Profile
Re: few suggestions (midi, delay & tap tempo...)
« Reply #4 on: January 31, 2020, 09:04:08 PM »
I don't know Arturia Keystep but there does not seem to be a button assignable to program change or bank select on this model ... ok with keylab but not keystep ....
maybe in this case your solution is the most universal.

maybe offer the 2 possibilities (to choose in the config file with a flag).
one more logical with regard to the midi standard and the other, more universal but a little tinkered, blocking certain keys on the keyboard.
« Last Edit: February 01, 2020, 12:56:34 PM by jluc »

mario

  • Administrator
  • Full Member
  • *****
  • Posts: 143
    • View Profile
Re: few suggestions (midi, delay & tap tempo...)
« Reply #5 on: February 03, 2020, 11:13:24 AM »
Actually it can be both at the same time, without blocking keys and no need for configuration (unless we really want to avoid possibility of triggering something by pressing random keys accidentally).

-- While idle we can listen to everything as MIDI notes are ignored there anyway.
-- While playing we can decode MIDI notes normally and still listen to "program change" command which will stop the currently running channel/patch and start a new one.

This would allow to dial directly to a certain patch (if the channel has more than one patches) or even define "patches" as a set of pre-configured settings (which tempo, which delay, filter etc..)

I'd still prefer to avoid necessity for editing the config file, it is not that hard but requires fiddling with SD card, or connecting via USB and installing some utilities for uploading/downloading it. So ideally whenever you arrive at a certain combination of settings, you can save it under a new "channel" code (which will then automatically become accessible also using both methods via MIDI).

jluc

  • Newbie
  • *
  • Posts: 7
    • View Profile
Re: few suggestions (midi, delay & tap tempo...)
« Reply #6 on: February 04, 2020, 05:51:11 PM »
if I understood correctly," midi program change" stop the current patch and the notes played are understood as channel / patch changes (sorry if i formulate differently, my understanding of english is not optimal).
in this case, there is no risk of triggering something by accidentally pressing random keys since before it is necessary to listen while waiting a "midi program change".  Isn't it ?

this could be an excellent solution for a playing with a midi pedal (program change) & for example an instrument like a midi guitar or other audio to midi converter
« Last Edit: February 04, 2020, 06:03:14 PM by jluc »

mario

  • Administrator
  • Full Member
  • *****
  • Posts: 143
    • View Profile
Re: few suggestions (midi, delay & tap tempo...)
« Reply #7 on: February 07, 2020, 03:20:41 PM »
The incoming MIDI data is parsed all the time so it is no problem to make it as flexible as we want. Once there is a "bank select" or "program change" message (or both, as in your example), it can stop what plays and start a new channel/patch, with either 2 or 3 byte messages (2 bytes to cover channels with shorter number, 3 bytes for up to 6-number channels). Using keys is probably not too useful once your controller can send arbitrary messages. Still handy with simpler controllers like Keystep, for easier starting of a new channel (while you'd need to press RST to stop the current one). No worries your English is great :)