34midi Module
34.1Overview
The midi
module provides measures to read/write MIDI files. To utilize it, import the midi
module using import
function.
34.2Module Function
34.3midi.event Class
34.4midi.track Class
midi.track#seek(offset:number, origin?:symbol):reduce
Moves the insertion point in the track at which the next event is inserted. If
origin
is omitted or set to `set
, the insertion point will be set to absolute offset from the beginning. If origin
is set to `cur
, the insertion point will be moved by offset from the current position.
midi.track#tell()
Returns the current insertion point in the track.
midi.track#erase(n?:number):reduce
Deletes an event at the current insertion point in the track. The argument
n
specifies the number of events to be deleted. If n
is omitted, one event will be deleted.
midi.track#mml(str:string, max_velocity?:number):map:reduce
Parses MML in the string str
and inserts resulted MIDI events at the current insertion point in the track.
The argument max_velocity
specifies the maximum number of velocity in the MML. If omitted, it will be set to 127.
midi.track#note_off(channel:number, note:number, velocity:number, deltaTime?:number):map:reduce
midi.track#note_on(channel:number, note:number, velocity:number, deltaTime?:number):map:reduce
midi.track#poly_pressure(channel:number, note:number, value:number, deltaTime?:number):map:reduce
midi.track#control_change(channel:number, controller, value:number, deltaTime?:number):map:reduce
midi.track#program_change(channel:number, program, deltaTime?:number):map:reduce
midi.track#channel_pressure(channel:number, pressure:number, deltaTime?:number):map:reduce
midi.track#pitch_bend(channel:number, value:number, deltaTime?:number):map:reduce
midi.track#sequence_number(number:number, deltaTime?:number):map:reduce
midi.track#text_event(text:string, deltaTime?:number):map:reduce
midi.track#copyright_notice(text:string, deltaTime?:number):map:reduce
midi.track#sequence_or_track_name(text:string, deltaTime?:number):map:reduce
midi.track#instrument_name(text:string, deltaTime?:number):map:reduce
midi.track#lyric_text(text:string, deltaTime?:number):map:reduce
midi.track#marker_text(text:string, deltaTime?:number):map:reduce
midi.track#cue_point(text:string, deltaTime?:number):map:reduce
midi.track#midi_channel_prefix_assignment(channel:number, deltaTime?:number):map:reduce
midi.track#end_of_track(deltaTime?:number):map:reduce
midi.track#tempo_setting(mpqn:number, deltaTime?:number):map:reduce
midi.track#smpte_offset(hour:number, minute:number, second:number, frame:number, subFrame:number, deltaTime?:number):map:reduce
midi.track#time_signature(numerator:number, denominator:number, metronome:number, cnt32nd:number, deltaTime?:number):map:reduce
midi.track#key_signature(key:number, scale:number, deltaTime?:number):map:reduce
midi.track#sequencer_specific_event(binary:binary, deltaTime?:number):map:reduce
34.5midi.sequence Class
midi.sequence(stream?:stream) {block?}
It creates an instance that contains SMF information.
midi.sequence#read(stream:stream:r):map:reduce
midi.sequence#write(stream:stream:w):map:reduce
midi.sequence#play(port:midi.port, speed?:number, repeat:number:nil => 1):[background,player]
midi.sequence#track(index:number):map {block?}
midi.sequence#mml(str:string, max_velocity?:number):reduce
midi.sequence#readmml(stream:stream, max_velocity?:number):reduce
34.6midi.port Class
midi.port#send(msg+:number):map:reduce
midi.port#play(sequence:midi.sequence, speed?:number, repeat:number:nil => 1):map:[background,player]
midi.port#mml(str:string, max_velocity?:number):[background,player]
midi.port#readmml(stream:stream, max_velocity?:number):[background,player]
midi.port#note_off(channel:number, note:number, velocity:number):map:reduce
midi.port#note_on(channel:number, note:number, velocity:number):map:reduce
midi.port#poly_pressure(channel:number, note:number, value:number):map:reduce
midi.port#control_change(channel:number, controller:number, value:number):map:reduce
midi.port#program_change(channel:number, program:number):map:reduce
midi.port#channel_pressure(channel:number, pressure:number):map:reduce
midi.port#pitch_bend(channel:number, value:number):map:reduce
34.7midi.controller Class
34.8midi.program Class
34.9midi.soundfont Class
midi.soundfont(stream:stream) {block?}
It creates an instance to access data in SoundFont file.
midi.soundfont#synthesizer(preset:number, bank:number, key:number, velocity:number):map {block?}
midi.soundfont#print():void