Category Archives: Music

Building a Civil War Big Muff Pi on Stripboard

On a new YouTube channel, The Joy of Electronics, I build an Electro-Harmonix “Civil War” Big Muff Pi on a stripboard/veroboard PCB.

Building a $50 Klon Centaur Clone Kit

On a new YouTube channel, The Joy of Electronics, I build a Klon Centaur clone effects pedal from an inexpensive kit.

Video: Far From Any Road, True Detective Intro Song Cover

True Detective Intro

My gal Ester and I do a cover of the True Detective intro song, Far From Any Road, originally by The Handsome Family. The instruments used included guitar, melodica, ukulele, castanet, percussion frog and a snare drum. Recorded with a Shure SM58 for vocals, a Lexicon MX300 for the vocal reverb, a Shure SM57 for instruments and a MOTU Traveler.

Maker Wedding: Vinyl “flexi” record wedding invitations

wedding invites vinyl flexi records

My wife and I enjoy music immensely and are both enthusiastic musicians, with that in mind we decided to have vinyl “flexi” records cut for our wedding invites. You probably remember the flexible records or flexi-discs that sometimes came in magazines, or with children’s books — turns out the rumours of their demise are greatly exaggerated, they’re still around, perhaps even making a comeback.

After some preliminary investigation of the process we realized that dealing with a commercial recording just wasn’t going to work, copyright issues and permission issues would’ve bogged us down for months — so we decided to write and record our own collaborative instrumental song. A fun little tune we titled “Invited” was the result of a feverish week of writing, re-writing and recording (and re-recording).

The next hurdle was finding out the who and how of having them pressed, cut, printed, etc. The first place we found was Pirate Press but they were somewhat unresponsive and not at all impressed with our timeline or order size. We needed only about 150 and we were hoping to have them in 3 to 4 weeks, the regular turn-around is 5/6 weeks. Another place overseas (Northern Record Pressing, Norway) was quickly crossed off the list due to distance and our time constraints, in retrospect they may have worked out since we ended up dealing with international shipping anyway. With time running out I contacted David Read, The Vinyl Record Guru. David was friendly, helpful and while cautious regarding our timeline was willing to take on the project.

Once David was on board we mastered the recording and handed them off along with the printing template. We decided to print white ink on clear flexis to contrast the silver and black of various other items in our invite packages. Vinyl mastering was minimal as flexi audio quality leaves much to be desired we decided not to belabour the process, though some simple tips may have gone a long way, ie: center any low frequencies and assume anything below 40Hz or above 16Khz ain’t going to make it in. You can find more info here and here. You can also “simulate” what a recording is going to sound like on vinyl by either applying both a low and high pass filter or by running it through a VST such as iZotope’s Vinyl, which is what I’ve done for the simulated version below.
wedding invites vinyl flexi records
As it turned out, even though David is based in Canada, a lot of international shipping is required, the plates from Europe and the flexis themselves from the U.S. (perhaps from Pirate Press after all, I’m not sure), but in the end it took about 4 weeks to get the flexis after providing everything required — and they looked great!

A new needle for our portable record player from the good folks at Ring Audio in Toronto and we were off to the races. We paired the flexis with a sheet of translucent white vellum and stacked them with the rest of our invite package. The flexis are 7″ x 7″ and fit nicely into 7.5″ x 7.5″ envelopes — though these didn’t fit so nicely into some mailboxes. Another thing to keep in mind is that most paper places won’t stock this size of envelope, you’ll probably have to order them. We ordered ours from Paper-Papers and were quite pleased with the price and expedience, your local paper shop will most likely offer to order them for you but they’ll be ordering from the same supplier you can find online where you can have them shipped directly to you, without a markup.

All said and done, the flexis alone came in around $750, we had to settle for a minimum order of 250, by no means the most inexpensive invites but they came with the added benefit of having our original song on vinyl and, as musicians, that gives us the warm fuzzies.

