Category Archives: Electronics

  • 0

LED Controlled Panner

12/22/16 – The LED Panner is another fun circuit from the great book “Handmade Electronic Music” by Nicolas Collins.

This circuit uses a single 74C14 Hex Schmitt Trigger chip, taking advantage of only a few pins (so you could to much more with this). LEDs paired with photo resistors create an optically controlled circuit which is designed to switch audio off and on in a flip-flop or ping-pong type motion. A single dial adjusts the speed of the effect. You can use just one side of the device for a mono signal, or in stereo, though stereo is where you get the neatest effects.

I always seem to do the most building during the holiday season, hence the Christmas themed box. The initial breadboard prototype went together rather quickly, so it wasn’t long before I had everything in the box. The hardest part was deciding on a physical layout for the LED/photoresistors, as they take up a lot of space. I would probably try a different orientation if I built one of these again, but this works fine.

The unit below with the green knob is the same unit as the one with the red knob. Only difference is that at first I didn’t add an on/off switch. That was added later and I changed the knob because I thought it matched the case better.

I built this device as an addition to my constantly evolving electronic/experimental music soundscape table, which you can hear on my Soundcloud page. Recordings featuring this device coming soon.

Category : Electro , Electronics


  • 0

Xmas Fly Piezo Box

12/9/16 – The Xmas Fly is a riff on the Black Fly, which is basically nothing more than a piezo element and a few parts in a nice box. The Black Fly includes springs, which cause interesting vibrations for the piezo to pick up.

To make springs work you need a very solid box that can hold up to the hardware. I didn’t have such a box, so I used one of my Christmas tins and made this into more of an ambient pickup rather than a device that created it’s own sound. Youtube shows several hacks for the Black Fly, so all I needed was an interior photo of the build from one of those videos, and the rest was easy.

The piezo is set in place with Guerrilla Glue. The filter capacitor value was a bit tricky. First attempt with a 10pF cap showed no filtering effect. I couldn’t make out what they were using in the photo, so I checked with my dad who advised based on his experience with similar circuits, “try .01uF to .05uF. The pot could be 50K more or less… ” The second attempt with a .022uF Mylar cap works well!

What’s it for? This can be used as a pickup for all sorts of sounds around the studio, basically like a low-fi mic. The filter acts as a tone control, which is necessary to roll off some of the harshness of the piezo. Paired with a proper DI box, this can be a very effective tool for sound design. The larger form factor and thinner metal also gives this much different properties from a Black Fly, though I would still like to build one of those when I have the materials.

To hear this in action, check out some of my piezo sound scapes.

Category : Electro , Electronics


  • 0

Get Lo Fi Quad Oscillator

June 2016 – The Quad Oscillator below is a common beginner project, with surprising nuances depending on parts and configuration.

In this case, I bought a kit online from GetLoFi.com. The kit arrived quickly, but was plagued by a few issues. First, my kit didn’t include the SPDT switch that was listed on the packing list. In fact, several other parts, while present, were completely different from what was pictured online or on the packing list. Most notable was the output jack – pictured as stereo, but mono was included instead. The battery clip was also completely different.

Included with the kit was a slip of paper noting a resistor substitution compared with the online instructions, apparently to allow the LED to shine brighter. Due to the poor online photos, this simple kit turned out to be way more complicated than necessary. There’s only three resistors, so how hard can this be, right? (I contacted the seller, and they quickly responded, but I never got the missing part.)

Despite all this, I assembled the kit and got audio out of it, but the LED got very hot (due largely to the resistor value modification). Later I took this to my dad for some troubleshooting, and to drill holes for the case (a holiday candy tin from Big Lots). We ultimately put the resistors back in the original configuration, and removed the 100 Ohm resistor on the output, otherwise we didn’t get audio.

The Quad Osc is good for drones, though I’ve had mixed results connecting it directly to my recording rig or submixer. Seems to be some impedance mismatching or something because it sounds way better plugged into an amp first. Still, it’s a lot of fun.

Here’s some samples:

Category : Electronics


  • 0

MIDI Drum Kit by Spikenzie Labs

DKK-AI

DKK-AI

