Score processing utilities


There are three utilities in this package:


Converts midi files to Csound score format (note number, and velocity are stored in p4, and p5, respectively; optionally, note-off velocity can be stored in p6). Non-note events (e.g. controllers) are ignored by current version. Also, turning on a note, while the same note in the same channel is still active, is not allowed, and will result in an error message.


Reads i-events (other events, e.g. function table definitions, are ignored) from a sorted score, and does various simple processing functions, such as:

[+] filter events
[+] manipulate p-fields by simple arithmetics
[+] quantize, randomize, or modulate p-fields
[+] print the processed events with controllable formatting


Prints a t score statement, with tempo values controlled by periodic functions (sine, triangle, sawtooth, etc.). Any number of these functions can be mixed to get more complex tempo variation.


To compile and install the score utilities, first unpack the source package:

tar -xpzvf scoreproc-1.0.0.tar.gz ; cd scoreproc-1.0.0

Installation can be done with the script, or manually by running

make ; make install-strip

in all subdirectories.

Command line options

The following command line options are available for each utility:

mid2sco options
-i <filename> Input (MIDI) file name. Default is to read from stdin.
-o <filename> Output (score) file name. Default is to write to stdout.
-t Set instrument number in output score file to track number (by default, the instrument number is set to channel number).
-V Print note-off velocity as p6 (by default, it is not printed).
-h Print program usage and exit.
scoreproc options
-i | -infile <filename> Input file name (note: score input must be sorted by the scsort utility included with Csound). Default is to read from stdin.
-o | -outfile <filename> Output file name. Default is to write to stdout.
-c | -cmdfile <filename> File containing score processing commands (details about this file can be found in the README included with the package). Default: no program file.
-h | -help | --help Print program usage and exit.
tempomod options
-avg_tempo <tempo> Normalize output tempo values, to get an average tempo (number of beats / real time in seconds) of <tempo>. The default value is 120.
-start_beat <b> Set time offset to <b> (in beats). Defaults to zero.
-nbeats <b> Number of beats (default: 64). Note that this option clears tempo data, so it should be used before any -sine or -trsw options.
-b_res <nn> Set time resolution to 2 ^ nn beats. The default is -2 (1/16 notes). Note that this option clears tempo data, so it should be used before any -sine or -trsw options.
-sine <depth> <loop_time> <start_phase> <end_phase> Modulate tempo by a sine wave. depth is the modulation depth expressed as a fraction (0 to 1) of average tempo, which is 1 before normalization. loop_time is specified in beats. start_phase and end_phase are the initial and end phase of the sine wave, in the range 0 to 1 (with 1 for 360 degrees). It is allowed for end_phase to be less than start_phase. The sine wave is normalized to have a peak to peak amplitude of 2, and DC offset is removed.
-trsw <depth> <loop_time> <attack> <phase> Modulate tempo by a triangle / sawtooth ramp. depth and loop_time are the same as in the case of -sine. attack is the attack time expressed as a fraction of loop time. Setting it to 0, 0.5, or 1 generates a sawtooth down, a triangle, or a sawtooth up wave, respectively. phase is the initial phase (0 to 1).
-h | -help Print program usage and exit.


scoreproc-1.0.0.tar.gz contains the source code of the latest version.

Back to utilities page

Back to home page