Invited (MP3, Simulated Vinyl Version)
Invited (MP3)

Ester Pugliese (Lead Guitar, Electric Air Organ)
Phil Tucker (Rhythm Guitar, Lead Guitar Two/Three, Percussion)

Video: Triggering lights with guitar frequency levels

EQTrigger

Had an idea after catching this post on Hack a Day, why not use the frequency level values to trip a 120 volt relay? So I ordered some parts and did it. The audio analyzing chip, the MSGEQ7, is easily accessed using DFRobot’s DFR0126, which, being in Canada, I got from RobotShop. Connecting the breakout board to an Arduino Nano was a 5 minute job, sample code and a library is linked from the DFRobot product page. I initially used a potentiometer to input the threshold levels for the relay, but then realized I could use a momentary switch to sample the desired threshold and then use that to compare the real-time input to.

The circuit is simple, when a button (momentary stomp) is depressed, and we all get depressed sometimes, the code saves the input values from the audio analyzer. There are seven frequency bands it records, but I found only three or four of them are applicable to guitar, so ignore the lowest and perhaps the highest two. After a threshold has been recorded simply check the input against the recorded levels and trip the relay (or not).

I gave the thresholds a grace of 5 (on a theoretical input range of 0-1023), I may add a pot for this adjustment as it may vary based on guitar signal types. The result is quite versatile, you could have the relay turn off a mellow light and turn on a spastic light when the signal goes loud. If you pay close enough attention to EQ bands and levels you could trigger various lights based on a variety of guitar effects. This setup would also allow, albeit in a roundabout way, you to engage a guitar effect based on the frequency band levels, as long as the effect will pass-through without power then connecting it to the relay would engage the effect — or you could redesign this circuit to route some audio signals based on the input levels.


The pedal I stomp in the video is the MP-1 fuzz from Inductor Guitars, the EQTrigger pedal is connected to the extra output on a Boss TU-2 tuner and is reacting auto-magically to the change in guitar signal when I play louder or engage the fuzz.



Parts List

eqtrigger
Okay, so I didn’t spend a lot of time working out a clean circuit diagram — at least I didn’t use as much electrical tape in the diagram.

Arduino Sketch


#include <AudioAnalyzer.h>
Analyzer Audio = Analyzer(4,5,0);

int FreqVal[7];
int FreqThreshVal[7];

int switchPin = 3;
int switchValue = 0;

int relayPin = 2;

void setup()
{
  pinMode(relayPin, OUTPUT);
  pinMode(switchPin, INPUT);

  for(int i=0;i<7;i++)
    FreqThreshVal[i] = 512;

  //Serial.begin(57600);
  Audio.Init();
}

void loop()
{
  Audio.ReadFreq(FreqVal);//return 7 value of 7 bands pass filiter
                          //Frequency(Hz):63  160  400  1K  2.5K  6.25K  16K
                          //FreqVal[]:      0    1    2    3    4    5    6  

  switchValue = digitalRead(switchPin);  

  if(switchValue == HIGH)
  {
    for(int i=1;i<5;i++)
    {
       FreqThreshVal[i] = FreqVal[i];
       /*
       Serial.print(max((FreqVal[i]-100),0));

       if(i<6)
        Serial.print(",");
       else
        Serial.println(" SET ");
        */
    }
  }
  else
  {
    boolean thresholdMet = true;

    for(int i=1;i<5;i++)
    {
       //Serial.print(max((FreqVal[i]-100),0));

       if(FreqVal[i] < FreqThreshVal[i]-5)
         thresholdMet = false;

       /*
       if(i<6)
         Serial.print(",");
       else
         Serial.println(" READ ");
         */
    }  

    if(thresholdMet == true)
    {
      //Serial.println(" MET ");
      digitalWrite(relayPin, HIGH);
    }
    else
    {
      digitalWrite(relayPin, LOW);
    }
  }
}