forked from naudio/NAudio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmidi_file_converter.html
307 lines (303 loc) · 18.6 KB
/
midi_file_converter.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MIDI File Converter</title>
</head>
<body>
<h1>MIDI File Converter</h1>
<p>
MIDI File Converter is a utility designed to convert the MIDI file library
included with Toontrack's <a href="http://www.ezdrummer.com">EZdrummer</a> virtual
instrument from MIDI type 0 to MIDI type 1, with a customisable name as the track
1 name. This has the advantage that users of Cakewalk's <a href="http://www.cakewalk.com">
SONAR
</a> will find that the MIDI clips created when they drag and drop into
the track pane are given a meaningful default name. It also supports the option
to leave the files as type 0 and simply change the track name, which is supported
by SONAR 6 and above.
</p>
<p>This utility has now been expanded to alter other MIDI files
that you might be using with EZD to adjust their end time markers so that they loop
correctly with EZdrummer's built in loop browser. (EZD version 1.0.3 introduced
some problems in this area).</p>
<h2>
Download</h2>
<p>
A link to the latest version of MIDI File converter can be found <a href="http://www.codeplex.com/naudio">
here</a>.</p>
<h2>
Installation and Requirements</h2>
<p>
MIDI File Converter requires the .NET framework version 2.0 to be installed.
You can download this <a href="http://msdn.microsoft.com/netframework/downloads/updates/default.aspx">
here</a>. Once you have done this you can run the installer (or download the zip archive,
decompress it and run <b>MIDI File Converter.exe</b>).</p>
<h2>Settings</h2>
<img src="http://i63.photobucket.com/albums/h146/markheath/emc_0_2.png" alt="MIDI File Converter Screenshot" />
<h3>Input Folder</h3>
<p>
Normally you would choose the EZdrummer MIDI folder as the input folder. This is
typically located at <b>C:\Program Files\Toontrack\EZDrummer\Midi</b>. However, if you
want to specifically choose which MIDI files will be processed, you can select a
subfolder or a new folder into which you have copied in the exact files you want to be processed.</p>
<h3>
Output Folder</h3>
<p>
MIDI File Converter will not modify any existing files or folders on your PC.
What it does is recreates all the contents of the input folder into an empty output
folder you have specified. This folder must be initially blank, and its contents
can be copied into the Toontrack MIDI folder when you have finished the conversion
(you must do this part yourself).</p>
<h3>
Clip Naming</h3>
<p>
These settings govern the clip name you will see when dragging into your host sequencer.
Please note that in certain circumstances, EZD will generate its own clip name instead
of the one in the file. You will need to experiment with your own host sequencer
to see how it behaves.</p>
<p>
If the <b>Apply XML Naming Rules to Toontrack EZD Patterns</b> option is selected, then
whenever a MIDI file that was supplied with EZdrummer is processed, it will be given
a MIDI clip name that is calculated according to the rules in the NamingRules.xml
file (see "Advanced Customisation" below for more details). This setting is turned
on by default.</p>
<p>
If the <b>Use filename for other MIDI patterns</b> option is selected, then all other
MIDI files in the input folder will have their clip name set to the name of the
file (minus the .mid extension). This setting is on by default. If you turn it off,
MIDI files will retain whatever clip names they already had (which may be blank).</p>
<h3>
MIDI Note Channel</h3>
<p>
You will normally want to leave MIDI notes on whatever channel they were already
on. However, you can move them all to track 1 to be just like the ones in the included
EZD libraries. Or you can move them all to track 10, so that when you play them
in Windows Media Player, or through a GM module, it will play drum sounds instead
of piano sounds.</p>
<h3>
Output File Type</h3>
<p>
MIDI File Converter was written to convert Toontrack's type 0 files into type
1, so that their clip names would display correctly in SONAR 5. However, users of
different hosts may find that they can use type 0 without problems. Choose type
1 to force all MIDI files to type 1, type 0 to force them all to type 0, and leave
unchanged if you want them to stay as they are.</p>
<h3>
Verbose Output</h3>
<p>
Select this option if you want a detailed run-down of everything that EZdrummer
MIDI Converter is doing. If it is turned off, you will still be informed of any
errors encountered.</p>
<h2>
How to make MIDI clip names appear in SONAR</h2>
<p>Note: these are for users of SONAR 5 or previous versions. SONAR 6 can display
EZdrummers own clip names. You may still be able to use this utility with SONAR 6 though
if you want to customise what those clip names will be.</p>
<ul>
<li>First, make sure you have no running instances of EZdrummer.</li>
<li>MIDI File Converter will not modify, delete or rename any files on your computer.
It will only create new ones. So now, create an empty folder somewhere to contain
the created library. A good example would be on your desktop, in a subfolder called
Midi.</li>
<li>Make sure that the EZdrummer MIDI folder is pointing at EZdrummer's own MIDI folder.</li>
<li>Point the output folder at your desired output path. MIDI File Converter will
insist that this is a blank folder, to avoid confusion.</li>
<li>You want to select type 1 as the ouput file type.</li>
<li>If you have user MIDI files you would like to be given clip names as well then select
the <b>Use filename for other MIDI patterns</b> option.</li>
<li>By default Apply XML Naming Rules is enabled. If you turn this off, the track name
for converted EZdrummer MIDI files will simply be the filename minus the .mid extension.
It is possible to extensively customise the naming rules, but this is for advanced
users only. See the next section for more details. If you just have the EZdrummer
included MIDI files, and no expansion packs, the default naming rules will probably
be just fine for you.</li>
<li>When you are ready, click Convert. The process will take a few minutes, depending
on the speed of your computer.</li>
<li>When it has finished, you will be informed of how many files were processed, as
well as the number of errors encountered. If you have any errors at all, it is recommended
that you report them to <a href="mailto:[email protected]">[email protected]</a>.
</li>
<li>If you are happy that the output folder contains the MIDI files you want, you are
ready to replace EZdrummer's MIDI files with the converted ones. <b>Please make a backup
first</b>. One way would simply be to rename the existing MIDI folder to something
else (e.g. Original MIDI).</li>
<li>Now copy the entire contents of the output directory into the Toontrack MIDI folder
(by default this will be <b>C:\Program Files\Toontrack\EZDrummer\Midi</b>.</li>
</ul>
<h2>
How to make user MIDI files loop correctly in EZD 1.0.3</h2>
<ul>
<li>First, copy all the folders of MIDI files that have the looping problem into an
empty folder. This will be your input folder.</li>
<li>Create another blank folder to use as your output folder.</li>
<li>If you would like them to be given MIDI clip names based on their filename at the
same time, ensure that "Use filename for other MIDI patterns" is selected.</li>
<li>You can also take the opportunity to modify the MIDI file type or the channel number
for the notes. This may be helpful depending on your host.</li>
<li>You may also wish to turn on some options in the advanced options screen, available
on the <b>Tools</b> menu.</li>
<li>When you are ready click <b>Convert</b>. If the process completes without errors, you can
replace your user MIDI files with those in the output folder.</li>
</ul>
<h2>
Advanced Customisation</h2>
<p>
MIDI File Converter allows extensive customisation of the filenames it creates.
If you are comfortable with editing XML files and using regular expressions, you
will be able to customise these settings. This allows the flexibility to support
any EZX expansion pack MIDI files you may purchase. The settings are all stored
in <b>NamingRules.xml</b>, which should be in the same folder as the EZdrummer MIDI
Converter application. Please be careful modifying these settings and always check
that the output is what you wanted before replacing your EZdrummer MIDI files.</p>
<ul>
<li><b>General Settings</b> - This section contains some global settings. Do not change
the order of the keys in this section.</li>
<li><b>FilenameRegex</b> - This pattern is matched against all the filenames. If a match
is found, then MIDI File Converter considers this to be an EZdrummer MIDI file,
and will attempt to apply naming rules. The default setting looks for a filename
that starts with one uppercase letter followed by an @ symbol. You only need to
change this setting if files you wanted naming rules applied on are being missed
out, or files you didn't want the naming rules applied on were being included.</li>
<li><b>ContextDepth</b> - This is the number of components (folders and filename) that
will be used to formulate the track 1 name. This is normally set to 3 (4 is the
maximum), but can be set lower if desired.</li>
<li><b>ContextSeparator</b> - This string will be inserted between the converted name
of each item in the context hierarchy. If the naming rules have caused the length
of a section to be set to zero, then the context separator is not added. The default
will be just fine for most people.</li>
<li><b>Rules</b> - The rules section allows you to specify a number of string substitutions
to be applied to each part of the name. This consists of two parts - the <b>SearchString</b>
and the <b>Replacement</b> (see below). Each rule is applied in turn on each folder
name or filename used to form the track name. The order is very important in this
section - the rules will be applied in the order they appear in the NamingRules.xml
file.</li>
<li><b>SearchString</b> - this is a regular expression that defines a string to look
for within the file or folder name.</li>
<li><b>Replacement</b> - this is a literal string that will replace all occurences of
the search string in the file or folder name being processed.</li>
</ul>
<p>
Some example rules from the default NamingRules.xml file:</p>
<code><Rule><br />
<SearchString>^[0-9A-Z]+\@[0-9][0-9]\.</SearchString><br />
<Replacement></Replacement><br />
</Rule> </code>
<p>
This rule looks for all file or folder names that start with one or more digits
or upper case letters followed by an @ sign, followed by exactly two digits and
then a full stop. It replaces it with a blank string. This effectively strips off
the start of EZdrummer folder and filenames.</p>
<code><Rule><br />
<SearchString>POP/ROCK</SearchString><br />
<Replacement>P/R</Replacement><br />
</Rule> </code>
<p>
This rule abbreviates any instances of the upper case string "POP/ROCK" to "P/R".
Note that this will only operate if it follows the rule that converts the '#' character
to a '/' character.</p>
<code><Rule><br />
<SearchString>GROOVE </SearchString><br />
<Replacement>G</Replacement><br />
</Rule> </code>
<p>
This rule abbreviates any instances of the upper case string "GROOVE" followed by
a trailing space to simply "G". Note that this only works because we have already
converted all underscore characters to spaces with a previous rule.</p>
<code><Rule><br />
<SearchString>SAMBA</SearchString><br />
<Replacement></Replacement><br />
</Rule> </code>
<p>
The Samba MIDI files included with the Cocktail kit EZX will have the word Samba
in their name twice by default. This rule strips out the fully capitalised folder
name, so the mixed case "Samba" in the filename can be used on its own.</p>
<h2>
Advanced Options</h2>
<p>
There are some extra settings available that may be useful for some third party
add-on MIDI libraries. These are accessed from the Tools menu. They are recommended
for advanced users only. Messages will appear in the output window to inform you
of these settings being modified from their default values.</p>
<ul>
<li><b>Remove Sequencer Specific Events</b> - The Toontrack EZD files each have a sequencer
specific event in them. I don't know what it is for, but you can remove it if you
want (maybe to trick EZD into thinking this is a user file instead). Default is
<b>False</b>.</li>
<li><b>Recreate End Track Events</b> - This is what will fix most looping issues in
EZD v1.03. It deletes the existing end track markers and puts new ones in that fall
exactly after the last note event. Default is <b>True</b>. If this is set to False,
then end track markers are left exactly where they were.</li>
<li><b>Add Name Marker</b> - In addition to naming the tracks, this will add a marker
to track zero with the name of the clip. Any existing markers at position 0 on track
0 will be removed. Default is <b>False</b></li>
<li><b>Trim Text Events</b> - Trims the whitespace of Text events and removes them if
they are zero length. Default is <b>False</b></li>
<li><b>Remove Empty Tracks</b> - If the input file is type 1 and has tracks containing
no note events, these tracks can be removed. The control track and the first track
are never removed. Default is <b>False</b>.</li>
<li><b>Remove Extra Tempo Events</b> - Most MIDI files have just one tempo event on
the first tick. This option removes any subsequent ones (this is sometimes needed
to fix the looping issue in EZD v1.0.3). Default is <b>False</b>.</li>
<li><b>Remove Extra Markers</b> - This will remove any markers that are not at the first
tick. This is sometimes needed to fix the looping issue in EZD v1.0.3. Default is
<b>False</b>.</li>
</ul>
<h2>
Notes</h2>
<ul>
<li>This software is not affiliated in any way with Toontrack. It is not guaranteed
to work on future versions of EZdrummer, or with EZX expansion packs (although I
expect it will work just fine).</li>
<li>I recommend that if you are installing any patches or updates to EZdrummer, that
you restore the original Midi directory before doing so, and then re-run the EZdrummer
MIDI Converter afterwards.</li>
<li>If you have some user MIDI patterns that you do not want MIDI File Converter
to attempt to convert, simply remove them from the input directory before running
the conversion process. You do not have to point it to the real EZdrummer MIDI directory
if you don't want to. You could create your own folder with only the files you want
converted in.</li>
<li>For the technically inclined, here is an explanation of what happens to your MIDI
events when converting to type 1. All meta-events are placed on track 0. All note
events are placed on track 1. In addition a track name (the one worked out by the
naming rules) and a track end marker are added to track 1.</li>
</ul>
<h2>
Version History</h2>
<p>
The latest version of MIDI File Converter can be found at <a href="http://www.codeplex.com/naudio">
http://www.codeplex.com/naudio</a>.
</p>
<ul>
<li>v0.1 9 Oct 2006
<ul>
<li>First public beta release</li>
</ul>
</li>
<li>v0.2 2 Nov 2006
<ul>
<li>Now processes all MIDI files in the input folder, rather than just copying type
1</li>
<li>Allow processing of non-EZD files (to move end track markers to work with EZD v1.03)</li>
<li>Ability to select output file type</li>
<li>Both tracks in a type 1 file will be given the same track name</li>
<li>An advanced options dialog added with extra options</li>
<li>Can optionally force all MIDI note events onto channel 1 or 10</li>
<li>Properly handles non-ASCII characters (such as copyright symbol)</li>
<li>Has an installer</li>
<li>Can save the conversion log</li>
</ul>
</li>
<li>v0.3 16 Mar 2007
<ul>
<li>Name changed to MIDI File Converter to reflect its use for more general-purpose tasks</li>
<li>Fixed a bug where track 1 didn't have an end track marker when converting from type 0 to type 1</li>
</ul>
</li>
<li>v0.4 - t.b.a.
<ul>
<li>Fixed a sysex writing bug</li>
<li>Better preserving of event ordering</li>
</ul>
</li>
</ul>
</body>
</html>