midi

Description

MIDI stands for Musical Instrument Digital Interface, and it enables electronic musical instruments, computers, and other equipment to communicate, control, and synchronize with each other. Fluxus can receive MIDI control change and note messages.

Example

 (display (midi-info))(newline)

 (midi-init 1)

 (define (midi-test)
     (with-state
         (scale (vector (+ 1 (midi-ccn 0 1))
                        (+ 1 (midi-ccn 0 2))
                        (+ 1 (midi-ccn 0 3))))
         (draw-cube)))

 (every-frame (midi-test))

(midi-info)

Returns a list of two lists of (midi-port-number . midi-port-name-string) pairs

Returns information about the available MIDI input and output ports.

Example

 (midi-info)

(midiin-open port-number)

Returns void

Opens the specified MIDI input port.

Example

 (midiin-open 1)

(midiout-open port-number)

Returns void

Opens the specified MIDI output port.

Example

 (midiout-open 1)

(midiin-close)

Returns void

Closes the MIDI input port opened.

Example

 (midiin-close)

(midiout-close)

Returns void

Closes the MIDI outpu port opened.

Example

 (midiout-close)

(midi-cc channel-number controller-number)

Returns controller-value-number

Returns the controller value.

Example

 (midi-cc 0 1)

(midi-ccn channel-number controller-number)

Returns controller-value-number

Returns the controller value normalised to the (0, 1) interval.

Example

 (midi-ccn 0 1)

(midi-note)

Returns #(on-off-symbol channel note velocity) or #f

Returns the next event from the MIDI note event queue or #f if the queue is empty.

Example

 (midi-note)

(midi-program channel-number)

Returns program-value-number

Returns the program value.

Example

 (midi-program 0)

(midi-peek)

Returns msg-string

Returns the name, and event type, and parameter bytes of the last MIDI event as a string for debugging purposes.

Example

 (display (midi-peek))(newline)

(midi-send)

Returns void

Immediately send a single message out an open MIDI output port.

Example

 (midiout-open 0)
 (midi-send 144 64 90)
 (sleep 1)
 (midi-send 128 64 40)
 (midiout-close)

(midi-position)

Returns #(bar beat ticks)

Returns the current position given by MIDI clocks.

Example

 (midiin-open 0)
 (midi-position)
 (midiin-close)

(midi-clocks-per-beat)

Returns clocks-per-beat-value-number

Returns the number of MIDI clocks per beat, depending on the time signature.

Example

 (midi-clocks-per-beat)

(midi-beats-per-bar)

Returns beats-per-bar-value-number

Returns the number of beats per bar, depending on the time signature.

Example

 (midi-beats-per-bar)

(midi-set-signature)

Returns void

Sets the time signature Calling this function resets the song position.

Example

 ;set the signature to 3/4
 (midi-set-signature 3 4)