Just as 2015 was wrapping up I put together a MIDI drum trigger kit from Spikenzie Labs. The Drum Kit Kit – All Included (DKK-AI) comes with everything you need to set up six triggers using piezo discs. Programming is done via an Arduino IDE using the built-in ATMEGA328-PU chip, so you don’t need a separate Arduino board for the project. A 5-pin DIN connector is provided for interfacing with legacy MIDI gear, and this is how I planned to use it for the moment.

The DKK-AI went together quickly with no issues in about an hour. Unit comes pre-loaded with a sketch that assigns the pads to MIDI notes as follows:

unsigned char PadNote[6] = {52,16,66,63,40,65};

On the first try, using Ableton Live set to receive on all channels, this worked perfectly. However, the default MIDI notes used in the DKK-AI are not in the best range for most of Ableton’s drum kits.

DKK-AI - easy to build!

DKK-AI – easy to build, but configuring may take some time!

While General MIDI is a standard, each hardware/software manufacturer can come up with different approaches to how they implement the standard. Often with today’s advanced software, the actual MIDI note assignment is buried under one or more layers of settings. Typically that is OK because you simply use the defaults. But the DKK-AI uses six pads, which is a bit strange compared to most modern controllers that work in groups of eight.

Ableton Drum Kit with default DKK-AI mapping

Ableton Drum Kit with default DKK-AI mapping

To reassign the MIDI notes that the DKK-AI is sending, you only need to edit one line of code (above), and re-load the sketch. This is where things got interesting.

Spikenzie Labs provides a lot of documentation, but they left out a few key things. Thankfully the folks at Spikenzie Labs were accessible (even on New Year’s Eve) and later in 2016 they walked me through the issues I was having.

Assembled DKK-AI with test pad

Assembled DKK-AI with test pad

Working with the Code

The DKK-AI uses an FTDI connection for reprogramming the device. I already had an FTDI cable from a past project, and thought this would go pretty smoothly. The first issue I ran into was how to set up the Arduino IDE to communicate with the DKK-AI while the ATmega328 chip was installed. Previous versions of this Drum Kit used an Arduino Uno to act as the programmer, but I didn’t want to do that. The whole point of having the FTDI header was to program the DKK-AI directly.

I tried numerous board settings, but all returned the error:

Both retured error: avrdude: stk500_getsync(): not in sync: resp=0x00

If you plug that error into Google, you’ll see that it is very common and has dozens of possible causes – some quite involved. I didn’t really have the patience to go down a lot of bizarre rabbit holes for this, so I pushed forward.

The FTDI drivers installed on my laptop were CDM v2.10.00 WHQL Certified, but I downloaded a newer 2.12 version and installed those. The DKK-AI was successfully found on COM5. Eventually I had more success using Pro Mini 3.3v/8Mhz ATmega 328, with programmer set to USBtinyISP. My new sketch with new MIDI note values uploaded successfully.

unsigned char PadNote[6] = {53,17,67,64,41,66};

sketch edit

However, at that point I couldn’t get a successful test with Ableton. I saw MIDI input, but the new pad note of 53 (F4) was clearly not sounding. Oddly, striking the pad returned a green TX light as appropriate. We’ll come back to this a bit later…

Taking a step back I reloaded the old sketch and went back to Ableton to repeat my initial, out of the box, test. This time, this test FAILED. This led me to believe that something was wrong with how the sketch was loading.

I explored a variety of 3.3v vs 5v settings for the Pro Mini 5v/16Mhz ATmega 328 and got the original sketch to load. Again, striking the pad looked good on the board’s green TX light, but I still didn’t see activity in Ableton.

It was at that point where I contacted Spikenzie Labs via Facebook, and they offered to help via email. Our email exchange didn’t take place until later in the week. My burning question was: what board setting do you use??

2016-01-01 19.09.09

VIDEO: Sketch upload via FTDI (PC test)

2016-01-01 19.11.31

VIDEO: TX light activity for pads (PC test)

 

2016-01-02 00.53.02

VIDEO: TX light (Mac test)

Let’s Pop Some Chips Out

While I was waiting for Spikenzie Labs to get back to me, my father suggested that I could verify that the DKK-AI’s ATMEG328 chip was OK by pulling it out of the DKK-AI and putting it into one of my Unos. Then I could load the sketch using the typical Arduino Uno board setting. This wasn’t ideal because I didn’t have an Uno with an open ATMEG slot, so this also meant pulling a perfectly good chip out of an original Uno. Still, curiosity got the best of me, and after performing this operation, what did I get??

