Digitally Modelling the Sound of a Pedal Steel Guitar
The techniques for a digital model of acoustic strings has been around for some time now. Basically, you set up a Digital Waveguide which consists of a feedback loop through a delay line, with the feedback gain very close to 1. The frequency you will hear can be adjusted by changing the delay line length, and the tonal quality of the sound can be changed by adding a more complex digital filter in the loop. This filter can be tuned to simulate frequency dependent decay times of the harmonics of the instrument due to body resonances, sympathetic string vibration, pickup style, and countless other details of the physical construction of the instrument.
So to begin construction of my synthetic slide guitar sound, I first gathered as much data as I could about the sound of an actual guitar. This took a trip down to Gryphon Stringed Instruments in Palo Alto, CA for a session with Paul Jacobs, resident steel slider. In the name of science (and just cause he's a cool dude), Me and Paul sat down with cousin of the pedal steel, the lap steel (no pedals), and recorded a number of different isolated tones that I could then take and analyse to construct my digital filter. We started with each string open, plucking it once and letting it ring until we couldn't hear any sound anymore. This was done once while also muting the other strings, and once while letting all strings ring together. We then moved on to harmonics and then placing the slide in various places (5th fret, 12th fret), just to see how it was different with the metal bar adding to the equation. We did this one with a direct signal into my recording device, and then once again using a send output from a guitar amp. Finally we just let Paul take it home with a good Bob Wills jam that made me really happy I met the guy.
Armed with these unadultered slide guitar sound samples, I set on a course for our TA Nelson Lee, resident expert on extracting mathematical data from string samples. With his help, we were able to construct a matlab M-File that runs through the sound sample, finds the harmonic frequencies (partials), calculates the gain and decay time of each partial, and finally uses this data to create filter coefficients which can be plugged into a difference equation to produce a digital filter with the same frequency response of our recorded string sample.
Here is an image of the filter produced by analysing 33 partials, and just low pass filtering after that.
Make yer own difference equation!
For those interested, the filter coefficients (at 33 partials!) derived are:
- B: = 0.9583, -0.6607, -0.2467, 1.3498, -0.8439, -0.0243, 0.5850, -0.2736, -0.0195, 0.0325, -0.0080
- A: = 1.0000, -0.7522, -0.1876, 1.4026, -0.9708, 0.0622, 0.5874, -0.3183, 0.0067, 0.0294, -0.0098