Last time, I posted a short demo of Infinity at v0.8. Working hard to completion, we’re now at v0.91. Here are some of the latest pictures of the continually evolving “Iron Man” test guitar (click to zoom. It’s still a test guitar so you see all the battle scars, dings scratches and all :-)…):
Keeping it Simple
That last picture is the electronics mounted on an aluminum-backed scratch-plate serving as the main chassis. The electronics shown here include the standard Nu-Multi 6 near the bridge, plus two CV (Control Voltage) control pots for master volume and another assignable control as well as a 5-way CV switch. For those who are not familiar with the Nu System, these are “fly-by-wire” control potentiometers and switch that do not directly control anything, but instead generate control voltages that are converted to MIDI CC messages or MIDI program change (for the CV switch) that are sent to control external processors, your DAW, etc.
The Infinity control itself is intentionally kept very simple. I believe that the guitar should not look like a rocket ship. There’s a single rotary encoder with three basic functions: 1) Sustain level 2) Push to bypass 3) Long push (>10 secs) for level calibration. Currently, we have a small OLED display that indicates the “mode”, Sustain, Bypass, and Calibration and parameter value. Pretty straightforward, I think. I went through a lot of iterations with an interesting mix of features, but I seem to gravitate towards simplicity. In the end, I believe most of the exciting extra functionalities can be done in post-processing.
There are those that can’t (be done in the post-processing stage), such as individual sustain gain control, as Darren Wilson noted in the FB Group: “That’s always been the challenge with multi-string sustainers: some strings get “excited” into sustain more quickly than others.” That can be done. However, as it is right now, the control software already automatically balances out levels such that no single string dominates. There are multiple PID controllers, one for each string, that manage individual gains.
In the end, if I can manage to keep the controls simple, I can get rid of that OLED display, instead using a single RGB LED indicator incorporated as part of the rotary encoder itself. For example, Green can indicate sustain with varying intensity (off, dim, or bright, with intensity indicating sustain level), Red for bypass, and Blinking for configuration mode. I’m still mulling about Blue. It can probably be “High Emphasis”, which can control varying amounts of emphasis on the high strings since naturally, low strings have hefty sustain compared to high strings, with a 1.0 default, which gives all strings equal sustain levels.
In my opinion, simple is beautiful, but I am always open to be convinced if this user interface is too simple and that there’s this other function that I really must include. Tell me what you think… Let us discuss.
In my dream guitar, my holy-grail if you will, a single multi-channel pickup near the bridge, plus multi-channel sustain drivers near the neck is all I need. With it, I can do everything! It’s all about post processing the sustained signal far beyond what you see in todays processors which are more or less focused on modelling and emulations of traditional effects, amplifiers and speakers. I keep saying this and I’ll say it again: An imitation will always be an imitation. Period. Me, I want to explore new sounds, not the tired old sounds we’ve been hearing for decades now.
If you’ve been following this blog, you know that I am concurrently working on Ascend VPU, or virtual pickups. It’s the first of a planned series of post processors following the trajectory path of the initial project concept a few years back (see Infinity Control Panel). Post processors may include:
- Virtual Pickups: VPU, what we have right now in the short demo from my previous “Ascend” post —Intuitive controls for shaping the frequency response.
- Envelope Control: ADSR; multichannel control of attack, decay, sustain and release —shaping/sculpting the envelope.
- Waveshaping: Timbre control, beyond overdrive and distortion. Hey, this is not your grandpa’s distortion… —means to add extra harmonics without affecting the envelope. Envelope and timbre controls should be separate. Waveshaping should also be envelope controlled.
- Pitch detection —enables a lot of things! Once you know the pitch, you can apply the information for processing parameter control and synthesis.
- Direct synthesis. I gave a short presentation and proof of concept here: Fast and Efficient Pitch Detection: Synth Tracking —synthesis goes hand-in-hand with pitch detection. Look, no MIDI crap here.
- Pitch shifting: 12 string guitar, alternate tuning, pitch correction, etc. (You need a good pitch detector to implement good pitch shifting).
- Convolution and Impulse Response: Accurate IR based modelling.
From whence this journey started, it took a LOT of time for the components needed to develop and mature. I went on to implement these in a bottom-up approach, starting with the enabling technologies such as the DSP involved, including efficient and accurate pitch-detection. And mind you, the DSP is only half the game. Call me silly or what, but I also had to develop the GUI and plugin library needed to achieve multichannel control, which should run on multiple platforms, including the MacOS, Windows and Linux, both as Audio plugins and as standalone applications (the Elements C++ GUI library).
Now, I think the summit is within reach. Or is it? ;-)…