avrdude: stk500_getsync(): not in sync: resp=0x00

So that didn’t get me anywhere. I put everything back together and continued experimenting with board settings, hitting upon the Duemilanove 328, which was successful, but the sketch doesn’t work (flashing TX light, etc). Thinking this might be a laptop issue with either my sound card or other settings, I took the project to my Macbook and verified same experience with MIDI setup in Ableton. No triggering taking place.

The DKK-AI has an option for using the FTDI serial connection to send MIDI instead of the 5-pin DIN connector. This isn’t what I wanted to use, but I thought it might be worth a shot. However, for this to work, I had to install a helper app (MIDI Yoke) to take the serial data and translate it to MIDI data. MIDI Yoke is a pretty old program, and doesn’t look like it is supported any longer. I was hesitant to install one more thing on my development machine, but really wanted to see if it made a difference.

Same issue. MIDI still not getting to Ableton even though TX light on circuit lights up.

Yeah, pretty frustrating.

Alesis SR-16 MIDI Drum Machine tests

Up to this point my focus was on making the DKK-AI transmit. On the other hand, the problem could be with receiving data in Ableton, and after all of the obvious checked (using correct port, etc) the only other option for testing was to use another MIDI-generating device. Luckily, I had an Alesis SR-16 drum machine on hand.

MIDI OUT to Ableton worked just fine. So with a quick swap of the MIDI cable to the DKK-AI, I could see again that no signal from DKK-AI was getting into Ableton (despite green TX light flashing when pad is hit).

Maybe try another DAW?

Ableton us usually a bit easier for quick MIDI mapping tests. For me, Ableton is such a blank slate with little clutter to get in the way and you can immediately see what’s happening. My experience with the Audio Cubes using Ableton brought me into contact with a lot of routing and mapping that just doesn’t take place as easily in other DAWs.

But for testing purposes, I wanted to see if maybe a different DAW – like Reason – would demonstrate the same problems. Using Reason’s KONG drum device, I proved that incoming MIDI notes are indeed recognized (using the Alesis). This required a little detour into the default MIDI note assignments on the Alesis, which gave me the following:

Pad # Note
Kick 036 C1
Snare 038 D1
Cls Hat 042 F#1
Open Hat 046 A#1
Claps 039 D#1
Perc 2 067 G3
Tom 1 048 C2
Tom 2 045 A1
Tom 3 041 F1
Ride 051 D#2
Crash 049 C#2
Perc 1 065 F3

So the next step was to take six of these and see if DKK-AI would trigger using same note values that I confirmed were good for mapping to Kong. Back from the original sketch we had:

unsigned char PadNote[6] = {52,16,66,63,40,65};

This became:

unsigned char PadNote[6] = {36,38,42,46,39,67};

Used the Duemilanove 328 setting, got a successful load, but the sketch didn’t work. Still getting green TX light, etc.

The Six Hour Mark

At this point I had 6 hrs troubleshooting into the DKK-AI. It was time to stop. The other issue I was dealing with is that Ableton runs like a dog on my HP laptop, and I had lots of time taken up just waiting for it to load for each test. I was trying not to run Arduino IDE and Ableton at the same time for fear that they might bog down the machine further. I also think that adding MIDI Yoke to the equation added to the system resources that Ableton was using, and I probably should uninstall it. Even when Ableton isn’t listening to MIDI Yoke channels, it seems there’s a performance hit on program start because the program has to account for the possibility that MIDI Yoke might be used.

Spikenzie Labs to the Rescue

1/13/16 – Spikenzie Labs took a while to get back to me, but their tips were very helpful.

1. Set baud rate in the DKK sketch to 31250 bps – This was an obvious note in the tutorial, and I thought this was already set. It’s possible it got reset while I was massing about. However, since I did not plan to use the MIDI over serial, I dont think this had an impact. I purposely only wanted to use the 5-pin MIDI out.

2. Serial.print vs Serial.write in the MIDI_TX void section of the program –

This should be Serial.write but in older versions of the Arduino IDE it was Serial.print.

Once that was changed, IT WORKED!

2016-01-12 22.18.39

VIDEO: Success!

