Just got the latest PS Audio newsletter announcing a new application aimed at audiophiles:
tagNplay Music Manager
While iTunes is a great program for managing your music collection, it doesn’t really address the needs of most high-end music lovers around the world; so we built one that does. It is called tagNplay Music Manager (TMM).
I am delighted to announce that our Christmas present to the world will be the release of this high-end music management program that is free, operates on both MACS and Windows PC’s and will be the only music management program you will ever need.
Designed from the ground up by Audiophiles, for Audiophiles and music lovers, tagNplay is the only music management system you will ever need. tagNplay replaces the need for popular programs like iTunes and can manage any size library without any problems.
Read the entire announcement here: November-2011-ps-audio-newsletter
Follow the discussion of the tagNplay Music Manager at the PS Audio forums
Pre-beta/Beta version is available: http://www.psaudio.com/ps/media_manager/downloads/
If you want to use it as a standalone player, you will have to wait a few months. The current version is server-only. You can play via the PS Audio network DAC (Bridge) using the iPhone tagNPlay application.
I have programmed for the Apple Aluminum Remote Control to control the volume in the Buffalo II DAC. I think this is the nicest remote control available for the application. It can be purchased at any Apple Store for $20 or so.
You can find the code here: Code for Buffalo II vB05
Note: for the latest code, check the “CODE” tab. The Apple remote code is part of the code that controls the DAC
For the manner I used to read the signal pulses from the remote, it required a modification to the Arduino pulseIn library. I defined a replacement pulseIn function with an additional time out parameter. This is explained in the code and also in the Arduino forums. It is further explained here.
WHICH IR RECEIVER?
You can probably use any IR receiver you can find. I had scavenged some IR receivers from old electronics and they work but are too sensitive to ambient light, so I get a lot of spurious signals. The code will only accept valid sequences, so spurious signals will be ignored. However it is not a good idea to have the processor continually process spurious signals.
38 Mhz, AGC4 type
If you are buying one, get one that is designed for remote control and with a frequency of 38 KHz because the NEC protocol that is used by the Apple Remote is designed for 38 KHz operation. Further, the “AGC4″ type is best for the NEC protocol. According to Vishay documentation, “AGC4 is optimized for most common remote control standard applications in very noisy environments (including dimmed LCD backlightings)”.
It is also worthwhile to note that the pin assignment for IR receivers is not standardized so you need to know the exact pin assignment of the receiver. If you need a recommendation, the Vishay TSOP32438 [datasheet] is a good device. The TSOP32838 will also work. The only difference is that it is “not designed for noisy environments”. If you do a search in Digikey or Mouser and confine the results to 38 MHz you will find many candidates.
Below is the connection diagram for the IR receiver
- Disturbance Sources: Describes sources for noise and also prescribes a circuit to filter noise from the power supply
- Choosing an IR Receiver based on AGC Type: Describes what AGC (Automatic Gain Control) means
- Review of Apple Aluminum Remote Controller: Good overall review and also explains why some of the IR codes from the remote contain double commands
I like this picture I scraped from Soomal
Since I purchased the $49 JYETech Scope, several versions of the firmware have been released. The latest enables “20Msample/sec effective sampling rate”. The following is a summary of the steps required to upgrade the firmware:
1- Purchase a USB to TTL converter. I purchased the following converter based on the Silicon Labs CP2102 device at eBay
2- Download and install device driver from Silicon Labs: VCP Driver Kit (VPC is “virtual COM port”)
4- Download the firmware uploading application: AVR Universal Bootloader: JYETech AVRubd link (v4.1). There is a newer version, 4.5 in the web. Both versions work well
5- Download the manual and follow the “using the bootloader instructions”: Link. Use the COM port assigned to the USB-TTL converter. You can easily find out which COM port by examining the device manager or by checking the com ports in the AVRubd with and without the USB-TTL converter plugged in the USB port
6- Connect USB-TTL converter to the scope, following the instructions in the manual (but without connecting the 5V line). The manual instructs connecting the 5V line because the serial port does not provide power whereas USB provides power. Caution: If you connect the 5V line, the scope will power-on without any other power source. It is probably not a good idea to connect the 5V line and also power the scope from an external supply.
Note: I found that in my device, the TxD and RxD labels are flipped, so I connected TxD to RxD and RxD to TxD. You can try either way if the scope does not respond. Also to ensure that the USB-TTL converter is working correctly, you can download Serial Loopback Test to test the device.
7- Continue following the instructions in the manual
Capturing Scope Traces on a PC
JYEShot is a mini application to receive screen captures from the scope. You can use the same USB to TTL converter with the same configuration described above to upload a screen capture to a PC. Here is an example capture
Tip: One of the configuration parameters in the application is the Rx delay (in the menu item settings->timings). I found that with the 30 msec default setting the transfer did not work. Increasing the delay to 50 msec, solved the problem.
Tip: Instead of saving the trace with file->save in the JYEShot application, you can just change the name of the TMP file that is created in the folder where the application resides. This way you can quickly use the file name you wish. Every time you save a trace it will be to a file called “TMP”
Example uses of the oscilloscope for audio applications:
- Measuring the I2S lines: LRCK, MCK and fs, BCK,
- Measuring noise in rotary encoders. Here I used single trigger mode to capture a single change/switch of the rotary encoder. In single trigger mode, the scope will automatically enter HOLD mode after each trace capture.
“Better” USB-TTL converver
I found this other USB-TTL converter on eBay (search for CP2102) which is more versatile than the one I purchased. The one described above has 6 pins (5v, 3.3v, GND, RxD, TxD and RST). The RST pin is to reset the CP2102 device. If you want to use this device to program an Arduino, there is no pin to auto reset the Arduino.
This device exposes the DTR pin which can be used to auto reset the Arduino (start the Arduino bootloader) prior to downloading a new program. Thus this device can be used to program the scope, and also to program an Arduino that does not have a built in USB interface such as a bare-bone Arduino. (Note: I have not tested this device)
This version adds large numbers, rearranges the user interface and reads the status register. This is pretty much all that can be programmed into the Sabre32 DAC chip. Next I need to add remote control…
Code is published here: HIFIDUINOCODE
The old implementation of large fonts relied on 7 custom characters (there was a bug in the serial LCD so only 7 out of 8 custom characters could be created). The current implementation with the “standard” LCD allows the creation of 8 custom characters. Together with the built in characters for blank (or space) and completely filled characters, I was able to improve the appearance of the 3-line large LCD font. Here is a simulated display showing before and after. I’ll add large numbers to the next version of the code.
The latest code for Buffalo II DAC has been posted.
Tested for functionality. If you have implemented it and tried the different options (jitter, filter or DPLL) I would love to hear your impressions on the sound.
If you have suggestions in improving the code, please also share your thoughts.
Here is the latest version of the Arduino Controller for Buffalo II DAC. This configuration does not have hardware debouncing and implements debouncing in software by using the code specified in the previous post. It actually works well. I have implemented several new features and I am currently testing and cleaning up the code before I post it.
Current set of features:
- (Previously implemented): volume control, reading of sample rate
- LCD brightness adjusted by a jfet transistor on back-light ground line and controlled in software by using one of the analog (PWM) pins in Arduino
- Selection of the PCM digital filter between sharp roll-off and slow roll-off
- Jitter Reduction: Enable/Disable
- Selection of DPLL Bandwidth (haven’t tested this yet, so I don’t know what it does)
- Click and select: the rotary encoder is used to make all selections, including adjusting the brightness