Packed with an incredible amount of hardware, and increasingly likely to be running an open source firmware, the modern RC transmitter is effectively a little multi-purpose computer in its own right. Accordingly there is a small, but growing, community of developers coming out with software applications targeting these switch-festooned wonders. It’s only a matter of time until they are running DOOM.
One such piece of software is TaraniTunes, developed by [GilDev]. This program allows you to load your OpenTX 2.2+ equipped Taranis Q X7 or Taranis X9D with music files which can be played on the transmitter’s built-in speaker. While it likely won’t win any awards for interface design, the large LCD display coupled with the radio’s numerous physical buttons and switches makes it relatively easy to navigate your music collection.
While the software [GilDev] has written for OpenTX looks straightforward enough, getting the songs on the radio is another story. For each track you need to merge the stereo channels into mono (as the transmitter only has a single speaker), and then convert it to a 32 kHz WAV. But don’t worry about the lack of ID3 tag information, TaraniTunes allows you to create a text file containing not only the filename of each track, but its name and artist.
[Aidan Lawrence] likes classic synthesized video game music in the same way that other people “like” breathing and eating. He spent a good deal of 2017 working on a line of devices based on the Yamaha YM2612 used in the Sega Genesis to get his feet wet in the world of gaming synths, and is now ready to take the wraps off his latest and most refined creation.
The YM2151 Arcade Classic is an open source hardware player for Video Game Music (VGM) files. It uses no emulation, the files are played on the device’s YM2151 chip in the same way they would have been on a real arcade cabinet at the time of their release. Interestingly, as some arcade machines were exceedingly rare or even scrapped before release, [Aidan] believes that his player may be the first time some of these songs have ever been played (at least in public) on real hardware.
The YM2151 synthesizer is powered by a STM32 “Blue Pill” board, which was selected as much for its capabilities as it was its low cost. The STM32 loads the VGM files from an SD card, and puts track information for the currently playing song on the 128×32 OLED display. A few tactile switches under the screen allow for shuffling through the songs stored on the card, and a slide switch for mute rounds out the simplistic but functional user interface.
In the GitHub repository, [Aidan] has provided the source code, schematics, Bill of Materials, and KiCad-generated Gerber files; everything you need to create your own version of his player. After listening to it rock out for a few minutes in the video after the break, we’re tempted to take him up on that offer.
Digitally stored music is just data. But not long ago, music was analog and required machines with moving parts. If you have never owned a record player, you at least know what they look like, now that there’s a(nother) vinyl revival. What you may not be aware of is that the player’s stylus needs to be aligned. It makes sense, that hypersensitive needle can’t be expected to perform well if it’s tearing across a record like a drift racer.
There are professional tools for ensuring alignment, but it’s not something you’ll need each day. [Ali Naci Erdem] shows us his trick for combining a printable template with a mirror to get the same results without the professional tool costs. Instead of ordinary printer paper, he prints the template on a piece of clear plastic and lays it across a small mirror. These are both items which can be picked up at a hobby store, which is not something we can say about a record player mirror protractor.
For the transmitter, he turned an Arduino Pro Micro into a USB sound card which he could plug into his laptop. That outputs both the audio signal and a 40 kHz carrier signal, implemented using the Arduino’s Timer1. Those go to a circuit board he designed which modulates the carrier with the audio signal using a single transistor and then sends the result out the ultrasonic transmitter.
He took care to transmit a clear signal by watching the modulated wave on an oscilloscope, looking for over-modulation and clipping while adjusting the values of resistors located between the transistor, a 5 V from the Arduino and the transmitter.
He designed the receiver side with equal care. Conceptually the circuit there is simple, consisting of the ultrasonic receiver, followed by a transistor amplifier for the modulated wave, then a diode for demodulation, another transistor amplifier, and lastly a class-D amplifier before going to a speaker.
Due to the low 40 kHz carrier frequency, the sound lacks the higher audio frequencies. But as a result of the effort he put into tuning the circuits, the sound is loud and clear. Check out the video below for an overview and to listen to the sound for yourself. Warning: Before there’s a storm of comments, yes the video’s shaky, but we think the quality of the hack more than makes up for it.
When it comes to music production and audio engineering, Linux isn’t the most common choice. This isn’t for lack of decent tools or other typical open source usability issues: Ardour as a highly capable, feature-rich digital audio workstation, the JACK Audio Connection Kit for powerful audio routing, and distributions like Ubuntu Studio packing all the essentials nicely together, offer a great starting point as home recording setup. To add variation to your guitar or bass arrangement on top of that, guitarix is a virtual amp that has a wide selection of standard guitar effects. So when [Arnout] felt that his actual guitar amp’s features were too limiting, he decided to build himself a portable, Linux-based amp.
[Arnout] built the amp around an Orange Pi Zero with an expansion board providing USB ports and an audio-out connector, and powers it with a regular USB power bank to ensure easy portability. A cheap USB audio interface compensates the lacking audio-in option, and his wireless headphones avoid too much cable chaos while playing. The amp could theoretically be controlled via a MIDI pedalboard, but [Arnout] chose to use guitarix’s JSON API via its built-in Python web interface instead. With the Orange Pi set up as WiFi hotspot, he can then use his mobile phone to change the effect settings.
One major shortcoming of software-based audio processing is signal latency, and depending on your ear, even a few milliseconds can be disturbingly noticeable. To keep the latency at a minimum, [Arnout] chose to set up his Orange Pi to use the Linux real-time kernel. Others have chosen a more low-level approach in the past, and it is safe to assume that this won’t be the last time someone connects a single-board computer to an instrument. We surely hope so at least.
The kit worked and he should have been happy with it, but for one thing. As he increased the mix on the loop box instead of getting more wah he simply got less volume. A bit of detective work reached the conclusion that the old pedal was inverting everything, and that he needed to put in a circuit to correct that when needed. A single op-amp and a switch, with the op-amp circuit dead-bug-style on the back of the switch, completed the modification.
In a quest for ever greater minimalism, the build relies on a barebones ATMega328p without an external oscillator. Instead, the chip’s internal RC oscillator is used instead. It’s possible to still use this with the Arduino IDE, as [little-scale] shares here.
The music production begins with a clock input signal, which is patched in from elsewhere in the rack synth. The sequencing is controlled with potentiometers. There are four potentiometers, and four corresponding output channels. The pots are all read with the onboard analog to digital converters, and the position transformed into an 8-bit value, from 0 to 255. Our best understanding is that the 8-bit number is then used as the sequence to follow. For example, if the potentiometer is set to 255, which is 11111111 in binary, the sequencer will trigger on every beat. If instead the potentiometer was turned to around 2/3rds of the maximum, and the ADC reads a value of 170, in binary this is 10101010 which would trigger on every second beat.
It’s an interesting way to sequence several channels with the bare minimum of input devices. While it may not be the most intuitive system, it really suits the knob-and-dial noodling so relished by rackmount fanatics. Be sure to check out the video below for [little-scale]’s rackmount sounds and impressively pretty videography. Never before did breadboards look so good.