libcm is a C development framework with an emphasis on audio signal processing applications.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cmMidiScoreFollow.h 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //| Copyright: (C) 2009-2020 Kevin Larke <contact AT larke DOT org>
  2. //| License: GNU GPL version 3.0 or above. See the accompanying LICENSE file.
  3. #ifndef cmMidiScoreFollow_h
  4. #define cmMidiScoreFollow_h
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. //( { file_desc:"Score follow a MIDI files." kw[score] }
  9. //
  10. // This function uses a CSV score file generated from cmXScoreTest() to score follow a MIDI file.
  11. // Output filesL
  12. // - MIDI file with velocities from the score applied to the associated notes in the MIDI file.
  13. // - A text file, for use with cmTimeLine, which describes the bar positions as absolute times into the score.
  14. // - An SVG file which shows the score match results over time for each note in the score.
  15. // - A report file which lists the score match status over time.
  16. enum
  17. {
  18. kOkMsfRC = cmOkRC,
  19. kFailMsfRC
  20. };
  21. typedef cmRC_t cmMsfRC_t;
  22. cmMsfRC_t cmMidiScoreFollowMain(
  23. cmCtx_t* ctx,
  24. const cmChar_t* scoreCsvFn, // score CSV file as generated from cmXScoreTest().
  25. const cmChar_t* midiFn, // MIDI file to track
  26. const cmChar_t* matchRptOutFn, // Score follow status report
  27. const cmChar_t* matchSvgOutFn, // Score follow graphic report
  28. const cmChar_t* midiOutFn, // (optional) midiFn with apply sostenuto and velocities from the score to the MIDI file
  29. const cmChar_t* tlBarOutFn // (optional) bar positions sutiable for use in a cmTimeLine description file.
  30. );
  31. //)
  32. #ifdef __cplusplus
  33. }
  34. #endif
  35. #endif