Spikenzie Labs then confirmed that the board setting I found by trial and error was correct. They recommend “Arduino Duemilanove W/ATmega328 as the board. If your version of IDE gives you the choice of speed it is 16mhz.”

This can make all the difference and sends many people down various troubleshooting rabbit holes that waste a lot of time….

More Mapping

All of the energy spent getting the sketch to load properly was a major distraction from the main goal – to come up with a suitable mapping for Ableton. When I say “suitable” I mean something that easily fits into Ableton’s Drum Rack device, and can be easily recalled. If you think of a physical drum kit, you usually have:

Kick
Snare
Hi-Hat
Hi Tom
Mid Tom
Low Tom
Crash
Ride

Depending on the style of music, you might have more or less individual drums, and for some more electronic styles, you might have completely different components, or multiple kick drums. Hi hats often have notes reserved for open and closed hi hat sounds.

Since the DKK-AI has only six pads, if you want to play a typical drum kit, you have to determine which sounds you want to assign to each pad, and then what note is going to be used to trigger that sound. Again, this is all somewhat subjective, and there is no “right” answer, but you generally want to make it easier on yourself by using consecutive note numbers, or following the conventions used in the General MIDI spec (see below).

The point here is that if you indicate note X is a kick drum, and you have a performance of a kick drum part that uses that note (boom, boom, boom, boom) , it will be fine. But if your mapping isn’t consistent, you could be triggering a cymbal with that kick drum part (crash, crash, crash, crash). This can have interesting creative possibilities. The GM standard is also very biased toward Western (European) music and doesn’t take into account Middle Eastern or Asian forms. So some imagination is needed to tweak it for use in those styles. These days, the software usually does all of that for you under the hood.

Drum machines have evolved from the General MIDI mapping, and as various electronic and dance music styles evolved, so did the conventions for mapping the drums to controllers. People who use AKAI MPC drum machines might use their own mapping:

Ableton Live Drum Rack mapping for MPC devices…

Pad 1- Note # 60
Pad 2 – Note # 62
Pad 3 – Note # 64
Pad 4 – Note # 65
Pad 5 – Note # 67
Pad 6 – Note # 69
Pad 7 – Note # 71
Pad 8 – Note # 72
Pad 9 – Note # 60 (On MIDI Channel 2A)
Pad 10 – Note # 62 (On MIDI 2A)
Pad 11 – Note # 64 (On MIDI 2A)
Pad 12 – Note # 65 (On MIDI 2A)
Pad 13 – Note # 67 (On MIDI 2A)
Pad 14 – Note # 69 (On MIDI 2A)
Pad 15 – Note # 71 (On MIDI 2A)
Pad 16 – Note # 72 (On MIDI 2A)

Trying the first six MPC mappings for DKK-AI:

unsigned char PadNote[6] = {60,62,64,65,67,69};

Ultimately this wasn’t a very good mapping for Ableton’s Drum Rack. I got a bit closer to what I wanted with:

unsigned char PadNote[6] = {35,36,37,38,39,40};

The problem with this setting is that 35 falls on a different pad set and is rarely mapped to any sound (unless you manually change it). So I shifted this over and chose to start with 36.

Ableton Drum Kit DKKAI Map

Ableton Drum Kit DKKAI Map

Default

Pad 1 = 36 (from bottom left)
Pad 2 = 37
Pad 3 = 38
Pad 4 = 39
Pad 5 = 40
Pad 6 = 41

unsigned char PadNote[6] = {36,37,38,39,40,41}; // Ableton Drum Rack 3rd attempt

This is based on Ableton’s “GM Suggestions” for drum mapping. This is all relative of course – you can map anything wherever you want. You could even make several mappings depending on the project, and comment out the ones you don’t need at the moment.

abletonMIDInotesGM

The lesson here: General MIDI conventions for drum mapping are nice, but sometimes they don’t line up very well. Much depending on how the manufacturer decided to implement the standard. Propellerhead Reason is a little more predictable in this case, perhaps because it relied on MIDI for so long before Propellerhead added audio recording capability. Ableton has deep programmability and can handle whatever you throw at it, but the Drum Racks often use multiple kick drums and (I’ve found) aren’t always consistent when importing third party MIDI drum performances.

DKK-AI with prototype pads

DKK-AI with prototype pads

