import 'webmidi'; declare namespace JZZ { namespace SMPTE { interface Constructor { /** Create new SMPTE object * * https://jazz-soft.net/doc/JZZ/smpte.html#constructor */ new (...args: any[]): SMPTE; /** Create new SMPTE object * * https://jazz-soft.net/doc/JZZ/smpte.html#constructor */ (...args: any[]): SMPTE; } } interface SMPTE { /** Convert SMPTE to human-readable string * * https://jazz-soft.net/doc/JZZ/smpte.html#tostring */ toString(): string; /** SMPTE event is Full Frame * * https://jazz-soft.net/doc/JZZ/smpte.html#isFullFrame */ isFullFrame(): boolean; /** Get SMPTE type * * https://jazz-soft.net/doc/JZZ/smpte.html#getType */ getType(): number; /** Get SMPTE hour * * https://jazz-soft.net/doc/JZZ/smpte.html#getHour */ getHour(): number; /** Get SMPTE minute * * https://jazz-soft.net/doc/JZZ/smpte.html#getMinute */ getMinute(): number; /** Get SMPTE second * * https://jazz-soft.net/doc/JZZ/smpte.html#getSecond */ getSecond(): number; /** Get SMPTE frame * * https://jazz-soft.net/doc/JZZ/smpte.html#getFrame */ getFrame(): number; /** Get SMPTE quarter frame * * https://jazz-soft.net/doc/JZZ/smpte.html#getQuarter */ getQuarter(): number; /** Set SMPTE type * * https://jazz-soft.net/doc/JZZ/smpte.html#setType */ setType(n: number): SMPTE; /** Set SMPTE hour * * https://jazz-soft.net/doc/JZZ/smpte.html#setHour */ setHour(n: number): SMPTE; /** Set SMPTE minute * * https://jazz-soft.net/doc/JZZ/smpte.html#setMinute */ setMinute(n: number): SMPTE; /** Set SMPTE second * * https://jazz-soft.net/doc/JZZ/smpte.html#setSecond */ setSecond(n: number): SMPTE; /** Set SMPTE frame * * https://jazz-soft.net/doc/JZZ/smpte.html#setFrame */ setFrame(n: number): SMPTE; /** Set SMPTE quarter frame * * https://jazz-soft.net/doc/JZZ/smpte.html#setQuarter */ setQuarter(n: number): SMPTE; /** Increase SMPTE time by one frame * * https://jazz-soft.net/doc/JZZ/smpte.html#incrFrame */ incrFrame(): SMPTE; /** Decrease SMPTE time by one frame * * https://jazz-soft.net/doc/JZZ/smpte.html#decrFrame */ decrFrame(): SMPTE; /** Increase SMPTE time by quarter frame * * https://jazz-soft.net/doc/JZZ/smpte.html#incrQF */ incrQF(): SMPTE; /** Decrease SMPTE time by quarter frame * * https://jazz-soft.net/doc/JZZ/smpte.html#decrQF */ decrQF(): SMPTE; /** Read MIDI Time Code message * * https://jazz-soft.net/doc/JZZ/smpte.html#read */ read(...args: any[]): boolean; /** Reset SMPTE object * * https://jazz-soft.net/doc/JZZ/smpte.html#reset */ reset(...args: any[]): SMPTE; } namespace MIDI { interface Constructor { /** Create new MIDI message * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#constructor */ new (...args: any[]): MIDI; /** Create new MIDI message * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#constructor */ (...args: any[]): MIDI; // Channel-dependent /** Note On: `[9x nn vv]`; `x`: channel, `nn`: note, `vv`: velocity * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#noteOn */ noteOn(x: number, nn: number | string, vv?: number): MIDI; /** Note Off: `[8x nn vv]`; `x`: channel, `nn`: note, `vv`: velocity * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#noteOff */ noteOff(x: number, nn: number | string, vv?: number): MIDI; /** Polyphonic aftetouch: `[Ax nn vv]`; `x`: channel, `nn`: note, `vv`: value * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#aftertouch */ aftertouch(x: number, nn: number | string, vv: number): MIDI; /** MIDI control: `[Bx nn vv]`; `x`: channel, `nn`: function, `vv`: value * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#control */ control(x: number, nn: number, vv: number): MIDI; /** Program change: `[Cx nn]`; `x`: channel, `nn`: program * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#program */ program(x: number, nn: number | string): MIDI; /** Pressure: `[Dx nn]`; `x`: channel, `nn`: pressure * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#pressure */ pressure(x: number, nn: number): MIDI; /** Pitch bend: `[Ex lsb msb]`; `x`: channel, `msb`/`lsb`: most/least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#pitchBend */ pitchBend(x: number, nn: number): MIDI; /** Bank select MSB: `[Bx 00 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#bankMSB */ bankMSB(x: number, nn: number): MIDI; /** Bank select LSB: `[Bx 20 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#bankLSB */ bankLSB(x: number, nn: number): MIDI; /** Modulation MSB: `[Bx 01 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#modMSB */ modMSB(x: number, nn: number): MIDI; /** Modulation LSB: `[Bx 21 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#modLSB */ modLSB(x: number, nn: number): MIDI; /** Breath controller MSB: `[Bx 02 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#breathMSB */ breathMSB(x: number, nn: number): MIDI; /** Breath controller LSB: `[Bx 22 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#breathLSB */ breathLSB(x: number, nn: number): MIDI; /** Foot controller MSB: `[Bx 04 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#footMSB */ footMSB(x: number, nn: number): MIDI; /** Foot controller LSB: `[Bx 24 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#footLSB */ footLSB(x: number, nn: number): MIDI; /** Portamento MSB: `[Bx 05 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamentoMSB */ portamentoMSB(x: number, nn: number): MIDI; /** Portamento LSB: `[Bx 25 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamentoLSB */ portamentoLSB(x: number, nn: number): MIDI; /** Volume MSB: `[Bx 07 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#volumeMSB */ volumeMSB(x: number, nn: number): MIDI; /** Volume LSB: `[Bx 27 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#volumeLSB */ volumeLSB(x: number, nn: number): MIDI; /** Balance MSB: `[Bx 08 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#balanceMSB */ balanceMSB(x: number, nn: number): MIDI; /** Balance LSB: `[Bx 28 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#balanceLSB */ balanceLSB(x: number, nn: number): MIDI; /** Pan MSB: `[Bx 0A nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#panMSB */ panMSB(x: number, nn: number): MIDI; /** Pan LSB: `[Bx 2A nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#panLSB */ panLSB(x: number, nn: number): MIDI; /** Expression MSB: `[Bx 0B nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#expressionMSB */ expressionMSB(x: number, nn: number): MIDI; /** Expression LSB: `[Bx 2B nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#expressionLSB */ expressionLSB(x: number, nn: number): MIDI; /** Damper on/off: `[Bx 40 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#damper */ damper(x: number, bb: boolean): MIDI; /** Portamento on/off: `[Bx 41 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamento */ portamento(x: number, bb: boolean): MIDI; /** Sostenuto on/off: `[Bx 42 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sostenuto */ sostenuto(x: number, bb: boolean): MIDI; /** Soft on/off: `[Bx 43 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#soft */ soft(x: number, bb: boolean): MIDI; /** All sound off: `[Bx 78 00]`; `x`: channel * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#allSoundOff */ allSoundOff(x: number): MIDI; /** All notes off: `[Bx 7B 00]`; `x`: channel * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#allNotesOff */ allNotesOff(x: number): MIDI; // Channel-independent /** Song position: `[F2 lsb msb]`; `msb`/`lsb`: most/least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#songPosition */ songPosition(nn: number): MIDI; /** Song select: `[F3 nn]`; `nn`: song number * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#songSelect */ songSelect(nn: number): MIDI; /** Tune: `[F6]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#tune */ tune(): MIDI; /** Clock: `[F8]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#clock */ clock(): MIDI; /** Start: `[FA]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#start */ start(): MIDI; /** Continue: `[FB]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#continue */ continue(): MIDI; /** Stop: `[FC]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#stop */ stop(): MIDI; /** Active sense signal: `[FE]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#active */ active(): MIDI; /** Reset: `[FF]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#reset */ reset(): MIDI; /** ID Request SysEx: `[F0 7E 7F 06 01 F7]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sxIdRequest */ sxIdRequest(): MIDI; /** MIDI time code (SMPTE quarter frame): `[F1 xx]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#mtc */ mtc(t: SMPTE): MIDI; /** SMPTE Full Frame SysEx: `[F0 7F 7F 01 01 xx xx xx xx F7]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sxFullFrame */ sxFullFrame(t: SMPTE): MIDI; // SMF /** Standard MIDI File meta event: [FFxx len data] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smf */ smf(...args: any): MIDI; /** SMF Sequence Number: [FF00 02 ssss] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSeqNumber */ smfSeqNumber(ssss: number): MIDI; /** SMF Text: [FF01 len text]; used in Karaoke files * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfText */ smfText(str: string): MIDI; /** SMF Copyright: [FF02 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfCopyright */ smfCopyright(str: string): MIDI; /** SMF Sequence Name: [FF03 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSeqName */ smfSeqName(str: string): MIDI; /** SMF Instrument Name: [FF04 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfInstrName */ smfInstrName(str: string): MIDI; /** SMF Lyric: [FF05 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfLyric */ smfLyric(str: string): MIDI; /** SMF Marker: [FF06 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfMarker */ smfMarker(str: string): MIDI; /** SMF Cue Point: [FF07 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfCuePoint */ smfCuePoint(str: string): MIDI; /** SMF Program Name: [FF08 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfProgName */ smfProgName(str: string): MIDI; /** SMF Device Name: [FF09 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfDevName */ smfDevName(str: string): MIDI; /** SMF Channel Prefix: [FF20 01 cc] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfChannelPrefix */ smfChannelPrefix(cc: number): MIDI; /** SMF MIDI Port [FF21 01 pp] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfMidiPort */ smfMidiPort(pp: number): MIDI; /** SMF End of Track: [FF2F 00] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfEndOfTrack */ smfEndOfTrack(): MIDI; /** SMF Tempo: [FF51 03 tttttt] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfTempo */ smfTempo(tttttt: number): MIDI; /** SMF Tempo, BMP: [FF51 03 tttttt] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfBPM */ smfBPM(bpm: number): MIDI; /** SMF SMPTE offset: [FF54 05 hh mm ss fr ff] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSMPTE */ smfSMPTE(smpte: SMPTE | number[]): MIDI; /** SMF Time Signature: [FF58 04 nn dd cc bb] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfTimeSignature */ smfTimeSignature(nn: number, dd: number, cc?: number, bb?: number): MIDI; /** SMF Key Signature: [FF59 02 sf mi] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfKeySignature */ smfKeySignature(key: string): MIDI; /** SMF Sequencer-specific Data: [FF7F len data] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSequencer */ smfSequencer(data: string): MIDI; // Other /** Note MIDI value by name * * https://jazz-soft.net/doc/JZZ/midigm.html#noteValue */ noteValue(note: number | string): number; /** Program MIDI value by name * * https://jazz-soft.net/doc/JZZ/midigm.html#programValue */ programValue(prog: number | string): number; /** Note frequency in HZ; `a5`: frequency of the `A5`, default: `440` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#freq */ freq(note: number | string, a5?: number): number; } } interface MIDI extends Array<number> { /** Convert MIDI to human-readable string * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#tostring */ toString(): string; /** The message is Note On * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isNoteOn */ isNoteOn(): boolean; /** The message is Note Off * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isNoteOff */ isNoteOff(): boolean; /** The message is a SysEx * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isSysEx */ isSysEx(): boolean; /** The message is a full SysEx * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isFullSysEx */ isFullSysEx(): boolean; /** The message is a Standard MIDI File meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isSMF */ isSMF(): boolean; /** The message is a Tempo meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isTempo */ isTempo(): boolean; /** The message is a Time Signature meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isTimeSignature */ isTimeSignature(): boolean; /** The message is a Key Signature meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isKeySignature */ isKeySignature(): boolean; /** The message is an End of Track meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#isEOT */ isEOT(): boolean; /** Return the channel number where applicable * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getChannel */ getChannel(): number; /** Set the channel number where applicable * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#setChannel */ setChannel(cc: number): MIDI; /** Return the note value where applicable * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getNote */ getNote(): number; /** Set the note where applicable * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#setNote */ setNote(note: number | string): MIDI; /** Return the velocity where applicable * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getVelocity */ getVelocity(): number; /** Set the velocity where applicable * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#setVelocity */ setVelocity(vv: number): MIDI; /** Return the SysEx channel number where applicable * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getSysExChannel */ getSysExChannel(): number; /** Set the SysEx channel number where applicable * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#setSysExChannel */ setSysExChannel(cc: number): MIDI; /** Get data from SMF meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getData */ getData(): string; /** Set data on SMF meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#setData */ setData(data: string): MIDI; /** Get UTF8 text from SMF meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getText */ getText(): string; /** Set UTF8 text on SMF meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#setText */ setText(str: string): MIDI; /** Get tempo in ms per quarter note from SMF Tempo meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getTempo */ getTempo(): number; /** Get tempo as BPM from SMF Tempo meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getBPM */ getBPM(): number; /** Get time signature from SMF Time Signature meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getTimeSignature */ getTimeSignature(): number[]; /** Get key signature from SMF Key Signature meta event * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#getKeySignature */ getKeySignature(): any[]; } namespace Stub { interface Async extends Stub, PromiseLike<Stub> {} } interface Stub { /** Print if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(text: string): Stub.Async; /** Execute if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(func: (self?: Stub) => void): Stub.Async; /** Print if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(text: string): Stub.Async; /** Execute if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(func: (self?: Stub) => void): Stub.Async; /** Wait `ms` milliseconds * * https://jazz-soft.net/doc/JZZ/common.html#wait */ wait(ms: number): Stub.Async; } namespace Engine { interface Async extends Engine, PromiseLike<Engine> {} } interface Engine { // Stub /** Print if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(text: string): Engine.Async; /** Execute if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(func: (self?: Stub) => void): Engine.Async; /** Print if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(text: string): Engine.Async; /** Execute if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(func: (self?: Stub) => void): Engine.Async; /** Wait `ms` milliseconds * * https://jazz-soft.net/doc/JZZ/common.html#wait */ wait(ms: number): Engine.Async; // Engine /** Return an `info` object * * https://jazz-soft.net/doc/JZZ/jzz.html#info */ info(): any; /** Refresh the list of available ports * * https://jazz-soft.net/doc/JZZ/jzz.html#refresh */ refresh(): Engine.Async; /** Open MIDI-In port * * https://jazz-soft.net/doc/JZZ/midiin.html#open */ openMidiIn(arg?: any): Port.Async; /** Open MIDI-Out port * * https://jazz-soft.net/doc/JZZ/midiout.html#open */ openMidiOut(arg?: any): Port.Async; /** Watch MIDI connection changes * * https://jazz-soft.net/doc/JZZ/jzz.html#onChange */ onChange(arg?: any): Watcher.Async; /** Close MIDI engine * * https://jazz-soft.net/doc/JZZ/jzz.html#close */ close(): Stub.Async; } namespace Port { interface Async extends Port, PromiseLike<Port> {} } interface Port { // Stub /** Print if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(text: string): Port.Async; /** Execute if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(func: (self?: Stub) => void): Port.Async; /** Print if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(text: string): Port.Async; /** Execute if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(func: (self?: Stub) => void): Port.Async; /** Wait `ms` milliseconds * * https://jazz-soft.net/doc/JZZ/common.html#wait */ wait(ms: number): Port.Async; // Port /** Return an `info` object * * https://jazz-soft.net/doc/JZZ/midiin.html#info */ info(): any; /** Return the port name * * https://jazz-soft.net/doc/JZZ/midiin.html#name */ name(): string; /** Connect MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#connect */ connect(arg: any): Port.Async; /** Disonnect MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#disconnect */ disconnect(arg?: any): Port.Async; /** Send MIDI message * * https://jazz-soft.net/doc/JZZ/midiout.html#send */ send(...args: any[]): Port.Async; /** Emit MIDI message * * https://jazz-soft.net/doc/JZZ/midithru.html#emit */ emit(...args: any[]): Port.Async; /** Emit MIDI message * * https://jazz-soft.net/doc/JZZ/midithru.html#emit */ _emit(...args: any[]): void; /** Close MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#close */ close(): Stub.Async; /** MIDI channel * * https://jazz-soft.net/doc/JZZ/midiout.html#ch */ ch(x: number): Channel.Async; /** MIDI channel * * https://jazz-soft.net/doc/JZZ/midiout.html#ch */ ch(): Port.Async; /** MPE channel * * https://jazz-soft.net/doc/JZZ/midiout.html#mpe */ mpe(m: number, n: number): MPE.Async; /** MPE channel * * https://jazz-soft.net/doc/JZZ/midiout.html#mpe */ mpe(): Port.Async; /** Play note * * https://jazz-soft.net/doc/JZZ/midiout.html#note */ note(x: number, nn: number | string, vv?: number, tt?: number): Port.Async; // Channel-dependent /** Note On: `[9x nn vv]`; `x`: channel, `nn`: note, `vv`: velocity * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#noteOn */ noteOn(x: number, nn: number | string, vv?: number): Port.Async; /** Note Off: `[8x nn vv]`; `x`: channel, `nn`: note, `vv`: velocity * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#noteOff */ noteOff(x: number, nn: number | string, vv?: number): Port.Async; /** Polyphonic aftetouch: `[Ax nn vv]`; `x`: channel, `nn`: note, `vv`: value * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#aftertouch */ aftertouch(x: number, nn: number | string, vv: number): Port.Async; /** MIDI control: `[Bx nn vv]`; `x`: channel, `nn`: function, `vv`: value * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#control */ control(x: number, nn: number, vv: number): Port.Async; /** Program change: `[Cx nn]`; `x`: channel, `nn`: program * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#program */ program(x: number, nn: number | string): Port.Async; /** Pressure: `[Dx nn]`; `x`: channel, `nn`: pressure * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#pressure */ pressure(x: number, nn: number): Port.Async; /** Pitch bend: `[Ex lsb msb]`; `x`: channel, `msb`/`lsb`: most/least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#pitchBend */ pitchBend(x: number, nn: number): Port.Async; /** Bank select MSB: `[Bx 00 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#bankMSB */ bankMSB(x: number, nn: number): Port.Async; /** Bank select LSB: `[Bx 20 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#bankLSB */ bankLSB(x: number, nn: number): Port.Async; /** Modulation MSB: `[Bx 01 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#modMSB */ modMSB(x: number, nn: number): Port.Async; /** Modulation LSB: `[Bx 21 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#modLSB */ modLSB(x: number, nn: number): Port.Async; /** Breath controller MSB: `[Bx 02 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#breathMSB */ breathMSB(x: number, nn: number): Port.Async; /** Breath controller LSB: `[Bx 22 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#breathLSB */ breathLSB(x: number, nn: number): Port.Async; /** Foot controller MSB: `[Bx 04 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#footMSB */ footMSB(x: number, nn: number): Port.Async; /** Foot controller LSB: `[Bx 24 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#footLSB */ footLSB(x: number, nn: number): Port.Async; /** Portamento MSB: `[Bx 05 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamentoMSB */ portamentoMSB(x: number, nn: number): Port.Async; /** Portamento LSB: `[Bx 25 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamentoLSB */ portamentoLSB(x: number, nn: number): Port.Async; /** Volume MSB: `[Bx 07 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#volumeMSB */ volumeMSB(x: number, nn: number): Port.Async; /** Volume LSB: `[Bx 27 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#volumeLSB */ volumeLSB(x: number, nn: number): Port.Async; /** Balance MSB: `[Bx 08 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#balanceMSB */ balanceMSB(x: number, nn: number): Port.Async; /** Balance LSB: `[Bx 28 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#balanceLSB */ balanceLSB(x: number, nn: number): Port.Async; /** Pan MSB: `[Bx 0A nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#panMSB */ panMSB(x: number, nn: number): Port.Async; /** Pan LSB: `[Bx 2A nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#panLSB */ panLSB(x: number, nn: number): Port.Async; /** Expression MSB: `[Bx 0B nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#expressionMSB */ expressionMSB(x: number, nn: number): Port.Async; /** Expression LSB: `[Bx 2B nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#expressionLSB */ expressionLSB(x: number, nn: number): Port.Async; /** Damper on/off: `[Bx 40 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#damper */ damper(x: number, bb: boolean): Port.Async; /** Portamento on/off: `[Bx 41 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamento */ portamento(x: number, bb: boolean): Port.Async; /** Sostenuto on/off: `[Bx 42 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sostenuto */ sostenuto(x: number, bb: boolean): Port.Async; /** Soft on/off: `[Bx 43 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#soft */ soft(x: number, bb: boolean): Port.Async; /** All sound off: `[Bx 78 00]`; `x`: channel * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#allSoundOff */ allSoundOff(x: number): Port.Async; /** All notes off: `[Bx 7B 00]`; `x`: channel * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#allNotesOff */ allNotesOff(x: number): Port.Async; // Channel-independent /** Song position: `[F2 lsb msb]`; `msb`/`lsb`: most/least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#songPosition */ songPosition(nn: number): Port.Async; /** Song select: `[F3 nn]`; `nn`: song number * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#songSelect */ songSelect(nn: number): Port.Async; /** Tune: `[F6]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#tune */ tune(): Port.Async; /** Clock: `[F8]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#clock */ clock(): Port.Async; /** Start: `[FA]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#start */ start(): Port.Async; /** Continue: `[FB]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#continue */ continue(): Port.Async; /** Stop: `[FC]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#stop */ stop(): Port.Async; /** Active sense signal: `[FE]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#active */ active(): Port.Async; /** Reset: `[FF]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#reset */ reset(): Port.Async; /** ID Request SysEx: `[F0 7E 7F 06 01 F7]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sxIdRequest */ sxIdRequest(): Port.Async; /** MIDI time code (SMPTE quarter frame): `[F1 xx]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#mtc */ mtc(t: SMPTE): Port.Async; /** SMPTE Full Frame SysEx: `[F0 7F 7F 01 01 xx xx xx xx F7]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sxFullFrame */ sxFullFrame(t: SMPTE): Port.Async; // SMF /** Standard MIDI File meta event: [FFxx len data] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smf */ smf(...args: any): Port.Async; /** SMF Sequence Number: [FF00 02 ssss] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSeqNumber */ smfSeqNumber(ssss: number): Port.Async; /** SMF Text: [FF01 len text]; used in Karaoke files * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfText */ smfText(str: string): Port.Async; /** SMF Copyright: [FF02 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfCopyright */ smfCopyright(str: string): Port.Async; /** SMF Sequence Name: [FF03 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSeqName */ smfSeqName(str: string): Port.Async; /** SMF Instrument Name: [FF04 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfInstrName */ smfInstrName(str: string): Port.Async; /** SMF Lyric: [FF05 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfLyric */ smfLyric(str: string): Port.Async; /** SMF Marker: [FF06 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfMarker */ smfMarker(str: string): Port.Async; /** SMF Cue Point: [FF07 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfCuePoint */ smfCuePoint(str: string): Port.Async; /** SMF Program Name: [FF08 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfProgName */ smfProgName(str: string): Port.Async; /** SMF Device Name: [FF09 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfDevName */ smfDevName(str: string): Port.Async; /** SMF Channel Prefix: [FF20 01 cc] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfChannelPrefix */ smfChannelPrefix(cc: number): Port.Async; /** SMF MIDI Port [FF21 01 pp] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfMidiPort */ smfMidiPort(pp: number): Port.Async; /** SMF End of Track: [FF2F 00] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfEndOfTrack */ smfEndOfTrack(): Port.Async; /** SMF Tempo: [FF51 03 tttttt] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfTempo */ smfTempo(tttttt: number): Port.Async; /** SMF Tempo, BMP: [FF51 03 tttttt] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfBPM */ smfBPM(bpm: number): Port.Async; /** SMF SMPTE offset: [FF54 05 hh mm ss fr ff] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSMPTE */ smfSMPTE(smpte: SMPTE | number[]): Port.Async; /** SMF Time Signature: [FF58 04 nn dd cc bb] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfTimeSignature */ smfTimeSignature(nn: number, dd: number, cc?: number, bb?: number): Port.Async; /** SMF Key Signature: [FF59 02 sf mi] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfKeySignature */ smfKeySignature(key: string): Port.Async; /** SMF Sequencer-specific Data: [FF7F len data] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSequencer */ smfSequencer(data: string): Port.Async; } namespace Channel { interface Async extends Channel, PromiseLike<Channel> {} } interface Channel { // Stub /** Print if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(text: string): Channel.Async; /** Execute if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(func: (self?: Stub) => void): Channel.Async; /** Print if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(text: string): Channel.Async; /** Execute if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(func: (self?: Stub) => void): Channel.Async; /** Wait `ms` milliseconds * * https://jazz-soft.net/doc/JZZ/common.html#wait */ wait(ms: number): Channel.Async; // Port /** Return an `info` object * * https://jazz-soft.net/doc/JZZ/midiin.html#info */ info(): any; /** Return the port name * * https://jazz-soft.net/doc/JZZ/midiin.html#name */ name(): string; /** Connect MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#connect */ connect(arg: any): Channel.Async; /** Disonnect MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#disconnect */ disconnect(arg?: any): Channel.Async; /** Send MIDI message * * https://jazz-soft.net/doc/JZZ/midiout.html#send */ send(...args: any[]): Channel.Async; /** Emit MIDI message * * https://jazz-soft.net/doc/JZZ/midithru.html#emit */ emit(...args: any[]): Channel.Async; /** Emit MIDI message * * https://jazz-soft.net/doc/JZZ/midithru.html#emit */ _emit(...args: any[]): void; /** Close MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#close */ close(): Stub.Async; /** MIDI channel * * https://jazz-soft.net/doc/JZZ/midiout.html#ch */ ch(x: number): Channel.Async; /** MIDI channel * * https://jazz-soft.net/doc/JZZ/midiout.html#ch */ ch(): Port.Async; /** MPE channel * * https://jazz-soft.net/doc/JZZ/midiout.html#mpe */ mpe(m: number, n: number): MPE.Async; /** MPE channel * * https://jazz-soft.net/doc/JZZ/midiout.html#mpe */ mpe(): Port.Async; /** Play note * * https://jazz-soft.net/doc/JZZ/midiout.html#note */ note(nn: number | string, vv?: number, tt?: number): Channel.Async; // Channel-dependent /** Note On: `[9x nn vv]`; `x`: channel, `nn`: note, `vv`: velocity * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#noteOn */ noteOn(nn: number | string, vv?: number): Channel.Async; /** Note Off: `[8x nn vv]`; `x`: channel, `nn`: note, `vv`: velocity * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#noteOff */ noteOff(nn: number | string, vv?: number): Channel.Async; /** Polyphonic aftetouch: `[Ax nn vv]`; `x`: channel, `nn`: note, `vv`: value * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#aftertouch */ aftertouch(nn: number | string, vv: number): Channel.Async; /** MIDI control: `[Bx nn vv]`; `x`: channel, `nn`: function, `vv`: value * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#control */ control(nn: number, vv: number): Channel.Async; /** Program change: `[Cx nn]`; `x`: channel, `nn`: program * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#program */ program(nn: number | string): Channel.Async; /** Pressure: `[Dx nn]`; `x`: channel, `nn`: pressure * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#pressure */ pressure(nn: number): Channel.Async; /** Pitch bend: `[Ex lsb msb]`; `x`: channel, `msb`/`lsb`: most/least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#pitchBend */ pitchBend(nn: number): Channel.Async; /** Bank select MSB: `[Bx 00 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#bankMSB */ bankMSB(nn: number): Channel.Async; /** Bank select LSB: `[Bx 20 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#bankLSB */ bankLSB(nn: number): Channel.Async; /** Modulation MSB: `[Bx 01 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#modMSB */ modMSB(nn: number): Channel.Async; /** Modulation LSB: `[Bx 21 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#modLSB */ modLSB(nn: number): Channel.Async; /** Breath controller MSB: `[Bx 02 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#breathMSB */ breathMSB(nn: number): Channel.Async; /** Breath controller LSB: `[Bx 22 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#breathLSB */ breathLSB(nn: number): Channel.Async; /** Foot controller MSB: `[Bx 04 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#footMSB */ footMSB(nn: number): Channel.Async; /** Foot controller LSB: `[Bx 24 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#footLSB */ footLSB(nn: number): Channel.Async; /** Portamento MSB: `[Bx 05 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamentoMSB */ portamentoMSB(nn: number): Channel.Async; /** Portamento LSB: `[Bx 25 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamentoLSB */ portamentoLSB(nn: number): Channel.Async; /** Volume MSB: `[Bx 07 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#volumeMSB */ volumeMSB(nn: number): Channel.Async; /** Volume LSB: `[Bx 27 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#volumeLSB */ volumeLSB(nn: number): Channel.Async; /** Balance MSB: `[Bx 08 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#balanceMSB */ balanceMSB(nn: number): Channel.Async; /** Balance LSB: `[Bx 28 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#balanceLSB */ balanceLSB(nn: number): Channel.Async; /** Pan MSB: `[Bx 0A nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#panMSB */ panMSB(nn: number): Channel.Async; /** Pan LSB: `[Bx 2A nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#panLSB */ panLSB(nn: number): Channel.Async; /** Expression MSB: `[Bx 0B nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#expressionMSB */ expressionMSB(nn: number): Channel.Async; /** Expression LSB: `[Bx 2B nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#expressionLSB */ expressionLSB(nn: number): Channel.Async; /** Damper on/off: `[Bx 40 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#damper */ damper(bb: boolean): Channel.Async; /** Portamento on/off: `[Bx 41 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamento */ portamento(bb: boolean): Channel.Async; /** Sostenuto on/off: `[Bx 42 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sostenuto */ sostenuto(bb: boolean): Channel.Async; /** Soft on/off: `[Bx 43 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#soft */ soft(bb: boolean): Channel.Async; /** All sound off: `[Bx 78 00]`; `x`: channel * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#allSoundOff */ allSoundOff(): Channel.Async; /** All notes off: `[Bx 7B 00]`; `x`: channel * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#allNotesOff */ allNotesOff(): Channel.Async; // Channel-independent /** Song position: `[F2 lsb msb]`; `msb`/`lsb`: most/least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#songPosition */ songPosition(nn: number): Channel.Async; /** Song select: `[F3 nn]`; `nn`: song number * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#songSelect */ songSelect(nn: number): Channel.Async; /** Tune: `[F6]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#tune */ tune(): Channel.Async; /** Clock: `[F8]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#clock */ clock(): Channel.Async; /** Start: `[FA]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#start */ start(): Channel.Async; /** Continue: `[FB]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#continue */ continue(): Channel.Async; /** Stop: `[FC]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#stop */ stop(): Channel.Async; /** Active sense signal: `[FE]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#active */ active(): Channel.Async; /** Reset: `[FF]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#reset */ reset(): Channel.Async; /** ID Request SysEx: `[F0 7E 7F 06 01 F7]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sxIdRequest */ sxIdRequest(): Channel.Async; /** MIDI time code (SMPTE quarter frame): `[F1 xx]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#mtc */ mtc(t: SMPTE): Channel.Async; /** SMPTE Full Frame SysEx: `[F0 7F 7F 01 01 xx xx xx xx F7]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sxFullFrame */ sxFullFrame(t: SMPTE): Channel.Async; // SMF /** Standard MIDI File meta event: [FFxx len data] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smf */ smf(...args: any): Channel.Async; /** SMF Sequence Number: [FF00 02 ssss] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSeqNumber */ smfSeqNumber(ssss: number): Channel.Async; /** SMF Text: [FF01 len text]; used in Karaoke files * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfText */ smfText(str: string): Channel.Async; /** SMF Copyright: [FF02 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfCopyright */ smfCopyright(str: string): Channel.Async; /** SMF Sequence Name: [FF03 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSeqName */ smfSeqName(str: string): Channel.Async; /** SMF Instrument Name: [FF04 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfInstrName */ smfInstrName(str: string): Channel.Async; /** SMF Lyric: [FF05 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfLyric */ smfLyric(str: string): Channel.Async; /** SMF Marker: [FF06 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfMarker */ smfMarker(str: string): Channel.Async; /** SMF Cue Point: [FF07 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfCuePoint */ smfCuePoint(str: string): Channel.Async; /** SMF Program Name: [FF08 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfProgName */ smfProgName(str: string): Channel.Async; /** SMF Device Name: [FF09 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfDevName */ smfDevName(str: string): Channel.Async; /** SMF Channel Prefix: [FF20 01 cc] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfChannelPrefix */ smfChannelPrefix(cc: number): Channel.Async; /** SMF MIDI Port [FF21 01 pp] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfMidiPort */ smfMidiPort(pp: number): Channel.Async; /** SMF End of Track: [FF2F 00] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfEndOfTrack */ smfEndOfTrack(): Channel.Async; /** SMF Tempo: [FF51 03 tttttt] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfTempo */ smfTempo(tttttt: number): Channel.Async; /** SMF Tempo, BMP: [FF51 03 tttttt] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfBPM */ smfBPM(bpm: number): Channel.Async; /** SMF SMPTE offset: [FF54 05 hh mm ss fr ff] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSMPTE */ smfSMPTE(smpte: SMPTE | number[]): Channel.Async; /** SMF Time Signature: [FF58 04 nn dd cc bb] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfTimeSignature */ smfTimeSignature(nn: number, dd: number, cc?: number, bb?: number): Channel.Async; /** SMF Key Signature: [FF59 02 sf mi] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfKeySignature */ smfKeySignature(key: string): Channel.Async; /** SMF Sequencer-specific Data: [FF7F len data] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSequencer */ smfSequencer(data: string): Channel.Async; } namespace MPE { interface Async extends MPE, PromiseLike<MPE> {} } interface MPE { // Stub /** Print if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(text: string): MPE.Async; /** Execute if OK * * https://jazz-soft.net/doc/JZZ/common.html#and */ and(func: (self?: Stub) => void): MPE.Async; /** Print if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(text: string): MPE.Async; /** Execute if not OK * * https://jazz-soft.net/doc/JZZ/common.html#or */ or(func: (self?: Stub) => void): MPE.Async; /** Wait `ms` milliseconds * * https://jazz-soft.net/doc/JZZ/common.html#wait */ wait(ms: number): MPE.Async; // Port /** Return an `info` object * * https://jazz-soft.net/doc/JZZ/midiin.html#info */ info(): any; /** Return the port name * * https://jazz-soft.net/doc/JZZ/midiin.html#name */ name(): string; /** Connect MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#connect */ connect(arg: any): MPE.Async; /** Disonnect MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#disconnect */ disconnect(arg?: any): MPE.Async; /** Send MIDI message * * https://jazz-soft.net/doc/JZZ/midiout.html#send */ send(...args: any[]): MPE.Async; /** Emit MIDI message * * https://jazz-soft.net/doc/JZZ/midithru.html#emit */ emit(...args: any[]): MPE.Async; /** Emit MIDI message * * https://jazz-soft.net/doc/JZZ/midithru.html#emit */ _emit(...args: any[]): void; /** Close MIDI port * * https://jazz-soft.net/doc/JZZ/midiin.html#close */ close(): Stub.Async; /** MIDI channel * * https://jazz-soft.net/doc/JZZ/midiout.html#ch */ ch(x: number): Channel.Async; /** MIDI channel * * https://jazz-soft.net/doc/JZZ/midiout.html#ch */ ch(): Port.Async; /** MPE channel * * https://jazz-soft.net/doc/JZZ/midiout.html#mpe */ mpe(m: number, n: number): MPE.Async; /** MPE channel * * https://jazz-soft.net/doc/JZZ/midiout.html#mpe */ mpe(): Port.Async; /** Play note * * https://jazz-soft.net/doc/JZZ/midiout.html#note */ note(nn: number | string, vv?: number, tt?: number): MPE.Async; // Channel-dependent /** Note On: `[9x nn vv]`; `x`: channel, `nn`: note, `vv`: velocity * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#noteOn */ noteOn(nn: number | string, vv?: number): MPE.Async; /** Note Off: `[8x nn vv]`; `x`: channel, `nn`: note, `vv`: velocity * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#noteOff */ noteOff(nn: number | string, vv?: number): MPE.Async; /** Polyphonic aftetouch: `[Ax nn vv]`; `x`: channel, `nn`: note, `vv`: value * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#aftertouch */ aftertouch(nn: number | string, vv: number): MPE.Async; /** MIDI control: `[Bx nn vv]`; `x`: channel, `nn`: function, `vv`: value * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#control */ control(nn: number, vv: number): MPE.Async; /** Program change: `[Cx nn]`; `x`: channel, `nn`: program * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#program */ program(nn: number | string): MPE.Async; /** Pressure: `[Dx nn]`; `x`: channel, `nn`: pressure * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#pressure */ pressure(nn: number): MPE.Async; /** Pitch bend: `[Ex lsb msb]`; `x`: channel, `msb`/`lsb`: most/least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#pitchBend */ pitchBend(nn: number): MPE.Async; /** Bank select MSB: `[Bx 00 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#bankMSB */ bankMSB(nn: number): MPE.Async; /** Bank select LSB: `[Bx 20 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#bankLSB */ bankLSB(nn: number): MPE.Async; /** Modulation MSB: `[Bx 01 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#modMSB */ modMSB(nn: number): MPE.Async; /** Modulation LSB: `[Bx 21 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#modLSB */ modLSB(nn: number): MPE.Async; /** Breath controller MSB: `[Bx 02 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#breathMSB */ breathMSB(nn: number): MPE.Async; /** Breath controller LSB: `[Bx 22 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#breathLSB */ breathLSB(nn: number): MPE.Async; /** Foot controller MSB: `[Bx 04 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#footMSB */ footMSB(nn: number): MPE.Async; /** Foot controller LSB: `[Bx 24 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#footLSB */ footLSB(nn: number): MPE.Async; /** Portamento MSB: `[Bx 05 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamentoMSB */ portamentoMSB(nn: number): MPE.Async; /** Portamento LSB: `[Bx 25 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamentoLSB */ portamentoLSB(nn: number): MPE.Async; /** Volume MSB: `[Bx 07 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#volumeMSB */ volumeMSB(nn: number): MPE.Async; /** Volume LSB: `[Bx 27 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#volumeLSB */ volumeLSB(nn: number): MPE.Async; /** Balance MSB: `[Bx 08 nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#balanceMSB */ balanceMSB(nn: number): MPE.Async; /** Balance LSB: `[Bx 28 nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#balanceLSB */ balanceLSB(nn: number): MPE.Async; /** Pan MSB: `[Bx 0A nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#panMSB */ panMSB(nn: number): MPE.Async; /** Pan LSB: `[Bx 2A nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#panLSB */ panLSB(nn: number): MPE.Async; /** Expression MSB: `[Bx 0B nn]`; `x`: channel, `nn`: most significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#expressionMSB */ expressionMSB(nn: number): MPE.Async; /** Expression LSB: `[Bx 2B nn]`; `x`: channel, `nn`: least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#expressionLSB */ expressionLSB(nn: number): MPE.Async; /** Damper on/off: `[Bx 40 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#damper */ damper(bb: boolean): MPE.Async; /** Portamento on/off: `[Bx 41 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#portamento */ portamento(bb: boolean): MPE.Async; /** Sostenuto on/off: `[Bx 42 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sostenuto */ sostenuto(bb: boolean): MPE.Async; /** Soft on/off: `[Bx 43 nn]`; `x`: channel, `nn`: `bb ? 7f : 00` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#soft */ soft(bb: boolean): MPE.Async; /** All sound off: `[Bx 78 00]`; `x`: channel * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#allSoundOff */ allSoundOff(): MPE.Async; /** All notes off: `[Bx 7B 00]`; `x`: channel * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#allNotesOff */ allNotesOff(): MPE.Async; // Channel-independent /** Song position: `[F2 lsb msb]`; `msb`/`lsb`: most/least significant 7 bits * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#songPosition */ songPosition(nn: number): MPE.Async; /** Song select: `[F3 nn]`; `nn`: song number * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#songSelect */ songSelect(nn: number): MPE.Async; /** Tune: `[F6]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#tune */ tune(): MPE.Async; /** Clock: `[F8]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#clock */ clock(): MPE.Async; /** Start: `[FA]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#start */ start(): MPE.Async; /** Continue: `[FB]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#continue */ continue(): MPE.Async; /** Stop: `[FC]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#stop */ stop(): MPE.Async; /** Active sense signal: `[FE]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#active */ active(): MPE.Async; /** Reset: `[FF]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#reset */ reset(): MPE.Async; /** ID Request SysEx: `[F0 7E 7F 06 01 F7]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sxIdRequest */ sxIdRequest(): MPE.Async; /** MIDI time code (SMPTE quarter frame): `[F1 xx]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#mtc */ mtc(t: SMPTE): MPE.Async; /** SMPTE Full Frame SysEx: `[F0 7F 7F 01 01 xx xx xx xx F7]` * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#sxFullFrame */ sxFullFrame(t: SMPTE): MPE.Async; // SMF /** Standard MIDI File meta event: [FFxx len data] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smf */ smf(...args: any): MPE.Async; /** SMF Sequence Number: [FF00 02 ssss] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSeqNumber */ smfSeqNumber(ssss: number): MPE.Async; /** SMF Text: [FF01 len text]; used in Karaoke files * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfText */ smfText(str: string): MPE.Async; /** SMF Copyright: [FF02 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfCopyright */ smfCopyright(str: string): MPE.Async; /** SMF Sequence Name: [FF03 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSeqName */ smfSeqName(str: string): MPE.Async; /** SMF Instrument Name: [FF04 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfInstrName */ smfInstrName(str: string): MPE.Async; /** SMF Lyric: [FF05 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfLyric */ smfLyric(str: string): MPE.Async; /** SMF Marker: [FF06 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfMarker */ smfMarker(str: string): MPE.Async; /** SMF Cue Point: [FF07 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfCuePoint */ smfCuePoint(str: string): MPE.Async; /** SMF Program Name: [FF08 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfProgName */ smfProgName(str: string): MPE.Async; /** SMF Device Name: [FF09 len text] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfDevName */ smfDevName(str: string): MPE.Async; /** SMF Channel Prefix: [FF20 01 cc] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfChannelPrefix */ smfChannelPrefix(cc: number): MPE.Async; /** SMF MIDI Port [FF21 01 pp] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfMidiPort */ smfMidiPort(pp: number): MPE.Async; /** SMF End of Track: [FF2F 00] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfEndOfTrack */ smfEndOfTrack(): MPE.Async; /** SMF Tempo: [FF51 03 tttttt] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfTempo */ smfTempo(tttttt: number): MPE.Async; /** SMF Tempo, BMP: [FF51 03 tttttt] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfBPM */ smfBPM(bpm: number): MPE.Async; /** SMF SMPTE offset: [FF54 05 hh mm ss fr ff] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSMPTE */ smfSMPTE(smpte: SMPTE | number[]): MPE.Async; /** SMF Time Signature: [FF58 04 nn dd cc bb] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfTimeSignature */ smfTimeSignature(nn: number, dd: number, cc?: number, bb?: number): MPE.Async; /** SMF Key Signature: [FF59 02 sf mi] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfKeySignature */ smfKeySignature(key: string): MPE.Async; /** SMF Sequencer-specific Data: [FF7F len data] * * https://jazz-soft.net/doc/JZZ/jzzmidi.html#smfSequencer */ smfSequencer(data: string): MPE.Async; } namespace Watcher { interface Async extends Watcher, PromiseLike<Watcher> {} } interface Watcher extends Engine { /** Add the Watcher handle * * https://jazz-soft.net/doc/JZZ/jzz.html#connect */ connect(...args: any[]): Watcher.Async; /** Remove the Watcher handle * * https://jazz-soft.net/doc/JZZ/jzz.html#disconnect */ disconnect(...args: any[]): Watcher.Async; } interface lib { /** Open virtual MIDI-In port * * https://jazz-soft.net/doc/JZZ/lib.html#openMidiIn */ openMidiIn(...args: any[]): boolean; /** Open virtual MIDI-Out port * * https://jazz-soft.net/doc/JZZ/lib.html#openMidiOut */ openMidiOut(...args: any[]): boolean; /** Register virtual MIDI-In port * * https://jazz-soft.net/doc/JZZ/lib.html#registerMidiIn */ registerMidiIn(...args: any[]): boolean; /** Register virtual MIDI-Out port * * https://jazz-soft.net/doc/JZZ/lib.html#registerMidiOut */ registerMidiOut(...args: any[]): boolean; /** Activate and return window.AudioContext * * https://jazz-soft.net/doc/JZZ/lib.html#getAudioContext */ getAudioContext(): any; /** Activate and return window.AudioContext * * https://jazz-soft.net/doc/JZZ/lib.html#closeAudioContext */ closeAudioContext(): any; /** Encode string to Base64 * * https://jazz-soft.net/doc/JZZ/lib.html#toBase64 */ toBase64(txt: string): string; /** Decode string from Base64 * * https://jazz-soft.net/doc/JZZ/lib.html#fromBase64 */ fromBase64(txt: string): string; /** Encode string to UTF8 * * https://jazz-soft.net/doc/JZZ/lib.html#toUTF8 */ toUTF8(txt: string): string; /** Decode string from UTF8 * * https://jazz-soft.net/doc/JZZ/lib.html#fromUTF8 */ fromUTF8(txt: string): string; } } interface JZZ { readonly lib: JZZ.lib; /** Start MIDI engine * * https://jazz-soft.net/doc/JZZ/jzz.html#jzz */ (arg?: any): JZZ.Engine.Async; /** Return an `info` object * * https://jazz-soft.net/doc/JZZ/jzz.html#info */ readonly info: () => any; /** Create virtual MIDI port * * https://jazz-soft.net/doc/JZZ/midithru.html#Widget */ readonly Widget: (...args: any[]) => JZZ.Port; /** MIDI message * * https://jazz-soft.net/doc/JZZ/jzzmidi.html */ readonly MIDI: JZZ.MIDI.Constructor; /** SMPTE message * * https://jazz-soft.net/doc/JZZ/smpte.html */ readonly SMPTE: JZZ.SMPTE.Constructor; /** Invoke Web MIDI API * * https://jazz-soft.net/doc/JZZ/webmidi.html */ readonly requestMIDIAccess: (options?: WebMidi.MIDIOptions) => Promise<WebMidi.MIDIAccess>; } declare const jzz: JZZ; export = jzz;