October 2024: Fractal Audio's VP4 Virtual Pedalboard has been added to the wiki.
Difference between revisions of "Pitch block"
Line 270: | Line 270: | ||
Pitch shifting necessarily adds latency. Pitch shifting is a perceptual process. It requires a reasonable amount of history to work. This adds latency. Typically 20ms and up. Some people are more tolerant to latency than others. I've compared the latency of our algorithm to other products and ours is equal or better but there is latency in any pitch shifter. | Pitch shifting necessarily adds latency. Pitch shifting is a perceptual process. It requires a reasonable amount of history to work. This adds latency. Typically 20ms and up. Some people are more tolerant to latency than others. I've compared the latency of our algorithm to other products and ours is equal or better but there is latency in any pitch shifter. | ||
− | + | All pitch shifters have tradeoffs. The lower the latency the more prone they are to tremolo artifacts, double transients and other issues. Solving those issues increases the latency and the computational burden. The only pitch shifting algorithm that has negligible latency is the "Rollers" algorithm but that requires insane amounts of CPU and the samples I've heard aren't impressive. It also has its share of issues (smearing, chirping). | |
</blockquote> | </blockquote> | ||
Line 317: | Line 317: | ||
[https://forum.fractalaudio.com/threads/axe-fx-iii-firmware-1-19-public-beta.144260/post-1707587] | [https://forum.fractalaudio.com/threads/axe-fx-iii-firmware-1-19-public-beta.144260/post-1707587] | ||
To do polyphonic pitch shifting well you need around 50 ms of history. So nominally the delay will be half that, 25 ms. If you set the detector to Mono the latency will be less but it won't track chords, especially complex ones, as well due to lack of correlation in the history buffer. | To do polyphonic pitch shifting well you need around 50 ms of history. So nominally the delay will be half that, 25 ms. If you set the detector to Mono the latency will be less but it won't track chords, especially complex ones, as well due to lack of correlation in the history buffer. | ||
+ | </blockquote> | ||
+ | |||
+ | <blockquote> | ||
+ | [https://forum.fractalaudio.com/threads/axe-fx-iii-firmware-27-00-public-beta-8.207827/page-9#post-2595216] | ||
+ | Latency is variable because the best splice point is variable. | ||
</blockquote> | </blockquote> | ||
Revision as of 19:15, 10 September 2024
Contents
Available on which products
- Axe-Fx III: 2 blocks
- FM9, FM3: 1 block
- Axe-Fx II: 2 blocks
- AX8, FX8: 1 block
FRACTAL AUDIO QUOTES
FM3:
[1] The pitch block was updated in 5.xx. The pitch detector still isn't up to Axe-Fx III standards but it still works well. There simply isn't enough horsepower to run the Axe-Fx III pitch detector without sacrificing the number of simultaneous effects.
Channels or X/Y
- Axe-Fx III, FM9, FM3: 4 channels
- Axe-Fx II, AX8, FX8: X/Y
Pitch types
Pitch types in the Axe-Fx III, FM9 and FM3:
- Advanced Whammy
- Arpeggiator
- Classic Whammy
- Crystal Echoes
- Custom Shifter
- Dual Chromatic
- Dual Detune
- Dual Detune Delay
- Dual Diatonic
- Octave Divider
- Quad Chromatic
- Quad Chromatic Delay
- Quad Detune
- Quad Diatonic
- Quad Diatonic Delay
- Virtual Capo
See Harmonizing leads with the FM9
for more information about diatonic and chromatic harmonies and custom scales.
Also see Wikipedia's Pitch shifting
article.
Chromatic: Dual / Quad
The Ares firmware and later versions replaced the Fixed Harmony mode with:
- Dual Chromatic (2 voices). Previously: Dual Shift
- Quad Chromatic (4 voices). Previously: Quad Shift
Note that Quad Chromatic doesn’t have Feedback parameters.
Diatonic: Dual / Quad
The Ares firmware and later versions replaced the Intelligent Harmony mode with:
- Dual Diatonic (2 voices). This was previously called
Dual Harmony
. - Quad Diatonic (4 voices). This was previously called
Quad Harmony
.
Octaver
The devices offer several ways to create an Octaver (octave down) effect:
- Pitch block: fixed shifted pitch, 1 octave down
- Pitch block: Octave Divider type
- Ring Modulator block in Tracking mode
The results sound different. The Octave Divider sounds slightly like a synth, where a fixed harmony adds identical lower or higher harmony notes at fixed intervals. The Ring Modulator sounds vintage.
FRACTAL AUDIO QUOTES
[2] The octave divider algorithm is just a synthesizer with an aggressive lowpass filter (it simply generates two square waves based on the frequency of the global pitch detector). It is designed to sound like
vintageoctave dividers but with far better tracking and without the undesirable glitching. Therefore it is operating and sounding as intended. If you desire a different sound I recommend using the Synth block.[3] To get that OC-3 sound you'll want to use the OCTAVE DIV mode in the pitch block. The OC-3 is an octave divider. It uses flip-flops to create synthesized waveforms that are sub-multiples of the input frequency. The regular pitch modes will not sound the same. The OC-3 also adds distortion though. You may want to put a drive block in there somewhere.
[4] The Octave Divider on the Axe-Fx is a recreation of the old analog octave dividers. It's supposed to sound all glitchy and funky.
Detune (micropitch)
Pitch detuning is a great alternative to a chorus, without the swirl
associated with 80's chorus tone. Use it in stereo for a very wide effect. Van Halen's sound on the Balance
album is well-known example of stereo pitch detuning.
- Detune up and down the same amount, between +/-5 and +/-10.
- Delay the voices for more width (i.e. 7 ms).
- Set mix at 25% or lower.
- Put the block after the Amp block but before the stereo Cab block.
- Pan the voices for a wide stereo effect.
Try running a Chorus block before or after the Pitch block for a more intense effect.
Beware of Phase cancellation when running mono.
Firmware Ares and later has two Detune modes:
- Dual Detune (2 voices)
- Quad Detune (4 voices)
The Multitap Delay block in firmware Ares and later is also capable of multi-voice detuning.
Firmware 19.03 for the Axe-Fx III and corresponding FM3 and FM9 firmware added a Dual Detune Delay type. This type is comprised of two detuners with delay up to 2.0 seconds. Each detuner can feed back to itself and/or the other detuner.
Whammy
Use the Classic Whammy pitch type, and attach a pedal as an External controller to the Control parameter. Make sure that the pedal is calibrated.
Use Auto-Engage in the modifier menu to automatically engage the Pitch block.
You can engage a Whammy on the fly without using Auto-Engage (Golden Whammy
, M@'s idea, [5]). It's demonstrated as part of the factory preset JS410
(firmware Cygnus 16.00 and later).
See these videos for more information:
Tip: increase the Scale parameter in the modifier menu a little to create some flat
space at the top, so the octave arrives earlier and stays put.
Decrease the max frequency of the pitch-shifted voice to 5 kHz, or even much lower, like 2 kHz, to make it less digital
and less thin.
FRACTAL AUDIO QUOTES
About the original Whammy pedal:
[6] I would venture to guess that the pedal sample rate is low, like maybe 11 kHz. This limits the frequency response to 5K. Higher sampling rates mean more processing power which means more expensive DSP. These things were designed to be inexpensive.
OTHER QUOTES
Forum member Moke:
[7] Try adding a Filter block right after the Pitch/Whammy block. Use the 'Lowpass' type. Attach the same controller that you are using for the Whammy control to the 'Frequency' parameter in the Filter block. Use it to cut the increasing high-end as the pitch is raised. Set it up with a Min frequency of 20,000 Hz, and a Max of 1000 Hz. All other settings default. Setup both blocks to Engage at the same time.
Drop-tuning and virtual capo
Axe-Fx III, FM9, FM3:
Use the Virtual Capo mode in the Pitch block in the Ares firmware and later, for drop-tuning as well as virtual capo. Put the Pitch block in series at the start of the grid.
AX8, FX8, Axe-Fx II:
- Put a Pitch block in series at the start of the grid.
- Set it to Fixed Harmony.
- For a drop of two semitones set one voice to -2.
- Set the other voice's Level to -80 to mute it.
- Set Mix to 100%, Tracking to On, Pitch Track to Poly.
You can also use the Advanced Whammy mode in the Pitch block. It sounds and works the same but is a little easier to configure.
To decrease latency:
- lower the Tracking setting
- try
Simeon's ADSR trick
FRACTAL AUDIO QUOTES
This is a simple one-voice pitch shift that is intended for drop-tuning and virtual capo use and is easy to configure and use.
To maintain the engaged or bypassed state of the Virtual Capo through scenes changes, assign a Control Switch to the block's Bypass parameter, or use the Scene Ignore function.
To find examples of presets with droptuning, search the Factory presets page for drop
.
Crystal Echoes
Smooth the Crystal Echoes effect by fading in the effect: assign the Envelope Controller to the Input Gain parameter.
Custom scales
The Custom Pitch type uses the values on the Custom Scales page in the Global Settings menu.
It's important to understand how Custom Scales work. You must temporarily transpose the part to the key of A, and program the custom scales based on that key. After doing that, enter the correct key for the part in the parameter field.
See the forum's Custom Harmony Issues
thread for more information.
Pitch block position on the grid
If you want to add harmonies to your main signal, put the Pitch block between the Amp and Cab block for best results. As demonstrated in the factory preset LONELY HEART. Alternatively (Axe-Fx only), split the signal into two rows before the Amp block, and put Pitch and a 2nd Amp block in the other row.
If you want to shift the entire amp signal (100% wet), e.g. for downtuning, put Pitch before the Amp block.
FRACTAL AUDIO QUOTES
[8] When going direct, pitch shifting often sounds best when placed BEFORE the Cab block.
The factory presets may have the block doing the shifting (pitch or multidelay) after the Cab block. Try moving the pitch before the Cab for smoother results.
[9] I'll use the harmonizer in front of the amp too -- but it needs to be 100% wet, single voice, and a dedicated amp. The less you shift distortion, the more natural it sounds.
[10] Yes, it's always better to have individual paths for the harmonies. If you put the harmonizer before distortion you'll get intermodulation products. After the distortion and you'll harmonize the overtones. After sounds better than before but separate processing paths sound best.
OTHER QUOTES
Forum member Bakerman:
[11] The pitch block basically shifts the entire cab freq. response up/down if it's after cab. A slight detune might sound about the same either way but with a half step, whole step, etc. the difference becomes more apparent.
CPU usage and latency
FRACTAL AUDIO QUOTES
Axe-Fx III:
[12] Pitch shifting necessarily has latency. You need a history buffer big enough to contain at least one period at the lowest frequency you want to be able to shift. 19ms isn't bad and corresponds to about 53 Hz. Probably actually around 60 Hz as some of that latency is A/D and D/A conversion time and frame buffering.
If you want a "polyphonic shifter" you need a buffer that is large enough to hold an entire "period" of the waveform. This period, which we define as the maximum autocorrelation time, may be much greater than the period of the lowest note played. I.e., if you play an open E chord the period will usually be much less than 1/82. Some chord shapes result in very long periods, particularly those with dissonant intervals, e.g. major 7.
The shorter the buffer the less latency but the more tremolo effect will be introduced due to imperfect correlation at the splice point. The longer the buffer the less tremolo effect but the greater the latency.
[13] I doubt AI could do much about latency. The problem with pitch shifting is you have to know what has already been played. You need a history of the audio before you can do anything.
You can improve the quality of pitch shifting dramatically but that comes at the expense of increased latency, usually greatly increased. Melodyne, for example.
Pitch shifting falls into two methods: time domain and frequency domain. In time-domain pitch shifting you buffer up a short history of the audio and play it back either faster or slower depending if you want to shift up or down. You can't start playing back until you have buffered up some audio so you get latency proportional to the buffer size. On average about half the buffer size since you overlap snippets and crossfade.
In frequency domain shifting you take the FFT of the audio, process the FFT and take the inverse. To take the FFT you need a decent size history so, again, you have latency. The most common FFT approach is the phase vocoder. I spent a lot of time working on a phase vocoder pitch shifter and the latency was much worse than time-domain approaches. For any significant shift you need a large analysis window.
[14] […] Pitch detection is a difficult problem. Polyphonic pitch detection is orders of magnitude more difficult. Real-time pitch detection is much more difficult than non-real-time. Polyphonic real-time pitch detection is nearly impossible. A low E has a period of about 12 ms. This means you have to buffer at least 12 ms to shift anything from low E and up. To also work with bass then low E is 24 ms.
[15] Pitch shifting necessarily adds latency. Pitch shifting is a perceptual process. It requires a reasonable amount of history to work. This adds latency. Typically 20ms and up. Some people are more tolerant to latency than others. I've compared the latency of our algorithm to other products and ours is equal or better but there is latency in any pitch shifter.
All pitch shifters have tradeoffs. The lower the latency the more prone they are to tremolo artifacts, double transients and other issues. Solving those issues increases the latency and the computational burden. The only pitch shifting algorithm that has negligible latency is the "Rollers" algorithm but that requires insane amounts of CPU and the samples I've heard aren't impressive. It also has its share of issues (smearing, chirping).
[16] To do polyphonic pitch shifting well you need around 50 ms of history. So nominally the delay will be half that, 25 ms.
[17] You can do really good pitch shifting if you don't care about real time. The FFT phase vocoder is capable of excellent results but the latency is far too great for real time use.
Once you get into real time constraints things become MUCH more difficult. So we have to do it in the time domain which is much less forgiving.
[18] All real time pitch shifters display some degree of tremolo on certain chords. Ours is better than most. The worse your guitar's intonation the more tremolo.
[19] The way real time pitch shifting works is the input is split up into "granules" which are little snippets of audio. Those granules are played back either faster or slower to shift the pitch up or down respectively. An analog analogy is a tape recorder with rotating heads. As these heads rotate they eventually leave the tape and the other head enters. As this happens the heads crossfade. If the audio isn't perfectly correlated during the crossfade the amplitude will vary. This causes the tremolo. The pitch detector's job is to find the pitch so that the audio is correlated during the crossfade.
If your intonation is off the correlation will be weak during the crossfade causing more tremolo.
Pitch shifting isn't perfect, especially in real time. It's a perceptual process. It's not like solving equations or modeling amplifiers. It's about fooling the human auditory system. So any pitch shifter is going to have some level of artifacts. In my comparisons with other products I feel these latest algorithms are among the best. I compared my Eventide Eclipse, Kemper and Digitech Whammy DT.
The Eclipse is the weakest of the bunch. It tracks very slow which causes artifacts when you change the note you are playing. It does, however, track complex chords well. For example, if you are playing a harmony the harmony will change from, say, a major 3rd to a minor 3rd depending upon the note you are playing. The slow tracking causes the shifter to sound the wrong interval for a bit until the tracking catches up. So you get a pitch "blip" when you change notes. It has a pleasant characteristic sound which has an almost bell-like quality that makes it useful for certain special effects.
The Kemper has pretty good shifting and tracks much faster than the Eclipse. It exhibits the most tremolo of all the devices tested (I know why this happens but I'm not about to spill the beans :) ) It struggles, however, with chords. If you play a D/F# (the classic pitch shifter stress test chord) it goes all wonky because it can't figure out the pitch. This is because it's pitch detector window is too short. It has a "smooth chords" mode which doubles the window length but then the latency becomes much greater and the tracking much slower. It also has a formant shifting feature but in my tests it's all but useless. It only works with single notes, adds a lot of latency and doesn't really sound convincing.
The Whammy DT is an interesting device. It exhibits almost no tremolo effect regardless of the chord played. The Eclipse, Kemper and Axe-Fx all have similar sounding shifting. IOW they seem to be based around similar algorithms implemented to varying degrees of success. The Whammy has a fundamentally different sound. This is both good and bad. The lack of tremolo is good. However when playing even simple chords (i.e. an open E or A) there is an underlying grittiness and "inharmonicity" and the guitar sounds out of tune. It also exhibits a strange behavior during the pick attack. The Whammy glitches during the pick attack kind of "cuts out".
For the Axe-Fx I'm using a wavelet approach to the pitch detector which results in a multi-resolution pitch detection. This means the pitch detection window is short when you want it short or long when you want it long. This results in extremely fast tracking. There's almost no audible "blip" when the harmony changes. It also tracks complex chords pretty well but it does sometimes struggle with locking onto the pitch and will alternate between the "best guess" when there isn't a clear answer. To be fair the other products do this too.
So all the devices exhibit their idiosyncrasies and artifacts. The question becomes which artifacts are the least offensive. If I were to choose I would choose either the Whammy or the Axe-Fx. However the Whammy only supports chromatic shifting. It has a "Harmony" mode but it isn't diatonic harmony where you can set the key and scale/mode.
[20] Real-time pitch shifting is full of tradeoffs. I you want low latency you get tremolo artifacts. If you don't want the tremolo artifacts you get high latency and weird artifacts on complex intervals.
[21] To do polyphonic pitch shifting well you need around 50 ms of history. So nominally the delay will be half that, 25 ms. If you set the detector to Mono the latency will be less but it won't track chords, especially complex ones, as well due to lack of correlation in the history buffer.
[22] Latency is variable because the best splice point is variable.
FM9:
[23] The pitch detection function runs in its own thread. At high CPU utilization that thread can be postponed. The extra power of the turbo enables that thread to run more often improving pitch detection latency.
[24] As you exceed 85-90% resources start to become critical. That 10-15% has to get divided up among all the lower priority threads: USB, display, controllers, foot controller(s), LED, etc., etc. as well as pitch detection. Pitch detection is a higher priority thread but you can't get blood from a stone.
PREVIOUS GENERATIONS
[25] Once the CPU usage crosses a certain threshold (which could happen if you are streaming audio) the pitch detection will slow down as the global pitch detector necessarily has a lower priority than the primary audio processing. If you change the Pitch Source to Local then the local pitch detector runs at the same priority as the audio.
[26] Pitch detection has a lower priority than audio processing. If CPU usage is very high the pitch detectors won't run often.
[27] The better the pitch shifting, the more the latency. It's a perceptual process. There is no mathematically perfect way to do it. Also, when you pitch shift, the sound coming from the speakers doesn't reinforce the strings (since it's at a different frequency) so you don't get sustain and feedback harmonics.
The Pitch block in the AX8 and FX8 is very sensitive to CPU usage, even far before the limit is reached. When using the Whammy mode for example, try to keep CPU usage below 60%. Some Pitch types in the discontinued AX8 and FX8 provide an Economy mode, which offers comparable audio performance but uses less CPU.
Learn mode
The Pitch block has a Learn function. Turn it on, play a note and hold it, and the device will set the key according to the note you played.
In the Ares firmware and later, the Pitch block doesn't have be engaged to use Learn.
Tuner note display
Firmware Ares and later feature a Downtune control in the Tuner menu, which allows simplified tuning when tuning down one to four semitones. The Tuner display will display the “natural” name of the note, i.e. if tuning down one semitone an Eb will read E. This also applies to notes in the Pitch block.
Parameters
The parameters are also explained in the Owner's Manual.
Pitch Tracking
Has replaced the Tracking Mode parameter.
Values: NOTES, CHORDS and OFF.
Pitch blocks in the Axe-Fx 3, FM9 and FM3 have their own pitch detectors, separate from the global pitch controller.
Pitch detection has been further improved in the Axe-Fx III, FM9 and FM3, and the number of voices has been increased to 4.
FRACTAL AUDIO QUOTES
[28] Lowering the Tracking will reduce the latency but can lead to artifacts. 5.0 is a good compromise between latency and smoothness.
Firmware 27 for the Axe-Fx III:
Fast" and "Smooth" have been deprecated. There are now three modes: Off | Notes | Chords. Notes mode is optimized for single note playing. Chords mode is more stable when playing chords but can add latency. For general-purpose capo use Chords mode is probably the most suitable.
Pitch source
This parameter determines which signal the Pitch block uses for tracking.
Axe-Fx III, FM9, FM3:
The Pitch block uses its own pitch detector, separate from the Internal Controllers. Choose between Block
, which is the equivalent of Local
, and Input x
.
Axe-Fx II, AX8, FX8:
- Global
- (default) — The signal at the input of the grid (pitch controller) is used to track the pitch. This will usually suffice, unless there are specific demands or when the CPU load is high.
- Local
- The signal at the input of the Pitch block on the grid is used to track the pitch. Use this when you need accurate and fast pitch detection in high-CPU usage presets.
Feedback
This is placed before the Voice Level parameter. So when Feedback is turned up and Level is turned down, you'll still hear repeats.
Low Cut, High Cut
These parameters are present in every Pitch type. However, they are not operational in the Octave Divider.
FRACTAL AUDIO QUOTES
[29] In an Eventide the high cut is always set very low, around 2K.
[30] Those filters don't apply to the Octave Divider. The first page is a common menu but the Lowcut Freq and Hicut Freq are not used in the Octave Divider algorithm.
Voices
FRACTAL AUDIO QUOTES
[31] Don't set both voices the same or you can get phasing. There's no point in setting both voices the same.
Temperament
- Just
- Ratios are defined by the harmonic overtone series.
- Equal
- (default) Sweeter harmony, especially when followed by distortion.
For a demonstration of the difference between the two settings, try factory preset MYSTIC ARPS and switch the parameter between the two settings.
Tips, tricks and troubleshooting
Factory presets
The Pitch block is showcased in many factory presets. Search the Factory presets page for pitch
or crystals
.
Chorus vs Detune
FRACTAL AUDIO QUOTES
[32] Chorus is a varying pitch shift. The pitch slowly changes between flat and sharp. Detune is a constant pitch shift.
12-string guitar sound
To create the sound of a 12-string guitar:
- Put the Pitch block between the Amp and Cab blocks
- Select the Fixed Harmony or Dual Chromatic type, or Virtual Capo
- Shift one or both voices to +12
- Increase Detune a little to add realism
- Set Mix as desired
It isn't a true simulation because, on a real 12-string, the bottom four strings are doubled a full octave higher, while the two highest strings are doubled and in unison. Decoding which string is playing each note in order to differentiate when to use octave or unison notes is beyond the current generation of modelers' technology.
An alternative approach would be using the Crossover block, in the Axe-Fx and FM9 only, or the Pitch Follower controller.
Dive bomb effect
For an automated "dive bomb" pitch effect:
- Create a preset with a Pitch block.
- Set Pitch mode to Classic Whammy, Up|Dn 2 Oct., Tracking off, 100% mix.
- Enter the Modifier menu of the Control parameter in the Pitch block. Set Source to one of the externals. Set Damping to 750, for starters.
- Enter the Modifier menu of the Bypass parameter in the Pitch block. Set Source to the same external controller as above.
On the foot controller:
- Program a switch to send the external controller's CC.
- The switch can be latching or momentary, whatever works for you.
To operate: select the preset. Press the switch (press and hold if it's a momentary switch) for the effect to kick in. Press again (or release) to stop, and bypass the Pitch block.
You can also use your expression pedal instead of a switch. Use the corresponding external controller.
Instead of a switch, you can also use Auto-Engage.
You can adjust the length of the dive through the Damping parameter, use another Whammy mode, make it even more dramatic by adding a Flanger, etc.
Bakerman's tip to dive deeper than two octaves: select "Whole Tone" for Harmony. In the modifier menu set Minimum to 1, and Maximum to the desired drop (try -19). Increase Glide to get rid of the steps.
Natural feedback simulation
The FEEDBACKER factory preset demonstrates how to achieve long sustained feedback.
Mark Day's Mark's Recto Feedback 2
goes further, and simulates feedback based on the note played, using the Pitch Follower controller.
Forum member Simeon demonstrates how to simulate feedback using the Synth block in Freqout sim (all units) how to do it with the synth block
.
Multiple harmonies
In the forum's Various presets & tricks
thread, Bakerman explained how to generate five harmonies with one guitar in one Axe-Fx preset for Hotel California
.
Stepped Auto Tune
- Select a Diatonic (Harmony) mode.
- Set Mix to 100%.
- Use a single harmony (mute the other(s)) and set it to "1" (unisono).
- Set Pitch Quantize to "Stepped".
- Use a low Glide Time value.
Harmony scales
The different harmony scales are explained in the Owner's Manual.