After a few iterations using my favourite graphics tools (Photoshop, Illustrator, iDraw, and Solidworks (for anything 3D)), I think this is the minimal interface I really like. I prefer using 3D CAD software for designing GUI controls even if in the end, you won’t really see the finer details once the images are rendered to a 72dpi screen (see slider at the right). I love solid modeling and Solidworks is simply irresistible, once you get to know the software. There’s also this nice Java app for designing knobs called KnobMan. It’s so nifty! And it’s free. it’s so useful I didn’t hesitate to donate, never mind if it’s written in Java (argh!). I used KnobMan to design and render the sprites needed to animate the knobs.
Controls
- Mixer: The usual suspects: level, pan and enable switch for each channel, mix to stereo.
- Envelope: The sliders control attack/decay ratio (horizontal axis) and the sustain level (vertical axis). The first two knobs control the attack, decay and sustain rates. The third knob controls frequency scaling. Typically, plucked string instruments have less sustain, the higher the frequency (e.g. for guitars, the low E string sustains longer than the high E string). Frequency scaling controls sustain reduction as you go up in pitch.
- Virtual Pickups: Here’s where you control timbre using virtual pickup simulation (see Virtual Pickups Series: Part 1, Part 2, Part 3). The upper sliders control pickup placement and skew. You can have up to three virtual pickups with controls for level, cutoff: low-pass cutoff frequency and resonance (Q). You can choose single or double coil, in-phase or out of phase and pitch tracking. What is pitch tracking? Imagine the pickup moving closer to the bridge as you fret upwards. With pitch tracking on, the same harmonic shape tracks the pitch —the nodes and antinodes follow the pitch. With pitch tracking off, the harmonic shape is fixed.
Future Features
We’ll improve this interface incrementally over time. Additional features I am excited about are:
- Waveshaping: Distortion/overdrive in steroids. I want this to be envelope controlled. And, since we have independent control of sustain, we do not need to push this too hard to get that silky sustain heavy metal folks love. It’s purpose will be solely for timbre control. It’s all about tone!
- Waveguide and Karplus-Strong synthesis. I’m a fan of sympathetic resonance. I love innovative (and sometimes weird!) instruments that make use of sympathetically resonating strings such as the Hardanger fiddle, Harp guitars, and instruments with a third-bridge. Now, imagine the actual guitar signal driving some synthesised virtual strings. Waveguide and Karplus-Strong synthesis should not be limited to sympathetic resonance. The piano, for example, has two or three strings per note, which gives it its distinct harmonic quality from the complex interaction of the strings.
- Pitch shifting: Global and independent pitch control for alternate tunings, pitch changes, and even whammy bar effects (e.g. using a ribbon controller). Vance Galloway elaborates: I actually rather like what the VG-99 does whereby the user has control of the “tuning” of the guitar, then can decide to double any string (like a 12 string guitar) with the doubling string at any pitch and volume relative to the original, then also have control of “bend” for each string (enabling a pedal steel type effect by using a controller to ‘bend’ any set of strings by any amount, and then also have a “whammy bar” type bend for all strings. The VG-99 does a good job at this. That said – your system could go far beyond this by allowing much more real time control of tunings, more than one doubled string (4 chorused strings anyone?!).
And again from Vance: what about a “self tuning” mechanism. That is: a pitch shifter which is intended to correct tuning of the instrument. The old Roland VG-8 had this feature. You out the system into “listen” mode, then play all of the open strings, the system detects how much each string is out of tune and applies a pitch shifter to that string to compensate. I’m not thinking of anything as elaborate as Antares’ board which does real-time intonation correction, but rather just a quick way to correct for a guitar that has gone out of tune.
Here’s one from David Myka: A virtual TransTrem concept where each string can be pitch bent individually to harmonize through a scale, or descend atonally, or anything. A modified rotary controller with a tensioned bar could be installed in the guitar to control it. Xaled Xaled adds: virtual capo would be a nice feature as well. Obviously per string in advanced mode. Controlling advanced settings can be done using fret control:http://www.autotuneforguitar.com/technology/fret-control.php. - Convolution and Impulse Response. You want accurate modeling? Nothing else compares. I’m thinking about the ability to morph between two impulse responses. Imagine smoothly morphing from a classical guitar timbre to a solid body electric.
- Chris Varnon suggested individual envelope, pickup location or other controls for each pickup. It would add a lot of clutter to the current interface so maybe that would be better for an “advanced mode” tab. Vance Galloway adds: One interesting feature of the Roland VG-88 was its ability to place the virtual pickup on a per-string basis. I found that this really produced some interesting effects – I could “tune” the pickup placement for each song I played, so that each pickup for each string produced just the right timber. Being able to switch or even morph between pickup locations on a per string basis is going to be quite powerful.
- Mark Galang reminded me of control over partials/harmonics especially when using the sustainer driver. Úlfur Hansson did quite some amazing things with partials/harmonics control using our much loved comb-filters in his electro-magnetic harp. I know how it’s done. It’s just a matter of presenting an intuitive user interface.
- Yet another idea for “someday” from Vance Galloway: Even though we have a sustainer in this system, I would love to see a polyphonic “hold” effect implemented. Perhaps this is one best suited for the laptop to do, bit it would be neat to have it inside the guitar. Electroharmonix has a monophonic pedal version of this effect and the VG-99 has a polyphonic version, and it’s really quite powerful and useful. Basically it’s a small looping delay with a very smooth crossfade designed to “hold” whatever note is currently playing. It’s an intimate sustain.
The Roland VG-99 version is near because it’s polyphonic (separate delay/sustain/loop) for each string.What they fall short on is that the user has no control of which strings are intimately sustained and which are not – all strings sustain, or none sustain.Imagine a multichannel/polyphonic version of this where the user could turn on/off the sustain on a per string basis.One could imagine being able to hold some strings and not others. Or, what if Sustain was turned on by the attack of a new note – you could create sustained chords which would be possible to play in real time by doing something like playing an open E on the low E string, then a E at the 7th fret of the A string, then a B at the 9th fret of the D string, then a G# on the 13th fret of the G string, another E at the 17th fret of the B string and a super high E on the 24th fret of the high E string.Each string would automatically enter its “hold” mode when a new note was played on it. - David Myka on sustain control: The sustain per sting is an awesome idea and one of the most exciting things about this design. Perhaps the level of sustain could be controlled with small ribbon controllers (one for each string) and they could be induced into sustain when strumming a chord and then sliding up the gain. I wonder if a reset button could also be employed. Something that either tops the sustain immediately or gradually. Just thinking out loud.
- From Xaled Xaled: Polyphonic MIDI-out would be a great side project.
What else? If you have something in mind, tell me what you think!
If an advanced tab is present, Each string should be mappable independently. Savable presets would also be useful.
If you’re doing convolution and impulse response, why stop at classical guitars? Violins would be cool too
There’s a lot of possibilities with convolution indeed, Asher. Anyway, let’s take this one step at a time 🙂
Oh, and yes, savable presets is a given, in a software based system.