3 <img src="/images/rhythm-ferret.png" alt="The Rhythm Ferret window">
5 The Rhythm Ferret window
10 The Rhythm Ferret is a dedicated tool to speed up the usually labor intensive
11 task of slicing and adjusting a sound region to match a specific time grid. It is
12 especially useful for drum tracks, either to match a different tempo, or to
13 adjust a slightly out of tempo performance.
16 It is not limited to this use though, as it supports both percussive and note
17 type detection, and can be used on melodic material too.
20 <h2>Accessing the Rhythm Ferret</h2>
23 The Rhythm Ferret window can be accessed by <kbd class="mouse">right</kbd> clicking
24 any audio region, then <kbd class="menu"><em>Name_Of_The_Region</em> > Edit
25 > Rhythm Ferret</kbd>.
28 Once the window is open, selecting any region will make it the focus of the
29 Rhythm Ferret's detection, hence allowing to process multiple regions sequentially
30 without reopening the window each time.
33 The window itself is made of:
36 <li>a "mode" selection</li>
37 <li>some parameters for this mode</li>
38 <li>an operation selection, that for now only allows to <kbd class="menu">Split
43 <h2>The "Mode" selection</h2>
46 As the Rhythm Ferret is able to detect both percussive hits and melodic notes,
47 it is important to choose the best suited mode for the considered material,
48 so that Ardour can perform the detection with the greatest accuracy :
51 <li><dfn>Percussive Onset</dfn> will detect the start of each hit based
52 on the sudden change in energy (= volume) of the waveform</li>
53 <li><dfn>Note Onset</dfn> will detect the start of each note based on the changes
54 in the frequency domain.</li>
59 <h2>The Percussive Onset mode</h2>
62 In this mode, only two parameters are active:
65 <tr><th><dfn>Sensitivity</dfn> (%)</th><td>The proportion of the samples that must exceed the
66 energy rise threshold in order for an onset to be detected (at frames in which
67 the detection function peaks). This roughly corresponds to how "noisy" a percussive
68 sound must be in order to be detected.</td></tr>
69 <tr><th><dfn>Cut Pos Threshold</dfn> (dB)</th><td>The rise in energy amongst a group of samples
70 that is required for that to be counted toward the detection function's count.
71 This roughly corresponds to how "loud" a percussive sound must be in order to
72 be detected.</td></tr>
75 As those parameters are very material-related, there is no recipe for a perfect
76 match, and a good peak detection is a matter of adjusting those two parameters
77 by trial and error, and trying using the <kbd class="menu">Analyze</kbd> button
81 Vertical grey markers will appear on the selected region, showing where Ardour
82 detects onsets as per the parameters. This markers can be manually adjusted, see
86 <h2>The Note Onset Mode</h2>
89 In the Note Onset mode, more parameters are active:
92 <tr><th><dfn>Detection function</dfn></th><td>The method used to detect note changes. More on
94 <tr><th><dfn>Trigger gap (postproc)</dfn> (ms)</th><td>Set the minimum inter-onset interval,
95 in milliseconds, i.e. the shortest interval between two consecutive onsets.
97 <tr><th><dfn>Peak threshold</dfn></th><td>Set the threshold value for the onset peak picking.
98 Lower threshold values imply more onsets detected. Increasing this threshold
99 should reduce the number of incorrect detections.</td></tr>
100 <tr><th><dfn>Silence threshold</dfn> (dB)</th><td>Set the silence threshold, in dB, under which
101 the onset will not be detected. A value of -20.0 would eliminate most onsets
102 but the loudest ones. A value of -90.0 would select all onsets.</td></tr>
106 The Detection function, used in Note Onset mode to choose the mathematical strategy
107 used to detect the note changes, is user-selectable:
110 <tr><th><dfn>Energy based</dfn></th><td>This function calculates the local energy of the input
111 spectral frame</td></tr>
112 <tr><th><dfn>Spectral Difference</dfn></th><td>Spectral difference onset detection function
113 based on Jonathan Foote and Shingo Uchihashi's "The beat spectrum: a new
114 approach to rhythm analysis" (2001)</td></tr>
115 <tr><th><dfn>High-Frequency Content</dfn></th><td> This method computes the High Frequency
116 Content (HFC) of the input spectral frame. The resulting function is efficient
117 at detecting percussive onsets. Based on Paul Masri's "Computer modeling
118 of Sound for Transformation and Synthesis of Musical Signal" (1996)</td></tr>
119 <tr><th><dfn>Complex Domain</dfn></th><td>This function uses information both in frequency and
120 in phase to determine changes in the spectral content that might correspond
121 to musical onsets. It is best suited for complex signals such as polyphonic
122 recordings.</td></tr>
123 <tr><th><dfn>Phase Deviation</dfn></th><td>This function uses information both energy and in
124 phase to determine musical onsets.</td></tr>
125 <tr><th><dfn>Kullback-Liebler</dfn></th><td>Kulback-Liebler onset detection function based on
126 Stephen Hainsworth and Malcom Macleod's "Onset detection in music audio
127 signals" (2003)</td></tr>
128 <tr><th><dfn>Modified Kullback-Liebler</dfn></th><td>Modified Kulback-Liebler onset detection
129 function based on Paul Brossier's "Automatic annotation of musical audio for
130 interactive systems" (2006)</td></tr>
134 Ardour defaults to Complex Domain, which usually gives good result for harmonic
138 <h2>Manual adjustment</h2>
141 <img src="/images/rhythm-ferret-demo-a.png" alt="The Rhythm Ferret: analysing">
142 <img src="/images/rhythm-ferret-demo-b.png" alt="The Rhythm Ferret: Splitting">
143 <img src="/images/rhythm-ferret-demo-c.png" alt="The Rhythm Ferret: Snapping to grid">
145 The Rhythm Ferret: Analyzing, Splitting regions, and snapping to grid
150 Using the Rhythm Ferret consists usually in finding the right parameters to
151 split the audio, by adjusting them and clicking the
152 <kbd class="menu">Analyze</kbd> button. Each time an analysis is run, Ardour
153 erases the previous results, and creates grey markers on the region according
154 to the parameters. Those markers can be manually dragged with the
155 <kbd class="mouse">LEFT</kbd> mouse button to adjust their positions.
158 Once the markers are suitably placed, the second button in the down hand side
159 of the Rhythm Ferret window allows to <kbd class="menu">Apply</kbd> the operation.
160 At the moment of writing, only the <kdb class="menu">Split Region</kdb> is
161 available, which will split the region at the markers.
164 Those regions can then be manually aligned, or have their sync points set to
165 the closest grid (as per the <a href="@@grid-controls">Grid settings</a> in
166 effect), by selecting all the regions, and using the
167 <kbd class="mouse">right</kbd> click then <kbd class="menu">Selected Regions > Position >
168 Snap position to grid</kbd>.