Programmable audio players - Application Notes
Application notes for our USB and wireless buttons and interfaces. These notes extend the product documentation.
- Programming the MP3 controller/player: getting started
This article steps through the creation of a very simple program, from the installation and configuration of the tools to the evaluation of the result. It refers to model H0420, but most concepts also apply to the Starling players.
- Playing tracks sequentially
A sequel to the above tutorial, in which we develop a script that plays MP3 tracks one after another (and in a random order).
Most recent update: This update of the article makes switching from one track to the next track even faster, by creating "resource ids". The discussion on track separation has been moved, with many enhancements, to a separate application note.
- Track and artist separation
When selecting the tracks to play at random, you will often want a form of track separation or, better yet, artist separation, so that the same track (or one of the same artist) does not play too quickly again. This article discusses how to implement track separation and artist separation.
- Synchronizing activities with music
An ID3 tag in an MP3 track may optionally contain text or commands with time stamps. These time stamps allow the text or the commands to be synchronized with the music. The H0420 MP3 controller supports this extension, and the article gives a complete example implementation.
- Gapless looping MP3 tracks
Due to the file format and the algorithm of MP3 tracks, creating a loop without a gap or click is a little involved, especially when using a hardware player. The H0420 MP3 controller and the Starling audio controller can play gapless MP3 audio loops, provided that special software has processed the MP3 track.
Example tracks & processing software are available from this site, as well as a detailed presentation of how it works.
Most recent update: The software was improved with better interpolation in the resampling phase, a GUI "wrapper" utility was added for ease of use.
- A remote-controlled MP3 player
Adding functionality to manipulate the H0420 MP3 controller with a common remote control only takes the IR-receiver chip and a pull-up resistor, plus a script that interprets the codes sent by the remote control. This article goes into details and provides a general purpose script for RC5 codes (other infrared protocols are supported by modifying the script).
- Connecting a bar-code wand to the MP3 controller/player
The H0420 MP3 controller supports a low-cost bar-code wand directly on its I/O pins (only a pull-up resistors sometimes needs to be added). This article descibes the connections and presents a script that decodes the "interleaved 2 of 5" bar-code symbology.
- Synchronizing time with DCF77
This article describes how to synchronize the internal real-time clock of the H0420 MP3 controller on the time signal emitted by the atom clock on the DCF77 transmitter.
Most recent update: The article also discusses the MSF60 transmitter (in Great Britain) and protocol.
- Encrypted MP3 tracks
The H0420 MP3 controller and the H0440 audio player/controller are able to play encrypted MP3 tracks directly (without needing an intermediate decryption phase, and so without start-up delay). This article discusses the software and the operations necessary to create MP3 tracks with strong encryption (and how to play them back).
- A MIDI to RS232 converter
The MIDI protocol is a serial data communications protocol using on a "current loop" physical layer, and using a Baud rate of 31250 bps. This article shows the electronics needed to convert between current loop and the RS232 signal levels. The circuit can be connected directly to the RS232 port of the H0420 MP3 player. In the second part, the article covers the "software protocol" of MIDI and develops a simple script to send and receive MIDI commands.
- Power-outputs for the programmable audio controller/player
Both the programmable MP3 player model H0420 and the Starling audio player have digital I/O pins with TTL-level output. This note describes how you can get more power (and/or a higher output voltage) from the I/O pins.
- LED current source
Both the programmable MP3 player and the Starling audio player have digital I/O pins with TTL-level output, which can directly drive a single LED. This note describes a constant current source that you can use to drive more than one LED, at an equal brightness, controlled from just one I/O pin.
- A voltage inverter circuit
The programmable MP3 player model H0420 directly supports LCDs with a HD44780 controller and a positive LC-driving voltage. With the voltage inverter described here, you can also attach LCDs that need a negative LC-driving voltage.
- H0420 Internals
The internals of the H0420 are briefly touched upon in this on-line article. The notes cover both the hardware and the software ("firmware").
- Interfacing the VS1053 and VS1063 to DACs and SRCs
The VS1053 and VS1063 audio decoder chips from VLSI Solutions support I2S output (in addition to analogue audio output). However, the specific I2S format narrows your choice of DAC, SRC or DSP. The simple circuit presented in this application note converts the I2S format from the VS10x3 to 32Fs Right-Justified, which has much wider support by DAC, SRC and DSP chips.
- The STA013 MP3 decoder
This paper is a collection of hardware notes on the use of the STA013 MP3 decoder from STMicroelectronics. The paper also contains some notes on the MP3 file format.