midicopy1
Copy selected track, channel, time interval of a midi file to another midi file
Usage
midicopy [-ver]
[-trks
n1,n2,..]
[-xtrks
n1,n2,..]
[-xchns
n1,n2,..]
[-chans
n1,n2, ...]
[-from
n
(in
midi
ticks)]
[-to
n
(in
midi
ticks)]
[-fromsec
%f
n
(in
seconds)]
[-tosec
n
(in
seconds)]
[-frombeat
%f
n
(in
beats)]
[-tobeat
n
(in
beats)]
[-replace
trk,loc,val]
[-tempo
%n]
[-speed
%f]
[-drumfocus
n
m]
[-mutenodrum
[%d]]
[-setdrumloudness
n
m]
[-focusontrack
n1,n2, ...
(from
1)]
[-focusonchannel
n1,n2, ...
(from
1)]
[-attenuation
n]
[-nobends]
[-indrums
n1,n2, ...]
[-xdrums
n1,n2, ...]
[-onlydrums]
[-nodrums]
[-transpose
n
(semitones)]
input.mid
output.mid
Overview
midicopy is used to copy part of a MIDI file to another MIDI file. You can select a particular time interval, particular channels, and particular tracks or any combinations. If one or both of the run time parameters -from or -to are included, the program returns the playing time in seconds of the output file. Midicopy was developed by Seymour Shlien from the midifilelib distribution available from http://www.harmony-central.com/MIDI/midifilelib.tar.gz.
Options
-
-ver -
prints version number and then exits
- -trks n1,n2, etc
-
Selects the tracks to be copied where the track numbers start from 1. If more than one track is specified, they should be separated by commas. You should always copy track 1 since by convention it contains information pertinent to all the other tracks. By default all tracks are copied unless you specify particular tracks using this run time parameter.
- -xtrks n1,n2, etc
-
Lists the tracks to exclude from copying. All other tracks are copied. This option does not work in combination with -trks.
- -xchns n1,n2, etc
-
Lists the channels to exclude from copying. All other channels are copied. This option does not work in combination with -chns.
-
-chns n -
Like above, it specifies the MIDI channels to be copied. By default all channels are copied. Channel numbers also start from 1.
-
-from n -
The program will copy all MIDI commands starting from midi pulse number n. By default it will start from time zero or the beginning of the MIDI file.
-
-to n -
Stops copying all events after midi pulse number n. By default the file is copied to the end.
-
-frombeat n -
The program will copy all MIDI commands starting from quarter beat number n. By default it will start from time zero or the beginning of the MIDI file.
-
-tobeat n -
Stops copying all events after quarter beat number n. By default the file is copied to the end.
-
-fromsec n -
The program will copy all MIDI commands starting from time n in seconds.
-
-tosec n -
Stops copying all events after time n in seconds. These two options (-fromsec and -tosec) do not work accurately if the MIDI file has more than one tempo command. Only the first one is used for converting seconds into MIDI pulse units. It is therefore preferable to use the -from and -to options.
-
-replace trk,loc,val -
This option should be used alone. Midicopy will copy the entire file verbatim except it will replace a byte by val, where the byte is located in the specified track (trk) and specified position (loc). Commonly this function is used for changing a particular MIDI program number (instrument) associated with a channel. You need to know the byte count in the track of that parameter in order to use this function,
- -tempo quarter notes/minute
-
All tempo indications in the midi file will be replaced with the above value.
-
-speed factor -
All tempo indications in the midi file will be multiplied with this factor. Values greater than 1.0 will speed up the music while lower values slow the music. The factor is a floating point value.
- -drumfocus drum-code excluded_drum_velocities
-
The selected drum line (specified by the drum-code pitch value) is highlighted by reducing the loudness of all other drum lines to the excluded_drum_velocities value. The drum-code value must be in the range of 35 to 81 inclusive.
-
-mutenodrum [level] -
All channels which are not 9 (drum channel) are attenuated to the given level. If level is not specified, it is assumed to be zero.
- -setdrumloudness n m
-
where n is between 35 to 81 inclusive and m is the loudness between 0 and 127. The loudness of all instances of drum n are changed to m.
-
-focusontrack n1,n2,... -
The velocities of notes in all tracks except n are attenuated.
-
-focusonchannel n1,n2,... -
The velocities of notes in all channels except n are attenuated.
-
-attenuation n -
Specifies the amount the note velocities are reduced by either -focusontracks or -focusonchannels. Current default is 70.
-
-nobends -
Suppresses all channel pitchbend commands.
-
-indrums n1,n2,... -
Only allow percussions with codes n1,n2,...
-
-xdrums n1,n2,... -
Exclude the percussions with codes n1,n2,...
-
-onlydrums -
Only copy the percussion channel.
-
-nodrums -
Copy all channels except the percussion channel.
- -transpose n (semitones)
-
Transpose pitch for all channels except the percussion by n semitones.
Examples
midicopy.exe -trks 1,5 -from 2669 -to 8634 uzicko.mid fragment.mid Midicopy will copy tracks 1 and 5 starting from midi pulse position 2669 and ending at MIDI pulse position 8634.
Version
This man page describes midicopy version 1.40 from August 11 2024.
Releases
12 releases since Debian 3.1 (Sarge); the text changed 7 times.
-attenuation since Debian 10 (Buster);
-focusonchannel since Debian 10 (Buster);
-focusontrack since Debian 10 (Buster);
-frombeat since Debian 5.0 (Lenny);
-fromsec since Debian 4.0 (Etch);
-indrums since Debian 11 (Bullseye);
-mutenodrum since Debian 8 (Jessie);
-nobends since Debian 10 (Buster);
-nodrums since Debian 11 (Bullseye);
-onlydrums since Debian 11 (Bullseye);
-speed since Debian 8 (Jessie);
-tobeat since Debian 5.0 (Lenny);
-tosec since Debian 4.0 (Etch);
-xdrums since Debian 11 (Bullseye).
-trks until Debian 7 (Wheezy).