3 <img src="/images/patch_change.png" alt="A patch change in a MIDI region"/>
4 <figcaption>A patch change in a MIDI region</figcaption>
8 A <dfn>patch change</dfn> is Ardour's description for a combination
9 of MIDI program change and bank select messages, that (typically)
10 instruct a synthesizer or sampler to select a different sound to use
11 on a particular channel.
14 Patch changes are shown within MIDI regions as small rectangles or
15 <dfn>flags</dfn>, with a vertical line showing where in the region
16 (hence "when") this patch change happens.
19 <h2>Inserting Patch Changes</h2>
21 To insert a patch change, the <a href="@@edit-point-control">edit point</a>
22 should be located where the patch change should be (within an existing MIDI
23 region). When <kbd class="mouse">right</kbd> clicking, and from the MIDI
24 region's context menu, selecting <kbd class="menu">MIDI > Insert Patch
25 Change</kbd>, a dialog appears allowing to set the bank and program values.
28 <h2>Modifying Patch Changes</h2>
30 Context-clicking on a patch change will bring up the same dialog that
31 was used to create it, allowing to modify the program and/or bank
35 The mouse wheel can also be used: <kbd class="mouse">⇑</kbd>/<kbd
36 class="mouse">⇓</kbd> on the patch change will alter the program
37 number, <kbd class="mouse mod1">⇑</kbd>/<kbd
38 class="mouse mod1">⇓</kbd> will modify the bank number.
41 <h2>Moving Patch Changes</h2>
43 Just <kbd class="mouse">Left</kbd>-dragging the patch change moves it
47 <h2>Removing Patch Changes</h2>
49 Pressing <kbd>Del</kbd> with the mouse pointer into the rectangular area, or
50 using the <kbd class="menu">delete</kbd> mouse button operation will remove the
51 patch change (the operation can be undone).
54 <h2>Names for Patch Numbers: MIDNAM files</h2>
56 MIDNAM files assign human-redable names to the "coordinates" (MSB, LSB, pc) of
57 instruments and controls of MIDI-devices. Quite some files already come pre-bundled
58 with Ardour. Should this not be the case for your device, you can add your own (see below).
61 <h3>Selecting a device</h3>
63 For the proper names to show up in the "Patch Selector"-dialog, you have to assign a
64 device to your current track. To do so, hover the lower border of the tracks header
65 (the mouse-cursor will change to a "resize-cursor") and expand it.
66 You'll see dropdown menus. Select your device in the menu.
69 <h3>Adding a custom MIDNAM-file</h3>
71 MIDNAM-files are XML-Files. You can edit them using your favorite text-editor. When
72 doing so, please ensure to change the "Model" of the device, as Ardour will only load
73 each model once (i.e. it will skip files, if there are clashes).
76 After you have done modifications to a file, it's a good idea to validate it. This can
77 be done using the tool <i>xmllint</i> as shown below:
79 <pre><code class="bash">
80 $ xmllint --valid --noout myfile.midnam
81 $ wget http://www.midi.org/dtds/MIDINameDocument10.dtd
82 $ xmllint --dtdvalid MIDINameDocument10.dtd myfile.midnam
85 Once you are satisfied with your file, you have to put it at a location where Ardour
86 picks it up. The best place would be the (hidden) directory
87 <i>.config/ardour5/patchfiles/</i>
88 in your home-folder. Should the sub-directory <i>patchfiles</i> not exist yet, just
89 create it. The path and file-names are case-sensitive. The file should end with
93 After restarting Ardour, hit the small Log-button in the upper right corner of the
94 main window. It should say something like:
96 <pre>[INFO]: Loading 3 MIDI patches from /home/username/.config/ardour5/patchfiles</pre>
98 The added device should now show up in the dropdown mentioned in the previous paragraph.
101 Should the MIDNAM-file be useful for the general public, it would be nice to share it:
102 Fork the Ardour-project on <a href="https://github.com/Ardour/ardour">gitHub</a> by
103 hitting the "Fork"-Button. Go to the <a>patchfiles</a>-directory (and read the README).
106 You can upload the file using the Web-Interface. Be sure to select
107 "<i>Create a new branch for this commit and start a pull request</i>".