KeyboardMaestroMidiCommandInterface: Difference between revisions

From fridemar.ai
Jump to navigation Jump to search
(If delta < lastDifference { <take newString as command> else <use it for typing> })
mNo edit summary
Line 7: Line 7:
q: And the text is?
q: And the text is?


f:
""""
KeyboardMaestroMidiCommandInterface.
KeyboardMaestroMidiCommandInterface.


Line 48: Line 51:
  }
  }


"""
   
   
work in progress
work in progress
////
////

Revision as of 20:48, 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 ////