GM Drum Layout (Reference)

#  Note  Name
35 B0 Acoustic Bass Drum
36 C1 Bass Drum 1
37 C#1 Side Stick
38 D1 Acoustic Snare
39 Eb1 Hand Clap
40 E1 Electric Snare
41 F1 Low Floor Tom
42 F#1 Closed Hi Hat
43 G1 High Floor Tom
44 Ab1 Pedal Hi-Hat
45 A1 Low Tom
46 Bb1 Open Hi-Hat
47 B1 Low-Mid Tom
48 C2 Hi Mid Tom
49 C#2 Crash Cymbal 1
50 D2 High Tom
51 Eb2 Ride Cymbal 1
52 E2 Chinese Cymbal
53 F2 Ride Bell
54 F#2 Tambourine
55 G2 Splash Cymbal
56 Ab2 Cowbell
57 A2 Crash Cymbal 2
58 Bb2 Vibraslap
59 B2 Ride Cymbal 2
60 C3 Hi Bongo
61 C#3 Low Bongo
62 D3 Mute Hi Conga
63 Eb3 Open Hi Conga
64 E3 Low Conga
65 F3 High Timbale
66 F#3 Low Timbale
67 G3 High Agogo
68 Ab3 Low Agogo
69 A3 Cabasa
70 Bb3 Maracas
71 B3 Short Whistle
72 C4 Long Whistle
73 C#4 Short Guiro
74 D4 Long Guiro
75 Eb4 Claves
76 E4 Hi Wood Block
77 F4 Low Wood Block
78 F#4 Mute Cuica
79 G4 Open Cuica
80 Ab4 Mute Triangle
81 A4 Open Triangle

Category : Electronics


  • 0

Nebulophone by Bleep Labs

jdnebulophonebuiltDec 2015 – The Nebulophone has been on my wishlist for a while, so when Makershed held their holiday sales, it was great to pick one of these for an even better price. Even without a discount, this is a worth while piece of gear and makes some great sounds.

Build took about 1.5 hours, going at a steady pace with no interruptions. The online instructions were great. This was also the first project that I did with a new circuit board holder, which replaced my former method of using a desk vice. This was SOOO much better.

I had read on the Makershed reviews that there was a “gotcha” somewhere in the capacitor placement, but my board was very clearly marked and I had no issues. The Nebulophone worked the very first time I powered it up.

The 1/4″ jack acts as a switch, which is a really nice feature that more projects should have. I think it makes it less likely that I will leave it on and drain the battery.

How does it sound? Great! Check out some of the experiments below via Flickr and Soundcloud. I have not ventured into changing the stock program, and would still need to add an FTDI header to tap into that option, but even the stock sketch gets you some great sounds.

My first experiment involved just recorded a few minutes of random dial tweaking. I then took that file and, using the Simpler device in Ableton, created a number of instrument tracks based on different sections of the original sample session. The ended with about 16 or so separate sounds that I played to create the piece you hear. Aside from a little bit of delay and reverb, those sounds remained unprocessed.

These sorts of synth units often benefit from reverb and delay, so the second experiment involved running the Nebulophone directly through my EHX Memory Man – my go-to delay unit. From there I created a number of textures and short pieces to demonstrate the variety of tons and rhythms you can get with a delay.

The Nebulophone is one of the more musical devices I’ve built lately, and I see it fitting into my electronic music rig very nicely. Another untapped feature is the IR control, which allows you to with other Andromeda Space Rocker and some Gieske devices. I don’t have any of those, so this feature won’t be useful… yet.

Nebulophone

 

You can read more about this device at the sites linked above, but here are the key features:

Key Features

Light controlled analog low-pass filter with five adjustable LFO LED modes.
Six arpeggio modes with adjustable rate.
Portamento with three speed settings.
Infrared control of arp rate with other Andromeda Space Rocker and some Gieske devices.
Open-source Arduino code and hardware
Improved sound generation.
Five new waveforms (eight total) including two with dual, detuned oscillators.
Programmable sequencer to easily make your own arpeggios right on the Nebulophone.
Perfect tuning across six octaves.
Improved white noise mode.
Adjustable temperment and key.
HYPERNOISE 30XX mode.

Category : Electronics


  • 0

LilyPad MP3 Player

