KeyboardMaestroMidiCommandInterface: Difference between revisions
(wip) |
(If delta < lastDifference { <take newString as command> else <use it for typing> }) |
||
Line 35: | Line 35: | ||
If the volume is about a threshold, then make the letter an uppercase, else lowercase. | 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 | lastDifference = the time difference between On and Off of the last note | ||
timeThreshold = time threshold | timeThreshold = time threshold | ||
accumulatedString = string of accumulated notes | accumulatedString = string of accumulated notes | ||
newString = accumulatedString | |||
accumulatedString = "" | |||
If delta < lastDifference { | If delta < lastDifference { | ||
<take | <take newString as command> | ||
else | |||
<use it for typing> | |||
} | } | ||
Revision as of 20:47, 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.
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
////