From
Jacques Herry
35, résid Corlay
22300 Lannion
France
Jacques.herry@wanadoo.fr
MidiPlayer for schemers.
Doc for mzPlayer3216 mzscheme extension.
it's free... Use at your own risk look at gnu LGPL licence.
Download the user and developper packages from http://www.grame.fr/MidiShare
and install.
Download PLT package from http://www.cs.rice.edu/CS/PLT/packages/drscheme
The lib player.dll version 2.0 is donwloadable at ftp.grame.fr;
For the functions utilisation read the official doc in MidiShare developper distribution
Diffs are commented in the list below
And the doc are in MidiPlayer.pdf
and MidiShare.pdf provided with MidiShare developper package or from ftp.grame.fr from the documentation directory.You need intall MidiShare Before use this package. Look at MidiShare.htm for installation.
Scheme |
Grame |
Comments |
"open-player" |
OpenPlayer |
|
"close-player" |
ClosePlayer |
|
"start-player" |
StartPlayer |
|
"cont-player" |
Contplayer |
|
"stop-player" |
StopPlayer |
|
"pause-player" |
PausePlayer |
|
"make-pos-player" |
add for scheme |
(define my-pos make-pos-player bar beat unit) |
"set-pos-bbu-player!" |
SetPosBBUPlayer |
|
"set-pos-ms-player!" |
SetPosMsPlayer |
|
"set-loop-player!" |
SetLoopPlayer |
|
"set-loop-start-bbu-player!" |
SetLoopStartBBUPlayer |
|
"set-loop-end-bbu-player!" |
SetLoopEndBBUPlayer |
|
"set-loop-start-ms-player" |
SetLoopStartMsPlayer |
|
"set-loop-end-ms-player!" |
SetLoopEndMsPlayer |
|
"set-synchro-in-player!" |
SetSynchroInPlayer |
|
"set-synchro-out-player!" |
SetSynchroOutPlayer |
|
"set-smpte-offset-player! |
SetSMPTEOffsetPlayer |
You should make one smpte struct before.(bug here ? prehaps don't use) |
"set-tempo-player!" |
SetTempoPlayer |
|
"get-state-player" "get-state-player!" |
GetStatePlayer |
Without arg provide the filled state struct (define my-state (get-state-player player)) After you can use this "my-state" all the time you want st struct values. As in C (memory economie I presume) (get-state-player! player my-state) fill the struct my-state with the desired values |
|
|
|
"get-end-score-player" |
GetEndScorePlayer |
|
"forward-step-player" |
ForwardStepPlayer |
|
"backward-step-player" |
BackwardStepPlayer |
|
"get-all-track-player" |
GetAllTrackPlayer |
|
"get-track-player" |
GetTrackPlayer |
|
"set-param-player!" |
SetParamPlayer |
|
"get-param-player" |
GetParamPlayer |
|
"insert-all-track-player" |
InsertAllTrackPlayer |
|
"insert-track-player" |
InsertTrackPlayer |
|
"make-midi-file-infos" |
Add for scheme. *see sample of use in play.scm |
(define my-info (make-midi-file-infos format timedef clicks tracks)) As in C struct, for "midi-file-load" and save below |
"midi-file-save" |
MidiFileSave |
As in C |
"midi-file-load" |
MidiFileLoad *warning this in c return eror code here return midi-infos scheme structure |
As in C (midi-file-load "file.mid" my-info) return player error code my-info structure is filled with all information from the midi-file loaded so you can look at with "midi-file-infos-'fieldName'". |