2015-12-05 lilypad

December 5, 2015

After a long break from Arduino, and electronics in general, I wanted to jump back in with an easy/medium difficulty task or project. With the many holiday discount sales out there for companies like Adafruit and Sparkfun, I went ahead and got a few projects to keep me busy over the winter.

First up is the LilyPad MP3 Player by Sparkfun. While it isn’t exactly taking me into new territory, the form factor of a round board was something I hadn’t worked with before, and the pre-configuration as a trigger device was a nice feature to get up and running quickly. But how does the board perform?

My setup consisted of the LilyPad, a 3.7 V 1200 mAh LiPo from Adafruit and two 8GB microSD cards from an old Android phone (formatted FAT32)

It took longer to charge the battery and format the SD card than it did to test the Trigger sketch on the LilyPad. For the test I started with free loops from Loopmasters (I’ve got literally hundreds of these), and some MIDI drum performances from Odd Grooves, a company that produces MIDI performances of live drummers.

LilyPad file specs from Sparkfun (at time of this posting):

MPEG layer III (.MP3)
Two channels max
Sample rates: 8 through 48 kHz
Bitrates: 32 through 320 kbit/s
Variable bit rate (VBR) supported
Layer I and II also supported with additional setup, see the VS1053B datasheet for more
information.

Ogg Vorbis (.OGG)
Two channels max
Window size: 64 – 4096 samples
Sample rate: 48 kHz max
Bitrate: 500 kbit/s max

AAC (.AAC .MP4 .M4A)
Two channels max
Sample rates from 8 kHz to 96 kHz (rates > 48 kHz are downsampled to 48 kHz)
Bitrates to 576 kbit/s
ATDS (streaming) format recommended

WMA (.WMA)
Two channels max
Sample rates from 8 kHz to 48 kHz
Bitrates from 5 kbits/s to 192 kbits/s
Variable bit rate (VBR) supported

(.WAV)
Two channels max
PCM format
8 or 16 bits, sample rates < 48 kHz
IMA_ADPCM format
Sample rates < 48 kHz
MPEG LAYER 3 format
Same as MP3 modes

MIDI (.MID)
General MIDI and SP-MIDI format 0
Format 1 and 2 files must be converted to format 0
Maximum polyphony: 64
Actual polyphony: 19-31 notes at 3.5X clock
Two instrument banks:
GM1 (instruments)
GM2 (percussion)

All you need to do is rename the audio files on the micro-SD card so that the first character of each filename
is the number “1” to “5”, corresponding to the trigger that you want to play that file. You don’t need to change anything else about the file name.

This might be the first time I’ve mixed WAV and MIDI data for a project. Usually they are treated separately. Having the ability to use both is helpful for saving disk space because a MIDI performance takes up very little space. Sound boards like LilyPad and Adafruit’s Sound FX boards are getting more sophisticated and can handle both without much, if any, additional coding. This is impressive, since both file types are significantly different. WAV, MP3 and most other file types that consumers use for music contain actual audio data. MIDI is not audio data at all, but control information for music – the notes, rhythms, etc but not the sounds (wave forms).

MIDI files played just fine. Initial tests with my 44.1 Khz 16 bit stereo WAV files resulted in noise:

Then I realized my WAV loops were 24 bit, but the LilyPad only handles 16 bit. So I converted them to 16 bit with Adobe Audition, and had same issue – terrible distorted noise – in time with where the music should be, but obviously not played back correctly. According to the specs, 44.1 Khz 16 bit stereo audio is supported, so I reported the issue to Sparkfun, but continued to test.

Additional tests:
1. Loaded into Audacity and resaved files but had same issue.
2. NTFS card format didn’t work at all.
3. Tried MP3 files (320 bps) and they work fine.
4. Tried using Switch on Mac to generate the WAVs – still same problem
5. Audition offers 4 GB Plus support (RF64) and a Multiple Data Chunks format for Legacy Audition. Too many options if you ask me, but niether seemed to matter for the current issue.
6. Confirmed 8.3 file format (though this doesn’t appear to matter much).

Why am I insistent on using WAV? Besides the fact that the device is documented as supporting it, the main reason is that conversion from MP3 to WAV involves extra steps – steps that take time, even when using batch converters. I’d like to be able to work with WAV audio – directly out of my DAW or stereo editor of choice (which is Adobe Audition right now). There’s that, and the fact that I’ve run into many boards with the same issue, and it seems a fatal flaw in the way these boards are designed (and marketed).

