I love the analog bypass feature you linked to. I saw that feature in the sgtl5000 chip's documentation, but didn't think it was used in the Teensy Audio adaptor. I'd like to know how you were able to do that, but first I should probably figure out how to use the code you have already done!
So, do I just take the code on the github page you linked to and paste that into the Teensyduino IDE editor? Or would I install it like a library?
If you are using the TGA-Pro board and already have the BAGuitar Library installed and working, you are probably already using the BAAudioControlWM8731 class to control the codec. This class provides the ADC bypass.
If you are using a Teensy Audio Board with a SGTL5000 codec, my BAAudioControlWM8731 class won't help you because the codecs are not compatible with each other.
As described in the header file documentation, the CODEC ADC bypass takes the analog signal output from after the CODEC's built in preamp and sends it directly to the analog output, bypassing the entire digital portion of the codec.
There is definitely a lot of momentum behind true-bypass. IMO, as a engineer, I disagree with most of the hype. The purpose of true bypass is to prevent the poorly designed guitar pedal's input stage (not high enough impedance) from loading the guitar pickups when bypassed, as well as circuitry that is low fidelity, usally sub-par op-amps. Stick a proper high impedance buffer at the start of the signal chain and the problem is solved. This is why you don't really get tone suck with active pickups, they have this buffer.
One of the few exceptions is where the pedal is designed to load and react to the pickups impedance loading. Probably one of the only examples of this is the germanium based Fuzzes. They only sound good when it's lower impedance is allowed to directly load passive pickups, and then only if the germanium transistors are "good ones". All other scenarios sound best with a proper buffer as close to the guitar pickups as possible.
A guitar amp (even a tube amp) has a very high input impedance which is why the guitar dynamics work very well in plugged directly into it. Tube amps sound even better when a buffer with gain is driving them, like a Tube Screamer pedal.
In summary, true bypass solves two problems that are best solved in other ways:
- guitar pedals that do not have a high enough input impedance suck tone when bypassed. FIX: put a high impedance buffer at the start of the chain.
- guitar pedals that have noisy, non transparent (they apply unwanted EQ) circuits that are in the path when bypassed: FIX: build a bypass box like the link in my previous post, buy properly designed high quality pedals, or boutique versions of classic pedals with these problems corrected.
Don't take my word for it though. Do some research and come to your own conclusions.
Here's what Pete Cornish thinks about true bypass:
http://www.petecornish.co.uk/case_against_true_bypass.html
That out of the way, here's some psuedo code of how you might use the ADC bypass on the TGA Pro with the BAGuitar Library:
Code:
#include "BAGuitar.h"
BAAudioControlWM8731 codec;
bool bypassed = true;
setup() {
// ... other setup code
codec.enable();
}
loop() {
// ... assume you've written some function bypassButtonPushed() that returns true if button is pushed since last check
if (bypassButtonPushed()) {
bypassed = !bypassed;
codec.setAdcBypassed(bypassed);
}
}