Often the Morse Code centered projects that we feature are to help you practice transmitting messages. This one takes a tack and builds an automatic decoder. We think [Nicola Cimmino’s] project is well worth featuring simply based on his explanation of the Digital Signal Processing used on the signal coming in from the microphone. Well done. But he’s really just getting warmed up.
What makes this really stand out is a brilliant algorithm that allows conversion from Morse to ASCII using a lookup table of only 64 bytes. This provides enough room for A-Z and 0-9 without chance of collision but could be expanded to allow for more characters. Below is a concise description of how the algorithm works but make sure you take the time to read [Nicola’s] project description in its entirety.
The algorithm can be decribed as follows. Have an index inside the lookup string inizialied to zero. Have an initial dash jump size of 64. At every received element (dot or dash) halve the initial dash jump and then increase by 1 the index inside the lookup string if a dot was received and by dash jump size if a dash was received. Repeat until a letter separator is reached, at that point the index inside the lookup string will point to the ASCII corresponding to the decoded morse.
Have you heard of this technique before? If so, tell us about it in the comments below. Before you jump all over this one, realize that Magic Morse uses a different technique.
Audiophiles tend to put analog systems on a pedestal. Analog systems can provide great audio performance, but they tend to be quite costly. They’re also hard to tinker with, since modifying parameters involves replacing components. To address this, [tshen2] designed the DSP 01.
The DSP 01 is based around the Analog Devices ADAU1701. This DSP chip includes two ADCs for audio input, and four DACs for audio output. These can be controlled by the built in DSP processor core, which has I/O for switches, buttons, and knobs.
[tshen2]’s main goal with the DSP 01 was to implement an audio crossover. This device takes an input audio signal and splits it up based on frequency so that subwoofers get the low frequency components and tweeters get the higher frequency components. This is critical for good audio performance since drivers can only perform well in a certain part of the audio spectrum.
Analog Devices provides SigmaStudio, a free tool that lets you program the DSP using a drag-and-drop interface. By dropping a few components in and programming to EEPROM, the DSP can be easily reconfigured for a variety of applications.
The great analog synths of Moog, Oberheim, Sequential Circuits, and more modern version from Doepfer are renouned for their sound, the sheer majesty of a rack full of knobs and plugs, and of course the price. Analog synths are simply expensive to build, and given that aficionados even scoff at digitally controlled oscillators, require a lot of engineering to build. [Jan]’s DSP-G1 isn’t like those analog synths – it uses microcontrollers and DSP to generate its bleeps and boops. It is, however, extremely cheap and sounds close enough to the real thing that it could easily find a home between a few euroracks and CV keyboards.
The heart of the DSP-G1 is a micro from NXP modeling an analog synthesizer with 15 digitally controlled oscillators with Sine, Triangle, Pulse and Saw outputs, a low frequency oscillator, two envelope filters, and a low pass filter, or about the same accouterments you would find in a MiniMoog or other vintage synth from the 70s. Since this is basically a synth on an NXP LPC-810, [Jan] has packaged it in something akin to a MIDI to 3.5mm cable adapter: Plug a MIDI keyboard into one end, an amp into the other, and you have a synth smaller than the MIDI Vampire, an already impossibly small music creation tool.
[Jan] has a few more versions of his little DSP device with varying amounts of knobs available on his indiegogo campaign. The DSP-Gplug is the star of the show, though, provided you already have a MIDI keyboard with a few knobs for the required CC messages. Videos and sound demos below.
Continue reading “An ARM-Based DSP Modelling Synth”
A little light reading means something different to us than it does to [Hamster]. He’s been making his way through a book called The Scientist and Engineer’s Guide to Digital Signal Processing written by [Steven W. Smith, Ph.D]. Being the hacker type, a million different uses for the newfound knowledge popped to mind. But as a sanity check he decided to focus on a useful proof of concept first. He’s come up with a way to filter out the mains hum from Analog to Digital Converter samples.
Mains hum is all around us; produced by the alternating current in the power grid that runs our modern lives. It’s a type of interference that can be quite problematic, which is on reason why we see EMF sensor projects from time to time. Now you can filter that ambient interference from your projects which take readings from an ADC. This would be quite useful for applications which measuring teeny signals, like ECG hacks.
[Hamster] did a pretty good job of presenting his demonstration for the uninitiated. He even provides examples for Arduino or FPGA projects.
This a screenshot taken from [Pierre’s] demonstration of an electric guitar effects pedal combined with DSP and Pure Data. He pulls this off by connecting the guitar directly to the computer, then feeds the computer’s audio output to the guitar amp.
The foot controls include a pedal and eight buttons, all monitored by an Arduino. Pure Data, a visual programming language, interprets the input coming from the Arduino over USB and alters the incoming audio using digital signal processing. [Pierre] manages the audio connection using the JACK Audio Connection Kit software package.
In the video after the break he’s using a laptop for most of the work, but he has also managed to pull this off with a Raspberry Pi. There’s no audio input on the RPi board, but he’s been using a USB sound card anyway. The other USB port connects the Arduino and he’s in business.
Continue reading “Guitar foot controller uses DSP for audio effects”
Here’s the first project we’ve seen for the new Stellaris Launchpad. It’s a frequency analyzer which displays a graph on an 8×8 LED module. What’s that you say? You haven’t received your new Launchpad board yet? Neither have we since they don’t start shipping until the end of the month. But [EuphonistiHack] works as a software dev for TI and snagged one of the early development units.
Hardware is rather simple. He uses an OpAmp to feed audio from his laptop to the ARM processor. The 8×8 LED module is an MSP430 booster pack that is addressed via SPI. On the software side of things he’s really taking advantage of hardware peripherals to simplify his work. A timer triggers each ADC reading which in turn writes the values using uDMA. Digital Signal Processing (available as a CMSIS library for many ARM chips) is then used to translate the ADC value to one that can be displayed on the LEDs. Check out the video after the break to see the final version.
The Hackaday writers are looking for an easier name for this hardware than “Stellaris Launchpad”. It doesn’t seem to lend itself to a shorter name, like RPi or Raspi does for the Raspberry Pi. If you’ve got a catchy nick name for the new board please share it in the comments.
Building guitar pedals has come a long way from hooking up a few transistors and building a simple boost circuit. [Cloudscapes] has been working on a Anti-nautilus auto glitch, auto repeat pedal, and if you’re looking for something that sounds like a spaghetti western soundtrack skipping on a record player, we couldn’t think of anything better.
[Cloudscapes] was already familiar with 8-bit AVRs, but when doing real-time audio sampling, a more powerful microcontroller was in order. He turned to the MikroElektronika MINI-32 board for development purposes. This small board fits a PIC32 microcontroller into an easily breadboardable DIP-40 form factor, perfect for playing around with some very capable hardware.
For the DAC, [Cloudscapes] had some experience with the 16-bit PT8211, but finding a good 16-bit ADC in a convenient package was a bit of a challenge. He eventually settled on the 12-bit MCP3201 ADC, more than enough for a pedal that is supposed to sound lo-fi.
After [Cloudscapes] got a few boards made, he started on his DSP adventure. Unfortunately, the initial code used unsigned 16-bit words to represent each sample, meaning every time the loop repeated it would start at 0 and produce a short pop in the speaker. After a week of debugging, [Cloudscapes] realized signed integers are a much better data format for storing audio data and got rid of the problems plaguing his project.
Now [Cloudscapes] has a wonderful DSP dev board, perfect for making new and strange guitar effects. After the break you can listen to a demo of what the Anti-nautilus pedal actually does, and we’ve got to say it sounds great.
Thanks [Chris] for sending this one in.
Continue reading “Playing with DSP and building a guitar pedal”