midi_on
Arguments: None.
Functionality: Allows the Handy Board to send MIDI data through its
serial interface.
midi_off
Arguments: None.
Functionality: Allows the Handy Board to interact with the serial
port on a computer by resetting the 68HC11's Serial Control Interface
(SCI) to 9600 baud and telling the Handy Board's pcode to receive
incoming serial data. After the Handy Board has transmitted MIDI
data, either this function must be invoked or the Handy Board must be
power cycled and Interactive C restarted to allow the Handy Board to
communicate with Interactive C again.
turbo_on
Arguments: None.
Functionality: Increases the rate at which sensors are polled by
disabling pulse width modulation of motors and infrared transmission
and reception.
turbo_off
Arguments: None.
Functionality: Reenables pulse width modulation of motors and
infrared transmission and reception.
note_on
Arguments: integer channel; integer pitch; integer velocity
Functionality: Sends a MIDI Note On message.
note_off
Arguments: integer channel; integer pitch
Functionality: Sends a MIDI Note Off message.
poly_key_pressure
Arguments: integer MIDI channel; integer pitch; integer
pressure_value
Functionality: Sends a MIDI Poly Channel Pressure message.
control_change
Arguments: integer MIDI channel; integer controller_number; integer
controller_value
Functionality: Sends a MIDI Control Change message.
program_change
Arguments: integer MIDI channel; integer program_number
Functionality: Sends a MIDI Program Change message.
channel_pressure
Arguments: integer MIDI channel; integer pressure_value
Functionality: Sends a MIDI Channel Pressure message.
pitch_bend
Arguments: integer MIDI channel; integer pitch bend value
Functionality: Sends a 7-bit MIDI Pitch Bend message.
pitch_bend2
Arguments: integer MIDI channel; integer pitch bend least significant
byte (LSB); integer pitch bend most significant byte (MSB)
Functionality: Sends a 14-bit MIDI Pitch Bend message.
modulation_depth
Arguments: integer MIDI channel; integer modulation depth value
Functionality: Changes the MIDI Modulation Depth.
main_volume
Arguments: integer MIDI channel; integer main volume value
Functionality: Sets the MIDI Main Volume.
pan
Arguments: integer MIDI channel; integer pan value
Functionality: Changes the MIDI pan value for a particular
channel.
expression
Arguments: integer MIDI channel; integer expression value
Functionality: Sends a MIDI Expression message.
sustain_on
Arguments: integer MIDI channel
Functionality: Turns on the MIDI sustain pedal controller on the
given channel.
sustain_off
Arguments: integer MIDI channel
Functionality: Turns off the MIDI sustain pedal controller on the
given channel.
all_sound_off
Arguments: integer MIDI channel
Functionality: Sends a MIDI All Sound Off channel voice message on
the given channel.
reset_all_controllers
Arguments: integer MIDI channel
Functionality: Sends a MIDI Reset All Controllers channel voice
message on the given channel.
local_control
Arguments: integer MIDI channel; integer on/off ag
Functionality: Sends a MIDI Local Control On channel voice message if
the on/off ag is 1. Sends a MIDI Local Control Off channel voice
message otherwise.
all_notes_off
Arguments: integer MIDI channel
Functionality: Sends a MIDI All Notes Off (panic) message.
omni_mode_off
Arguments: integer MIDI channel
Functionality: Sends a MIDI Omni Mode Off channel voice message on
the given channel.
omni_mode_on
Arguments: integer MIDI channel
Functionality: Sends a MIDI Omni Mode On channel voice message on the
given channel.
mono_mode_on
Arguments: integer MIDI channel; integer number of channels
Functionality: Sends a MIDI Mono Mode On channel voice message on the
given channel. The second argument, num_channels, indicates the
number of channels which are sent the mono channel voice
messages.
poly_mode_on
Arguments: integer MIDI channel
Functionality: Sends a MIDI Poly Mode On channel voice message on the
given channel.
midi2octpc
Arguments: integer MIDI pitch
Functionality: Converts MIDI note number into octave.pitch-class
(oct.pc) notation. For example, calling midi2octpc with an argument
of 60 would return 8.00.
octpc2midi
Arguments: float oct.pitch-class
Functionality: Converts octave.pitch-class (oct.pc) into MIDI note
number. For example, calling octpc2midi with an argument of 8.00
would return 60.
midi2oct
Arguments: integer MIDI pitch
Functionality: Returns an integer representing the octave of the
specified MIDI pitch.
midi2pc
Arguments: integer MIDI pitch
Functionality: Returns an integer representing the modulo-12 pitch
class of the specified MIDI pitch.
(by Randy Sargent, Newton Research Labs)
serial_putchar
Arguments: integer value
Functionality: Transmits the integer argument out the 68HC11 SCI
serial interface
disable_pcode_serial
Arguments: None.
Functionality: Tells the Handy Board's pcode not to receive incoming
serial data (necessary to receive characters using
serial_getchar).
reenable_pcode_serial
Arguments: None.
Functionality: Tells the Handy Board's pcode to receive incoming
serial data (necessary to allow the Handy Board to interact with
Interactive C again).
serial_getchar
Arguments: None.
Functionality: Returns the value of the received serial
character.
read_analog
Arguments: integer port_number (in the range 0 6 inclusive); integer
pointer value; integer offset; integer scale
Functionality: Sets the memory location pointed to by value to
contain the current digitized value of the sensor voltage in
port_number, multiplied by scale with a DC offset of offset.
return_analog
Arguments: integer port_number (in the range 0 6 inclusive); integer
offset; integer scale
Functionality: Returns the current digitized value of the sensor
voltage in port_number, multipled by scale with a DC offset of
offset.
read_averaged_analog
Arguments: integer port_number (in the range 0 6 inclusive); integer
pointer value; integer offset; integer scale
Functionality: Sets the memory location pointed to by value to
contain the arithmetic average of the most recently digitized values
of the sensor voltages in port_number, multiplied by scale with a DC
offset of offset. The number of readings to average is given by the
macro _NUM_VALUES_TO_AVERAGE.
return_averaged_analog
Arguments: integer port_number (in the range 0 6 inclusive); integer
offset; integer scale
Functionality: Returns the arithmetic average of the most recently
digitized value of the sensor voltage in port_number, multipled by
scale with a DC offset of offset. The number of readings to average
is given by the macro _NUM_VALUES_TO_AVERAGE.
display_analogs
Arguments: None.
Functionality: Prints to the LCD screen the values associated with
the analog input ports 0-6 and the onboard user knob in realtime.
display_digitals
Arguments: None.
Functionality: Prints to the LCD screen the values associated with
the digital input ports 7-15 in realtime.
test_motors
Arguments: None.
Functionality: Sequentially turns on and off motors both backwards
and forwards that are connected to the Handy Board's motor ports.
test_ir
Arguments: None.
Functionality: Continually displays received values from
Sony-compatible remote controls on the LCD. Before calling this
function, the le sony-ir.icb (available at the Handy Board home page)
must be loaded.
min
Arguments: integer x; integer y
Functionality: Returns an integer representing the value min(x,
y).
fmin
Arguments: float x; float y
Functionality: Returns a float representing the value min(x, y).
lmin
Arguments: long x; long y
Functionality: Returns a long representing the value min(x, y).
max
Arguments: integer x; integer y
Functionality: Returns an integer representing the value
max(x,y).
fmax
Arguments: float x; float y
Functionality: Returns a float representing the value max(x,y).
lmax
Arguments: long x; long y
Functionality: Returns a long representing the value max(x,y).
round
Arguments: float x
Functionality: Returns the value of x rounded off to the nearest
integer.
trunc
Arguments: float x
Functionality: Returns the value of x truncated at the floating
point.
abs
Arguments: integer x
Functionality: Returns an integer representing the value abs(x).
fabs
Arguments: float x
Functionality: Returns a float representing the value abs(x).
labs
Arguments: long x
Functionality: Returns a long representing the value abs(x).
print_array
Arguments: array of integers
Functionality: Prints each value of the array to the LCD screen
separated by 500 milliseconds (useful for debugging).
print_farray
Arguments: array of floats
Functionality: Prints each value of the array to the LCD screen
separated by 200 milliseconds (useful for debugging).
print_larray
Arguments: array of longs
Functionality: Prints each value of the array to the LCD screen
separated by 200 milliseconds (useful for debugging).
array_min
Arguments: array of integers
Functionality: Returns the minimum-valued member of the array.
array_fmin
Arguments: array of floats
Functionality: Returns the minimum-valued member of the array.
array_lmin
Arguments: array of longs
Functionality: Returns the minimum-valued member of the array.
array_max
Arguments: array of integers
Functionality: Returns the maximum-valued member of the array.
array_fmax
Arguments: array of floats
Functionality: Returns the maximum-valued member of the array.
array_lmax
Arguments: array of longs
Functionality: Returns the maximum-valued member of the array.
array_avg
Arguments: array of integers
Functionality: Returns a float representing the arithmetic mean of the
elements in the array.
array_favg
Arguments: array of floats
Functionality: Returns a float representing the arithmetic mean of the
elements in the array.
array_lavg
Arguments: array of longs
Functionality: Returns a float representing the arithmetic mean of the
elements in the array.
sum
Arguments: array of integers
Functionality: Returns an integer representing the sum of the
array.
fsum
Arguments: array of floats
Functionality: Returns a float representing the sum of the array.
lsum
Arguments: array of longs
Functionality: Returns a long representing the sum of the array.
in
Arguments: array of integers; integer element
Functionality: Returns 1 if the specified element is in the array, 0
otherwise.
fin
Arguments: array of floats; float element
Functionality: Returns 1 if the specified element is in the array, 0
otherwise.
lin
Arguments: array of longs; long element
Functionality: Returns 1 if the specified element is in the array, 0
otherwise.
approx_in
Arguments: array of integers; integer element; float tolerance
Functionality: Returns 1 if the array contains the specified element
to within the specified tolerance value, 0 otherwise.
approx_fin
Arguments: array of floats; float element; float tolerance
Functionality: Returns 1 if the array contains the specified element
to within the specified tolerance value, 0 otherwise.
approx_lin
Arguments: array of longs; long element; float tolerance
Functionality: Returns 1 if the array contains the specified element
to within the specified tolerance value, 0 otherwise.
choose
Arguments: array of integers
Functionality: Returns a randomly-chosen element from the list.
fchoose
Arguments: array of floats
Functionality: Returns a randomly-chosen element from the list.
lchoose
Arguments: array of longs
Functionality: Returns a randomly-chosen element from the list.
at
Arguments: array of integers; integer location
Functionality: Returns the integer value indexed by the specified
location (with wrapped indexing). For example, given an array of four
integers (indexed in C by the locations 0 3, at(5) would return the
value indexed by 1 (5 mod 4 = 1).
fat
Arguments: array of floats; integer location
Functionality: Returns the float value indexed by the specified location
(with wrapped indexing). For example, given an array of four floats
(indexed in C by the locations 0 3, at(5) would return the value
indexed by 1 (5 mod 4 = 1).
lat
Arguments: array of longs; integer location
Functionality: Returns the long value indexed by the specified
location (with wrapped indexing). For example, given an array of four
floats (indexed in C by the locations 0 3, the function call at(5)
would return the value indexed by 1 (5 mod 4 = 1).
midi_test
Arguments: None.
Functionality: Calls midi_on() to enable MIDI on the Handy Board and
then sequentially plays middle C (MIDI note 60) with maximum velocity
on each MIDI channel (1 16).
ramp
Arguments: integer MIDI channel; integer base pitch; integer
velocity; float time delay in seconds; integer multiplier; integer
number of notes
Functionality: Emits a linear ramp of note on messages...
arpeggiate
Arguments: integer MIDI channel; integer base pitch; integer
velocity; float time delay in seconds; integer array of offsets
Functionality: Arpeggiates a chord based on the given
parameters...
flutter
Arguments: integer MIDI channel; integer base pitch; integer
velocity; integer pitch variance; float time delay in seconds; integer
number of notes
Functionality: Emits note on messages within a specified variance
about the base pitch, delayed by a given time delay.
harmonize
Arguments: integer MIDI channel; integer base pitch; integer
velocity; integer array of offsets
Functionality: Plays a chord by emitting note on messages built upon
the base pitch whose members are offset according to the given
array.
random_midi
Arguments: float duration in seconds
Functionality: Plays a random MIDI note and then turns it off after
the specified duration in seconds. This function chooses a random MIDI
channel, pitch, velocity, and program number.
midi_hpf
Arguments: integer pitch; integer cutoff
Functionality: MIDI high pass filter. If the given pitch is greater
than or equal to the specified cutoff,
midi_hpf returns that value. Otherwise, it returns a zero.
This would be useful in an application where a sensor occasionally
returned a value outside a useful range (for instance, a MIDI note
number below 20). midi_hpf would ensure that only notes above this
value are played.
midi_lpf
Arguments: integer pitch; integer cutoff
Functionality: MIDI low pass lter. If the given pitch is less than or
equal to the specified cutoff, midi_lpf returns that value. Otherwise,
it returns a zero.
midi_bpf
Arguments: integer pitch; integer cutoff1; integer cutoff2
Functionality: MIDI band pass lter. If the given pitch is within the
specified cutoffs (i.e., cutoff1 <= pitch <= cutoff2), midi_bpf
returns that value. Otherwise, it returns a zero.
midi_notch
Arguments: integer pitch; integer cutoff1; integer cutoff2
Functionality: MIDI notch lter. If the given pitch is outside the
specified cutoffs (i.e., cutoff1 <= pitch <= cutoff2),
midi_notch returns that value. Otherwise, it returns a zero.
stutter
Arguments: integer MIDI channel; integer base pitch; integer
velocity; integer number of notes; integer stutter factor
Functionality: Emits note on messages with the given channel, pitch,
and velocity information, each separated by a randomized time delay
calculated according to the stutter factor.
noodle
Arguments: None.
Functionality: Emits note on/off message pairs on random MIDI
channels with random pitch and velocity values; the note on and off
messages are each separated by a randomized time delay from 0.15 to
0.65 seconds.