Guitar effects and other musical circuits are a great introduction to electronics. There’s a reason for this: with audio circuits you’re dealing with analog signals and not just the ones and zeros of blinking a LED. Add in the DSP aspects of audio effects, and you have several classes of an EE degree wrapped up in one project.
For his Hackaday Prize entry, [randy.day] is building a guitar multieffect. Instead of just a single distortion, fuzz, or chorus circuit, this tiny little PCB is going to have several flavors of pitch shifting, a flanger, chorus, echo, harmony, and stranger ‘digital-ish’ effects like bitcrushing.
This effects unit is built around a PIC32 and a TI audio codec which processes the audio at 64k 32-bit samples/second. This takes care of all the audio processing, but the hard work for a guitar pedal is actually the enclosure and mechanicals – it’s a hard life for stage equipment. For the foot pedal input, [randy] is using a magnetic position sensor, but there’s no word if he’ll be using a fancy die-cast enclosure or a plastic injection molded unit.
About six months ago, we saw [tshen2]’s work on the DSP 01, a 2-input, 6-output DSP and crossover for extreme audiophiles, and we’re not talking about oxygen free rooms here. The DSP 01 turns a USB audio output into six outputs that will give you perfectly flat eq across bass, mids, and highs, integrates with a 6x100W amplifier, and compensates for room noise. There was a huge update to the project recently and [tshen] is more than happy to share the details
Getting to this phase of the project hasn’t been without its problems. To get the DSP communicating to a computer through a USB port, [tshen2] found a potential solution in the CP2114 USB to I2S Bridge. This device should function as a USB audio sink, translating digital audio into something the DSP understands. This chip did not work in [tshen]’s design. The CP2114 simply does I2S wrong; the I2S spec says the clock must be continuous. This chip implements I2S with a SPI, firmware, and a few other things, making it incompatible with to-spec I2S.
While there was some problems with getting audio in to the device, the core of the device has remained unchanged. [tshen2] is still using the Analog Devices DSP, with the interesting SigmaStudio being used to compensate for the frequency response of the room. This real, legit, science-based audiophile territory here, and an impressive development for a field that – sometimes understandably – doesn’t get the respect it deserves.
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”