KeyboardMaestroMidiCommandInterface: Difference between revisions
(work in progress) |
(wip) |
||
Line 33: | Line 33: | ||
g3#=t, a3=u, a3#=v, b3=w, c3=x, c3#=y, d3=z | g3#=t, a3=u, a3#=v, b3=w, c3=x, c3#=y, d3=z | ||
If the volume is about a threshold, then make the letter uppercase, else lowercase. | If the volume is about a threshold, then make the letter an uppercase, else lowercase. | ||
Let be | |||
lastDifference = the time difference between On and Off of the last note | |||
timeThreshold = time threshold | |||
accumulatedString = string of accumulated notes | |||
Save accumulatedString in a variable newString. | |||
If delta < lastDifference { | |||
<take accumulated String as command> | |||
} | |||
work in progress | work in progress | ||
//// | //// |
Revision as of 20:43, 11 March 2018
f: Watching the video KeyboardMaestroMidiTrigger
https://www.youtube.com/watch?v=ug-pE8La8OQ
f prepared the following comment as an idea that would make KbMaestro more valuable for musicians.
q: And the text is?
KeyboardMaestroMidiCommandInterface.
Hello, dear Adam Courtemanche,
thank you for your contribution.
What about having an extended TimeKeeper, completely written in KbMaestro, that takes as input source a MidiKeyboard and produces a sequence of OnOffNoteEvents, shown in the ExtendedTimeKeeperWindow:
On/Off, MidiNumber, Volume, Time.
...........................................................
Such a KbMaestroMidiMonitor would allow making KbMaestro into a valuable CmdInterface increasing the user value KbMaestro.
At moment we can use something similar with KbHotstrings. Unfortunately, those HotStrings produce a StringOutput, restricting the hotkeys to text input (otherwise those emitted chars could produce side effects in other
contexts than TextInputFields).
Using a MidiKeyboard, you can use it e.g. as a mnemonic InputCommandInterface.
E.g. Map the Alphabet to the following KeyboardKeys
c2=c, c2#=i, d2=d, d2#=s, e2=e, f2=f, f2#=j, g2=g, g2#=k, a2=a, a2#=b2 (in German for h flat), h2=h, c3=l, c3#=m, d3=n, d3#=o, e3=p, f3=q, f#=r, g3=s ( the map doesn't need to be injective) ,
g3#=t, a3=u, a3#=v, b3=w, c3=x, c3#=y, d3=z
If the volume is about a threshold, then make the letter an uppercase, else lowercase.
Let be lastDifference = the time difference between On and Off of the last note timeThreshold = time threshold
accumulatedString = string of accumulated notes
Save accumulatedString in a variable newString.
If delta < lastDifference { <take accumulated String as command> }
work in progress
////