lowest(phrase)
Returns the lowest pitch in the specified phrase.
lowestnt(phrase)
Returns the lowest-pitched note in the specified phrase.
makenote(pitch [,duration [,volume [,chan]]] )
A simple utility for generating a single-note phrase.
The pitch is the only required argument; additional
arguments specify the duration, velocity, and channel.
makerootevery(melody,intrvl)
Figure out a root note (using findroot()) every intrvl beats,
and return it.
maxvolume(phrase)
Returns the largest volume in the specified phrase.
midiloop()
This is intended to be the one-and-only task which reads messages
from the Midiinfifo, a special fifo that is opened whenever KeyKit
is rebooted, and to which KeyKit sends messages containing
all MIDI input. Any task wanting to read MIDI input should add
an entry to the Midiin array. The index of the Midiin array
is normally the task id, and the value of the array element
is the fifo id.
millisleep(milli)
Sleep (i.e. pause the task which calls this function)
for the specified number of milliseconds.
minduration(phrase)
Returns the smallest duration in the specified phrase.
minvolume(phrase)
Returns the lowest volume in the specified phrase.
mono(phrase,type)
Returns a monophonic version of the specified phrase.
If type==0, high notes are given priority (e.g. if two notes are
playing simultaneously, the higher note will be chosen).
If type==1, low notes are given priority. If type==2,
the priority is randomized.
mouseloop()
This task is intended to be the one-and-only task that reads
directly from the Mousefifo, a special fifo that is opened
whenever KeyKit is rebooted, and to which KeyKit sends messages
about changes in the mouse state. mouseloop() normally figures
out which window is underneath the mouse, and sends the message
to the Mousein fifo for that window. If someone wants to grab the
mouse, they should set Mousegrabwind, and mouseloop() will instead
send the mouse messages to that window. This procedure should be done
with the grabmouse() and ungrabmouse() functions.
nextquant(number,quantize)
This function quantizes the specified number using the specified
quantize value, and returns the result. The result is guaranteed to
be greater than the original number; if quantization would produce
a smaller number, it is increased by the quantize value. This is
typically used when you want to quantize a time value, and want to
guarantee that the result will refer to some time in the future,
not in the past.
See:
numquant
nexttime(ph,st)
Return the time of the next note AFTER time 'st', in phrase 'ph'
If there are no notes after it, returns -1;
nonnotes(ph)
Return all non-notes (i.e. controller, sysex, etc) of ph.
normboot()
This is intended to be the default function that gets called
when KeyKit initially boots or reboots. KeyKit calls
Rebootfunc() when it reboots, so in order for this function
to be used, the statement "Rebootfunc=normboot" should be
included in keyrc(). Any tasks that must always be
active (for example, the loops that monitor mouse and
console input) should be started here. To register a
function that will be automatically restarted upon a reboot,
you should add it to the Rebootfuncs array.
See:
addbootfunc
normexit()
normintr()
This function is intended to be the default value of Intrfunc,
which KeyKit calls when an interrupt is received, typically
when the user presses the interrupt character on the console.
This function forces a reboot. If graphics mode is enabled,
an attempt is made to save the current tool configuration
in the file "keydump.lst", which will then be restored after
the reboot. In this way, a fairly clean restart is performed.
normredraw()
This function is intended to be the default value of Redrawfunc,
which KeyKit calls whenever the screen must be redrawn.
It redraws the root window (i.e. erasing the screen), and
then sends a redraw message to all children windows (i.e. all
the active tools).
normresize()
This function is intended to be the default value of Resizefunc,
which KeyKit calls whenever the screen is resized. Normally
this function does nothing. By setting the variable Autoresize
to 1 (e.g. in liblocal/prerc.k), you can cause this function to
automatically resize all the active tools to fit within the new
screen size.
nrpn(ch,mm,ll)
Return an NRPN message constructed from ch (channel, 1-based),
mm (most-significant byte) and ll (least-significant byte).