KeyboardMaestroMidiCommandInterface: Difference between revisions
mNo edit summary |
m (format) |
||
Line 19: | Line 19: | ||
On/Off, MidiNumber, Volume, Time. | On/Off, MidiNumber, Volume, Time. | ||
........................................................... | ........................................................... | ||
Line 45: | Line 44: | ||
newString = accumulatedString | newString = accumulatedString | ||
accumulatedString = "" | accumulatedString = "" | ||
If delta < lastDifference { | |||
<take newString as command> | |||
else | |||
<use it for typing> | |||
} | } | ||
Line 54: | Line 53: | ||
work in progress | work in progress | ||
/// |
Revision as of 20:49, 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?
f:
"""" 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.
Sketch:
lastDifference = the time difference between On and Off of the last note timeThreshold = time threshold accumulatedString = string of accumulated notes newString = accumulatedString accumulatedString = "" If delta < lastDifference { <take newString as command> else <use it for typing> }
"""
work in progress ///