Code compatible with Arduino 1.0
I’ve updated the Buffalo Code to make it compatible with Arduino 1.0. Check the code section
Preceding the sample rate number there is an oversampling indicator
- Oversampling: (^)
- Oversampling bypass: (.)
Next to the DPLL setting there is a “mode” indicator
- Normal: DPLL setting is x1: (NOR)
- Multiplier: DPLL bandwidth is x128: (MUL)
- Jitter Eliminator is off: (OFF)
These setting are probably only useful if you use the DAC in synchronous mode (feeding an external clock that is synchronous with the data).
OVERSAMPLING BYPASS ON 80MHZ BUFFALO II
Based on previous experimentation and also as suggested by others, I attempted to turn off oversampling in order to play 352KHz material without the noise problem. I added code to automatically turn off oversampling when high sample rate was detected.
Unfortunately, it didn’t work. Oversampling bypass works 0nly if the incoming sample rate is 384KHz. I simulated this by having the Musiland o3 USB interface do the upsampling (it could have been Quicktime doing it but all I had to do is set the sample rate in the Musiland control panel to 384KHz), and I confirmed the sample rate in the Arduino display.
With incoming sample rate below 384KHz, the following was observed:
- DPLL locks if there is no music playing. The measured frequency is 64x smaller
- DPLL is unable to lock if music is playing. When the SR is 352K, it can intermittently lock (very rapid lock/unlock). When the sample rate is 192K or below, there is no music output.
The normal mode of operation is the “display mode”. In this mode, moving the rotary encoder only changes the volume level: clockwise increase volume (decreases attenuation); ccw: decreases volume (increases attenuation)
To enter select mode, you press down on the rotary encoder (to activate the switch in the rotary encoder). If there is no activity within 4 seconds (adjustable in the code), the code reverts to normal mode.
In select mode, a right pointing arrow indicates which parameter may be changed. Every click of the switch of the rotary encoder switch moves the arrow one position; to change the parameter, rotate the rotary encoder. In this mode the sample rate is NOT updated.
- Button 1: Increase volume
- Button 3: Decrease volume
- Button 5: Mute/unmute
The mute function is implemented to kill the volume instantly but softly restore the volume level to the previous setting.