gnbatchdialog
gnbatchdialog can batch convert (all MIDI files in a folder and sub folder) or single convert (a single MIDI file) using licensed tools. Tools that support options may offer a dialog where the options can be configured before the conversion starts. gnbatchexec
gnbatchexec is a tool that reads parameters from an .ini text file and converts all matching files found in the input folder into an output folder (including subfolders) by calling a specified commandline tool for each matching file. (c) 1998-2019 GN MIDI Solutions, Austria, https://www.gnmidi.com gnbatchexec is no demo. Distributing tool or license is probibited. Licensed permission for noncommercial use by Max Mustermann. No permission for distribution. usage: gnbatchexec [-dialog] filename.ini [sectionname] -dialog starts a Windows dialog to choose .ini file and conversion folders default .ini file is gnbatchtool.ini default sectionname is first section found in .ini file if there is only one section existing in the file gnbatchexec examples usage and .ini file syntax gnbatchexec batchtool.ini TRANSPOSENOTES_ALLCHANNELS gnbatchexec -dialog batchtool.ini CONVERTFOLDERS midi2txt
midi2txt converts a binary MIDI file into readable ASCII text.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion). usage: midi2txt [-error][-chunk][-short][-info][-lyric][-tact][-units][-ms][-dec][-channel] file.mid [file.txt] options: -error checks file only. Produces only error report -chunk prints structure of midi file (header, tracks) -short prints short info about text, tracknames, programs -info prints info about text, tracknames, programs, controls -lyric prints lyrics only -tact marks end of tact bars with . -units prints position of all events in midi units. -ms prints position of all events in milliseconds (1st track only). -dec print decimal values instead of notes, channels, programs,pauses... -channel print channel before every event midi2txt examples midi2txt -units -ms coldice5.mid coldice5_midi2txt_readabletext.txt result text: coldice5_midi2txt_readabletext.txt midi2txt -dec coldice5.mid coldice5_midi2txt_using_option_values.txt result text: coldice5_midi2txt_using_option_values.txt midi2txt -dec -short coldice5.mid coldice5_midi2txt_using_option_values_short.txt result text: coldice5_midi2txt_using_option_values_short.txt midi2txt -chunk coldice5.mid coldice5_midi2txt_chunk.txt result text: coldice5_midi2txt_chunk.txt txt2midi
txt2midi converts text converted using midi2txt utility back to a MIDI file. The text syntax must be valid.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion). usage: txt2midi [-version] [-programs] textfile.txt midifile.mid midi2csv
midi2csv converts a binary MIDI file into a comma separated text table. The rows are commands and the columns are parameters and additional calculated time information.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion). usage: midi2csv [-combinenoteonoff] [-separator sepcharacter] input.mid [output.csv] -combine finds corresponding note on/off commands and merges them in an output line -separator the separator used in spreadsheet (usually semicolon ; or comma , midi2csv examples midi2csv coldice4.mid coldice4_midi2csv_semicolon.csv result text: coldice4_midi2csv_semicolon.csv midi2csv -sep , coldice4.mid coldice4_midi2csv_using_comma.csv result text: coldice4_midi2csv_using_comma.csv midi2csv -combine coldice4.mid coldice4_midi2csv_combinednoteonoff.csv result text: coldice4_midi2csv_combinednoteonoff.csv csv2midicsv2midi converts a text file generated by midi2csv utility back to a MIDI file. usage: csv2midi input.csv output.mid mid2parsonmid2parson reads the notes from a specified channel of a binary midi file and makes it mono. The remaining notes are converted to Parsons code which is often used to find parts from the song by a given search term that has not to be very exact (e.g. humming). midi2pars [-channel #][-track #] input.mid [output.txt] (channel # is 1-16, track # is 1-255) midinote
midinote converts a binary MIDI file into a text file that can easily be read by human, machines or software. Each line contains a MIDI command with values as parameters. The parameters contain also calculated times.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion).
This tool is also available as standard user tool for use inside Windows GNMIDI 3 Professional application in menu convert and batch operations. usage: midinote [-nohead] [-val] [-ev ...][-units][-time] input.mid [output.txt] -noheader don't print header that explains the columns -values print cryptical values for easier import into programs -eventlist ... print only events of kind listed in argument ... -units print column with units -time print column with milliseconds input.mid get notes sorted by start time from this midi file output.txt write output into a text file (default: standard output) by default units and time columns are shown midinote examples midinote coldice3.mid coldice3_midinote_readable.txt result text: coldice3_midinote_readabletext.txt midinote -values coldice3.mid coldice3_midinote_values.txt result text: coldice3_midinote_values.txt midinote -eventlist t -time coldice3.mid coldice3_midinote_textevents.txt result text: coldice3_midinote_textevents.txt note2midnote2mid converts a text file generated by midinote utility back to a MIDI file.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion).
This tool is also available as standard user tool for use inside Windows GNMIDI 3 Professional application in menu convert and batch operations. usage: note2mid textfile midifile mididmp
mididmp converts a binary MIDI file into a text file that can easily be read by human, machines or software. The commands are already sorted by measure (bar), beat, unit. Notes that play over more bars are tied. Each bar contains the note and a tie information at beginning instead of a position or at end instead of a duration.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion).
This tool is also available as standard user tool for use inside Windows GNMIDI 3 Professional application in menu convert and batch operations. usage: mididmp [options] file.mid [output.txt] options: -help or -? show this usage -tracks=#[-#] only dump track with given numbers (1..., default all tracks) -channels=#[-#] only dump channels in given list or range (default: 0-16) specify number 0 for matching events that have no channel e.g. sysex, text, tempo, beat -values print values instead of program names etc. dumps midi file events of all bars to file output.txt or standard output mididmp examples mididmp coldice3.mid coldice3_mididmp_readable.txt result text: coldice3_mididmp_readable.txt mididmp -values coldice3.mid coldice3_mididmp_values.txt result text: coldice3_mididmp_values.txt dmp2mididmp2midi converts a text file generated by mididmp utility back to a MIDI file.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion).
This tool is also available as standard user tool for use inside Windows GNMIDI 3 Professional application in menu convert and batch operations. usage: dmp2midi [-listprograms] [-listcontrols] [-listtexttypes] [-listmetatypes] [-listnotenames] input.dmp output.mid removechordsremovechords removes chords of given formats in a midi file
This tool can be applied using gnbatchexec to many MIDI files (batch conversion). removechords input.mid output.mid -method methodname -format chordformats ... methods: REMOVEALLCHORDS REMOVECHORDFORMATS removeformat1 removeformat2 ... REMOVECHORDFORMATSEXCEPT exceptformat1 expceptformat2 ... REMOVEDUPLICATECHORDS preferformat1 preferformat2 ... chordformats: LYRIC TEXT MARKER PSR WORDBOX BIAB default method is REMOVECHORDFORMATS removechords examples removechords -method REMOVEALLCHORDS coldice3.mid nochords.mid removechords coldice3.mid chords_without_psr_and_biab.mid -method REMOVECHORDFORMATS -format PSR BIAB removechords coldice3.mid chords_onlypsr.mid -method REMOVECHORDFORMATSEXCEPT -format PSR removechords coldice3.mid chords_onlyoneformat.mid -method REMOVEDUPLICATECHORDS -format PSR WORDBOX LYRIC TEXT MARKER BIAB midimovemidimove moves MIDI commands of a binary MIDI file by a millisecond amount forward or backward.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion). Licensed permission for noncommercial use by Max Mustermann. No permission for distribution. (c) 1998-2017 GN MIDI Solutions, Austria, https://www.gnmidi.com midimove is no demo. Distributing tool or license is probibited. midimove [-millisec #] [-channels #] [-events list] [-ignoreinvalidmoving[=yes/no]] input.mid output.mid -millisec # negative ms moves events into direction of start of song -ignoreinvalidmoving set to time 0 if moving not possible (e.g. when using -ms -10000 and events are in first 10 seconds) -channels # a list of channels e.g. 1-9,11-16 (default: all channels) -events list a list of event type names separated by , e.g. notes,controls (default: all event types except meter tempo and tact) Following event names are currently supported: all channelevents (all event types that have a channel number like notes, pitchbends, programs, controls, aftertouch, polyaftertouch) notes pitchbends programs controls aftertouch polyaftertouch metaevents (all meta event types including metatext but not tempo and not meter (tact)) metatext (all meta text types like lyrics, text, markers, trackname, instrument ...) lyrics (meta text of type lyrics) text (meta text of type text) markers (meta text of type markers sysex (system exclusive) midimove examples midimove -ms -130 -channels 1,4 input.mid output130.mid midimove -ms +50 -channels 1-10 -events notes,pitchbend,controls,programs,sysex input.mid output50.mid midireplacetextmidireplacetext replaces META text in a MIDI file.
This tool can be applied using gnbatchexec to many MIDI files (batch conversion). usage: midireplacetext [-table=filename.rp] [-filter=typename][-match=text] [-replace=newtext] input.mid output.mid special characters can be encoded in hex e.g. -match=\x3d typenames are: all lyric text marker copyright trackname instrument devicename programname matching copyright text is only replaced in commercial version when authorized in license midireplacetext examples midireplacetext -filter lyric -match errer -replace error input.mid output.mid midireplacetext -table translation1.rp input.mid output.mid midireplacetext .rp example file Gitarre =>guitar // comment [trackname]Melodie=>melody [lyric]\228=>ae [lyric]\246=>oe [lyric]\252=>ue [lyric]\196=>Ae [lyric]\214=>Oe [lyric]\220=>Ue [lyric]\xdf=>sz [all][something else]=>[etwas anderes] \=\>=>-> [text]\\=>\///comment directly after a / character \[copyright\]=>(c) explanation of these lines: Gitarre with following space character is replaced against guitar with following space character in all text Melody is replaced against melody in track names only German latin-1 characters ä,ö,ü,Ä,Ö,Ü,ß are replaced against ascii sequences ae,oe,ue,Ae,Oe,Ue,sz in meta lyrics only text [something else] is replaced against [etwas anderes] in all text (because [all] is specified here it was not necessary to escape the [...] parts. Alternative would have been \[something else\]=>\[etwas anderes\] => is replaced against -> in all text \ is replaced against / in meta text only (usually occurs as paragraphs in .kar files but could rarely also occur as normal text in middle of text) [copyright] is replaced against (c) in all text midisummary
midisummary is a batch tool that generates HTML or text summaries of your MIDI files.
Running the same task again checks the existing summaries and generates summaries for new or modified MIDI files again. usage: midisummary [filename.ini] midisummary.ini is used by default if no argument is specified.
The options and folders are used from a .ini text file. midisummary.ini example content [options] language=english ; english or deutsch logfile=midisummary.log outputformat=HTML ; HTML or text timeformat=time ; time or milliseconds or midiunits or bar mergefiles=yes ; yes or no refresh=no ; yes or no [convert] inputfolder1=C:\Users\User\AppData\Roaming\GN MIDI Solutions\GNMIDI outputfolder1=english [sysexdefinitions] sysexdef1=default.sysexdef sysexdef2=mine.sysexdef
The MIDI files for this example are included in GNMIDI 3 demo in file menu and were composed and produced by bonmidi music company gnsummary.htm language=english outputformat=HTML timeformat=time mergefiles=yes Melodie der Heimat - bonmidi music-DEMO-gm.mid.txt language=english outputformat=text timeformat=bar mergefiles=no Melodie der Heimat - bonmidi music-DEMO-xg.mid.txt language=english outputformat=text timeformat=bar mergefiles=no language=deutsch outputformat=HTML timeformat=time mergefiles=yes Melodie der Heimat - bonmidi music-DEMO-gm.mid.txt language=deutsch outputformat=text timeformat=bar mergefiles=no Melodie der Heimat - bonmidi music-DEMO-xg.mid.txt language=deutsch outputformat=text timeformat=bar mergefiles=no midicatmidicat concatenates up to 50 binary MIDI files to play sequentially (e.g. medley). MidiCat concatenates midi files to play sequentially usage: MidiCat [-beats #[/#]] [-tact] [-noinit] [-nosep] file1.mid file2.mid ... result.mid -beats #[/#] pause between songs in quarternotes or rationals (default: 0/4) -tact filling pauses between songs must care about exact tact measure sizes -noinit no initialization between the songs -nosep no marker info between the songs midicat example midicat "Better Run.mid" "Cold Ice.mid" "Better Run and Cold Ice.mid" midimergemidimerge merges all tracks of compatible binary MIDI files to play parallel. midimerge merges tracks of more songs usage: midimerge [options] file1.mid file2.mid ... result.mid -list listfilename load the input files from a text file (each line contains an input path) -format0 generate format 0 midi file -format1 generate format 1 midi file (default) midimerge examples midimerge "coldicebass.mid" "coldicedrums0.mid" "coldice_bassdrum1.mid" midimerge "coldicebass.mid" "coldicedrums1.mid" "coldice_bassdrum0.mid" midimerge -list "mymergelist.txt" "coldice_bassdrummelody.mid" midicutmidicut copies a part between two given positions to a new MIDI file. midicut copies a part of a midi song into a new file usage: MidiCut [-q][-ch #[-#]][-from #][-till #][-units][-beats] file.mid cutfile.mid -version get program version -q be quiet -channel c[-d] copy only selected channels c..d (1-16) to output -from # start cut at second # (default: 0.0) -till # end cut at second # (default: end of song) -units #-# cut range between units # - # -beats #-# cut range between beats # - # (start of beat) -cuttext #-# remove any text before and after cut range midicut example midicut -from 0.000 -till 10.000 "Cold Ice.mid" "Cold Ice Intro.mid" midicut -channel 10 "Cold Ice.mid" "Cold Ice Drums.mid" midimuttmidimutt mutes tracks or channels of midi binaries. MidiMutt mutes by deleting or changing volume/velocity by 4 methods (c) 1998-2018 GN MIDI Solutions, Austria, https://www.gnmidi.com midimutt is no demo. Distributing tool or license is probibited. Licensed permission for noncommercial use by Max Mustermann. No permission for distribution. MidiMutt mutes by deleting or changing volume/velocity by 4 methods usage: MidiMutt [options] file.mid [newfile.mid] -version get program version -track #[-#] .. these tracks (1..255) are muted -channel #[-#] .. these channels (1-16) are muted -method=deleteevents deletes events in matching tracks/channels -method=deletenotes deletes notes in matching tracks/channels -method=silent set volume of matching channels to silent -method=silentnotes set velocity of notes in matching channels to silent -silent=value use silent value (0-127). Default is 0. midimutt example midimutt -channel 1 coldice_with_melody.mid coldice_without_melody.mid reads coldice_with_melody.mid and removes the notes of channel 1 midimutt -channel 1 -method=silent -silent=20 coldice_with_melody.mid coldice_with_silent_melody.mid changes volume of the muted channels to value 20. midimutt -track 4-6 coldice_with_melody.mid coldice_without_sometracks.mid removes the notes contained in track 4,5,6 independent of channel midistatmidistat collects statistic information from a MIDI file content. midistat collects statistic information from a MIDI file content usage: midistat filename.mid [> output] Without the > redirection it displays the information on screen. Using the > redirection the output can be written directly to a text file of given name.EXAMPLES c:\> midistat coldice8.mid coldice8.mid: 6 Tracks Track 1: Track 2: Channels: 1 Notes: d5 e5 f5 g5 a5 b5 c6 d6 e6 f6 g6-a6 b6 c7 d7 e7 f7 g7 a7 Programs: RockOrgn Velocity: 26 34 42 52 54 56 58 60 62 64 66 70 74 78 82 88 92 96 102 108 114 Volume: 122 Track 3: Channels: 10 Notes: c3 d3 f3-c#4 e4 a4 Velocity: 44 50 56 64 66 70 76 78 80 84 86 88 94 98 100 102 104 106 108 110 112 114 116 118 120 124 Volume: 100 Track 4: Channels: 2 Notes: b1 d2 e2 f2 g2 a2 b2 c3 d3 e3 c4 Programs: FngrBass Velocity: 110 114 116 118 120 122 124 Volume: 86 Track 5: Channels: 3 Notes: f3 g3 a3 c4 d4 e4 f4 g4 a4 b4 c5 e5 Programs: SteelGtr Velocity: 102 108 110 112 114 116 120 122 124 126 Volume: 73 Track 6: Channels: 4 Notes: g3 a3 c4 d4 e4 f4 g4 a4 b4 c5 d5 e5-g5 a5 Programs: BrasSect Velocity: 94 98 102 104 108 110 112 114 116 118 120 122 124 126 Volume: 58 C:\> midistat coldice8.mid > coldice8.txt c:\> dir coldice8.* 08.05.2004 18:47 42.252 coldice8.mid 07.11.2018 10:20 900 coldice8.txt miditranmiditran modifies notes,velocity,volume by a given factor. miditran modifies notes,velocity,volume by a given factor usage: miditran [-q][-channel #[-#]][-velocity #][-volume #][-note #] file.mid transpos.mid -q be quiet -velocity # apply operation # to all note velocities (-127..+127) -volume # apply operation # to all volume events (-127..+127) -note # apply operation # to all note values (-127..+127) -channel #[-#] changes are done only on these channels (1-16) -minvalue # values lower than given minvalue (0-127) are set to minvalue -maxvalue # values higher than given maxvalue (0-127) are set to maxvalue At least one of the options -velocity, -volume, -note must be used. Default are all channels. Operations: [+-=]value[] (+ add value - subtract value = assign value). velocity values are 1-127EXAMPLES c:\> miditran -note +2 -channel 1-9 11-16 coldice_MajC.mid coldice_MajD.mid transposes the notes by 2 half tones except drum channel 10. C:\> miditran -volume =100 input.mid output.mid sets volume on all existing channels (1-16) to 100. C:\> miditran -volume 40 input.mid output.mid increments volume on all existing channels by 40 (same as -volume +40). miditranmiditempo modifies tempo by constant value or by percentage of original tempo. midtempo sets tempo to constant beats/min usage: midtempo [-perc #][-bpm #][-mspb #] file.mid [newfile.mid] -version get program version -bpm # # beats per minute (40.0-240.0) -mspb # # microseconds per beat (250000-1500000) -perc # change song speed by percentage 1-200%EXAMPLES c:\> midtempo -bpm 135 "my composition1.mid" "my composition1 (new tempo).mid" sets the song tempo to 135 beats/minute C:\> midtempo -perc 80 input.mid output.mid reduces original tempo by 80% percentage (e.g. original tempo 100 bpm becomes 80 bpm) C:\> midtempo -mspb 600000 input.mid output.mid sets the song tempo to 500000 microseconds per beat (= 120 beats per minute). This allows to specify very exact tempo. midi1to0midi1to0 converts a format 1 MIDI file to format 0. It merges all tracks to a single track that contains all channels. It is required for some keyboards or applications that require to use format 0 MIDI files. usage: midi1to0 [-quiet] [-exact] srcfile.mid dstfile.mid -quiet be quiet, don't tell percentage -exact solve merging tracks with conflicting channel by refreshing all track parameters before playing notes midi1to0 merges channels into one track This program only converts format 1 midi files.EXAMPLES c:\> midi1to0 input1.mid input0.mid.
You can try the format 1 to format 0 conversion using product demos GNMIDI and GNMIDFMT. |
www.gnmidi.com | © Günter Nagler | Contact |