Copyright (C) Kevin Larke 2009-2020
This file is part of libcm.
libcm is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
libcm is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
See the GNU General Public License distributed with the libcm
package or look here:
// // This function uses a CSV score file generated from cmXScoreTest() to score follow a MIDI file. // Output filesL // - MIDI file with velocities from the score applied to the associated notes in the MIDI file. // - A text file, for use with cmTimeLine, which describes the bar positions as absolute times into the score. // - An SVG file which shows the score match results over time for each note in the score. // - A report file which lists the score match status over time. enum { kOkMsfRC = cmOkRC, kFailMsfRC }; typedef cmRC_t cmMsfRC_t; cmMsfRC_t cmMidiScoreFollowMain( cmCtx_t* ctx, const cmChar_t* scoreCsvFn, // score CSV file as generated from cmXScoreTest(). const cmChar_t* midiFn, // MIDI file to track const cmChar_t* matchRptOutFn, // Score follow status report const cmChar_t* matchSvgOutFn, // Score follow graphic report const cmChar_t* midiOutFn, // (optional) midiFn with apply sostenuto and velocities from the score to the MIDI file const cmChar_t* tlBarOutFn // (optional) bar positions sutiable for use in a cmTimeLine description file. );