Tag: chords

  • Synthesizing simple chords with sox

    SoX (now typically sox_ng) can do almost anything with audio files — including synthesize audio from scratch. Unfortunately, SoX’s syntax is more than a bit hard to follow, and the manual page isn’t the most clear. But there is one example in the manual that gives a glimpse of what SoX can do:

    play -n synth pl G2 pl B2 pl D3 pl G3 pl D4 pl G4 \ 
         delay 0 .05 .1 .15 .2 .25 remix - fade 0 4 .1 norm -1
    

    While it plays a nice chord, it’s not obvious how to make audio files from this process. I have a project coming up that needs a few simple guitar chords, and with much trial and error I got SoX to spit out audio files. Here’s what I keyed into the shell:

    cat guitar.txt | while read chord foo first third fifth
    do
    echo "$chord" :
    sox -n \
    -r 16000 -b 16 "chord-${chord}.wav" \
    synth pl "$first" pl "$third" pl "$fifth" \
    delay 0 .05 .1 \
    remix - \
    fade 0 1 .095 \
    norm -1
    done
    

    with these lines in the file “guitar.txt”

    G   :  G2  B2  D3
    C   :  C3  E3  G4
    D   :  D3  F#4 A3
    F   :  F3  A3  C4
    A   :  A3  C#4 E4
    E   :  E2  G#3 B3
    Em  :  E2  G3  B3
    

    How the SoX command line breaks down:

    • -n —use no input file: SoX is going to generate the audio itself
    • -r 16000 -b 16 “chord-${chord}.wav” — with a sample rate of 16 kHz and 16-bits per sample, write to the output file “chord-….wav”
    • synth pl “$first” pl “$third” pl “$fifth” —synthesize three plucked tones read from the file
    • delay 0 .05 .1 —delay the second tone 0.05 s after the first and likewise the third after the second. This simulates the striking of guitar strings very slightly apart.
    • remix – —mix the tones in an internal pipe to the output
    • fade 0 1 .095 —fade the audio smoothly down to nothing in 1 s
    • norm -1 —normalize the volume to -1 dB.

    The chords don’t sound great: they’re played on only three strings, so they sound very sparse. As my application will be playing these through a tiny MEMS speaker, I don’t think anyone will notice.

    Update: well, now I know how to do it, why not do all 36 autoharp strings and make the “magic ensues” sound of just about every TV show (okay, it was Bagpuss, but that was the only one that mattered) of my childhood?

    Glissando up:

    sox -n -r 48000 -b 16 autoharp-up.wav synth pl "F2" pl "G2" pl "C3" pl "D3" pl "E3" pl "F3" pl "F#3" pl "G3" pl "A3" pl "A#3" pl "B3" pl "C4" pl "C#4" pl "D4" pl "D#4" pl "E4" pl "F4" pl "F#4" pl "G4" pl "G#4" pl "A4" pl "A#4" pl "B4" pl "C5" pl "C#5" pl "D5" pl "D#5" pl "E5" pl "F5" pl "F#5" pl "G5" pl "G#5" pl "A5" pl "A#5" pl "B5" pl "C6" delay 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 1.05 1.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5 1.55 1.6 1.65 1.7 1.75 remix - fade 0 6 .1 norm -1

    Glissando down:

    sox -n -r 48000 -b 16 autoharp-down.wav synth pl "C6" pl "B5" pl "A#5" pl "A5" pl "G#5" pl "G5" pl "F#5" pl "F5" pl "E5" pl "D#5" pl "D5" pl "C#5" pl "C5" pl "B4" pl "A#4" pl "A4" pl "G#4" pl "G4" pl "F#4" pl "F4" pl "E4" pl "D#4" pl "D4" pl "C#4" pl "C4" pl "B3" pl "A#3" pl "A3" pl "G3" pl "F#3" pl "F3" pl "E3" pl "D3" pl "C3" pl "G2" pl "F2" delay 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 1.05 1.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5 1.55 1.6 1.65 1.7 1.75 remix - fade 0 6 .1 norm -1

    Could maybe use some reverb in there for the ultimate nostalgic effect.

     

  • a hand with the circle of fifths

    (originally posted on Banjo Hangout)

    I’ll give you a hand with this …
    a hand, with numbers

    Yeah, that’s my right hand. Spare me the tree-frog comments, but note how I’ve carefully numbered the fingers.

    You play banjo, so you know stuff in the key of G. So you know three chords: G, C and D7. Musicians are fiddly bunch, with all their sharps and flats and all, but notes go A B C D E F G, then back to A as they go up. If you start with G = 1, you’ll see that C = 4 and D = 5. Let’s not worry about the fact that you (probably) play a D7 chord, but look at the key of G hand:
    a hand, in the key of G

    For some reason (look up chord theory, or chord progressions) the 1, 4 and 5 chords sound good together. Some people write ’em as I, IV and V if they’re feeling all fancy and classical like.

    I hate to break it to you, but not all tunes are in the key of G. I know, it’s hard to take. What if it’s in A? Well, use the hand, with A as the first (or root) chord:
    a hand, in the key of A

    So to play those nice sounding 1-4-5 chords in A, you need to know A, D and E (or E7, if you’re feeling folky). In this case, the D pretty much has to be the real finger-stretching D chord (hard for us tree-frogs) or it’ll sound naff.

    If you’re singing along to your old Pete Seeger 78s, yer traditional folk/gospel/church songs are in C. Hand to the rescue!
    a hand, in the key of C

    So, for the key of C, you need the chords C, F and G (or G7). F is a nightmare on a guitar, easier on a banjo, easiest of all on an autoharp.

    Just in case you ever need a song in D, here’s that hand again:
    a hand, in the key of D

    You guessed it – D, G and A (or A7).

    That’s how Chris Coole taught me it. It’s a bit of a simplification, but it works for me.

  • banjo chord forms

    I’ve been trying to learn banjo chords for a while, and the books I have keep flopping closed. So I resolved to make a blank chord form that I could fill in, like this:

    You might wonder why it goes to the 7th fret. If you’re in Double C tuning, you’ll need that if you’re drawing a tuning chart.

    So for G tuning, the F chord would look like:

    There are 12 fretboard images to a page – that’s enough for four whole folk songs!

    Download: stewart’s banjo fretboard / chord grid [PDF].