12/6/15 Continued testing
1. Recorded new file with Audacity, saved as 44.1 khz, 16 bit and it failed.
2. Did same with Audition and it failed.
3. Using Audition, downgraded to 8 bit and this played back… sort of. More recognizable, but not as clear as MP3.
4. ExFat card format – failed
5. Created new audio in Reason and Ableton, using the native WAV export from those programs (both on Mac) – Both failed.
6. Downgraded WAVs to 32khz, same issue.

Conclusion: While documented to play 44.1 Khz, 16-bit stereo WAV files, the LilyPad does not do so without significant distortion that makes the audio unrecognizable. 8 bit is somewhat better. If anyone has a workaround for this – for the LilyPad specifically, or for this wide spread problem in general – I’d love to hear from you!

MORE TESTS

12/6/15
Based on past experience, sometimes smaller cards work better for these devices, but a 1 GB FAT16 MicroSD also failed for WAV playback.

12/7/15
Sparkfun asked me some questions about how I am powering the device. “The MP3 Player pulls a lot more power than a regular USB port can provide. If you are only providing power through the FTDI and a computer’s USB port, it will not be sufficient to play tracks with the LilyPad MP3 Player.”

Of course, I was using battery, so not sure why this is an issue. Sparkfun noted the obvious (and what my research shows) – any little deviation in the WAV format can cause problems. My issue is that I can not find a way – with industry-standard programs – to create WAV files that these little boards will play. So I sent them the link to this page so they could see the testing I’ve done.

12/8/15
Bring in the (WAV) strippers
During one of my last experiments, I recall having to use a WAV file stripper, so I did a search to see what’s out there these days…

https://github.com/TooTallNate/node-wav
Command line is pain in the butt.

http://www.lightlink.com/tjweber/StripWav/StripWav.html
Performed Quick Strip process and this made no difference.
Performed Slow Strip process and this made no difference.

Free Audio Converter
Confirms file is pcm_s16le (PCM signed 16 bit little-endian)
Otherwise, no effect on the result.

12/11/15
Sparkfun was in touch again and asked for copies of some WAV files to examine, so I sent them a bunch of stuff to review.

In case I didn’t note this before, I am working mostly on Win 8.1 for this project. But I also use Mac in the studio.

Further testing with an SD card formatted from my Macbook, but no difference there with WAV playback. In this case, the card format and size seem to be fine. So focusing rest of my testing on WAVs.

Found an old WAV file from 2013 that was used in a previous audio experiment and had been stripped of any unnecessary data. Even that file didn’t work.

Tried a command line stripping program RiffStrip, but this resulted in an unplayable file on the PC.If the WAV file is a normal WAV-PCM, the output file will be a RAW-PCM.
C:Riffstrip4_auditRS.wav
Error: The byte stream type of the given URL is unsupported.

AudioShare for iPad – Stereo 44.1 16 bit – fail
RecordHQ for iPad – Stereo 44.1 16 bit – fail
Android SmartVoice Recorder app MONO 44.1 16 bit – fail (but better than most attempts, possibly because it was MONO)

12/12/15

Sparkfun response:

Testing the files, I am seeing the same thing that you are seeing. I tried other sample wav files that I had around my computer with the same noisy muffled output on my speakers. For some strange reason, reducing the sampling rate to a lower rate in the preferences of Audacity helped. While I could hear the track better with less noise, the quality of the output was muffled and bad. =( Looking at the datasheet, the tracks were within the sample rate range so it should have played distinctly like an MP3 track. I am currently waiting on the designer/engineer of the LilyPad MP3 Player to see if he knows of any way to resolve this issue.

So at least this shows they can reproduce the problem, and I am not crazy! Well… mostly.

Epilogue:

12/16/15 Response from Sparkfun:

I just talked to the engineer and he is not quite sure why the wav files are failing. When creating the LilyPad MP3 Player tutorial, he was basing the Supported Audio Formats off the VS1053B IC’s datasheet. He wasn’t able to test out your setup yet but he was able look at your tutorial/review briefly. I’m not sure when he will be able to test it since it is not at the top of his priority list right now.

Quick Fix
I do remember another engineer had somehow got it working so I tested out the .wav files from this tutorial => https://learn.sparkfun.com/tutorials/sound-page-guide#hacking-your-kit . I was able to get those .wav files working from the tutorial. It looks like he reduced the file size to mono and 22050 Hz for the project rate in Audacity. Testing this on your .wav files exported as a “signed 16-bit PCM”, I was able to get a clearer sound. Try modifying the .wav files with that configuration. The issue is that the rate is reduced and the audio track has been converted from stereo to mono. I’m not exactly sure why 32000 Hz and 44100 Hz rates with stereo and .wav files as signed 16-bit PCM do not work. Maybe the VS1053B cannot handle the quality of the .wav files and the datasheet is wrong?

Category : Electronics


  • 0

Frosty Fuzz

Frosty Fuzz

Click for Flickr images

A friend of ours has a vintage Acetone Fuzzmaster. My father copied and made several versions it, and was researching different versions. This is one that he selected the parts for, and that I built into a holiday canister. I didn’t have quite enough room for a switch, and I wanted to keep the artwork intact anyway.

The form factor is perhaps not ideal, and the knobs on the sides are difficult to read. Works nicely as a “set and forget” type effect as part of my electro rig.

 

 

Category : Electronics


  • 0

Delptronics Synth in a Box

In January 2015, I finally got brave enough to tackle the Synth in a Box project that I picked up from Michael Victor at EM2014. This proved to be quite challenging because it was the most involved electronically, with lots of wires. I opted for solid wire because I generally dislike braided wiring, especially when a PCB is involved. This proved to be a poor choice, as getting the wiring to fold into the box got pretty tough before long.

As a self-contained unit it was nice to have no computer programming. I’m not sure that both oscillators are working properly in mine, but that is probably due to either a wiring fault or chip that got too much static electricity discharged into it.

 

Delptronics Synth in a Box

Category : Electronics


  • 0

Open BCI

I’ve always been interested in brain/computer interfacing, but never knew much about the field. When the OpenBCI open source platform came out on Kickstarter, I supported the campaign and signed up for one of their first boards. I thought with my Arduino experience up to that point that it would be a good next step.

My previous exposure to brain-computer interfacing was via the work of Michael O’Bannon’s presentations at electro-music. Michael demonstrated how the low level signals of the brain could be amplified and then translated into abstract sound and visuals via MAX programming. I wanted to learn more about this area, even if I didn’t consider myself a programmer.

Several months after joining the Kickstarter campaign, my OpenBCI 8-bit board came and I soon found it was too much to take on without a serious time commitment. My initial test was rough at best, and I found it difficult to do even basic stuff all by myself. This is not a very good solo project, and would work better with at least one other person. Without the headgear to keep the electrodes in place, it soon became a frustrating mess. The makers of OpenBCI say they want to make things more accessible, and I believe them. But what does “accessible” mean. There is a 3D-printable head-set solution, but I don’t know anyone with a 3D printer.

I put out feelers at a local medical center to see if anyone was interested in collaborating on an exploration of the OpenBCI platform, but no one responded. I also posted on some of the user boards to see if anyone might be interested in collaborating remotely. There is some hope that this will turn up something more fruitful.

When you get to some of these more specialized platforms. A lot of knowledge is assumed and it is so cutting edge that there isn’t enough basic info available. There weren’t enough tutorials available for the newbie when I first started. That seems to have changed.

I also felt like I needed some context. To better acquaint myself with this realm I started with “A Symphony in the Brain” by Jim Robbins. This was a helpful step in understanding the contentious backstory of this field, and it has helped me gain some perspective on next steps for my own exploration. While I’ve been away, the Open BCI folks have been busy offering a faster, better board. So I still think this is something I’ll be exploring in the future.

Category : Electronics


  • 0

Assam Guitar Booster

Assam Guitar Booster

Tayda Electronics (where I get many of my parts) calls this their “Super Hard On” circuit. I used a loose tea canister for the case. My brother helped me with the drilling since he has access to better tools.

It looks nice, though in terms of practicality, it’s not exactly suited for foot stomping. It works well as a preamp for a cigar guitar, which in this case uses nothing more than a piezo element and needs a bit of a boost.

Category : Electronics