Category Archives: Electronics

Infinity Control Panel

      Infinity, Neo Series, Open Source, Pickups, Software


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). slider-whiteI 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.


  1. Mixer: The usual suspects: level, pan and enable switch for each channel, mix to stereo.
  2. 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.
  3. 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 fiddleHarp 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:
  • 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!


Neo Base Boards

      Electronics, Neo Series, Open Source, Pickups

To make it easier for 7 and 8 string extended range guitar users to get started with the Neo Series Active Multichannel Pickups, you can find in this page some design files for Neo7 and Neo8 base boards. The boards include all the necessary components: the D.C. blocking capacitors and the output headers. The boards can accommodate a combination of Neo1 and Neo2 pickups including the VRef module. See Neo Series Datasheet and Wiring Options for more information.

We do not intend to sell these boards. I provide them here only as service to those who already purchased (or intend to purchase) Neo1 and Neo2 pickups.

You can use these files as-is, or modify the layout to suit your particular needs. We use CadSoft EAGLE PCB Design Software for schematics and layout. For PCB prototyping and manufacturing, I highly recommend both Elecrow, and Seeed studio for rapid prototyping and PCB services. Both are based in Shenzen China. The prices are very reasonable. For example, a 2 Layer 5 * 5cm Max is just $9.90 for 5 to 10 boards (they always give us 10). The quality is superb. Shenzen is a significant hub for the Open Source Hardware revolution currently taking shape! The turnaround time is just a few days, excluding shipping.

Assembled Boards

7-8-base-boards-back 7-8-base-boards-front


Design Files

 Neo7 Base Board (CAD File, BOM, Eagle Schematics, Board, Layout, 3D files)
 Neo8 Base Board (CAD File, BOM, Eagle Schematics, Board, Layout, 3D files)

The Neo is entirely Open Source. The designs (schematics, PCB layout, software, bill of materials, CAD drawings and source code) are freely shared, 100% free, under the Creative Commons Attribution 3.0 Unported License. That means you can use the designs in your own projects, even commercial ones.

Creative Commons License Neo active pickups by Cycfi Research is licensed under a Creative Commons Attribution 3.0 Unported License.

Infinity Driver v0.93 Prototype

      Electronics, Infinity

From 3D model to actual prototype, here’s the Infinity Driver v0.93, front and back views. The coils are 16Ω gauge 35 magnet wire, with Neodymium N42 core. The 5mm high coils are shielded by 2.5mm thick permalloy rings. The rings focus the magnetic field and minimise electro-magnetic fields leaking out from the coil. The amplifiers are 3 pairs of high-efficiency 2.4W Class D amplifiers: MAX98302. The entire assembly fits inside a standard humbucker.

3D Model


3D Model Infinity Drivers Front


3D Model Infinity Drivers Back

Actual Prototype

Infinity Drivers Front

Infinity Drivers Front


Infinity Drivers Back


Virtual Pickups Part 3

      DSP, Electronics, Filters, Neo Series, Pickups

This is the third and final instalment of the Virtual Pickups series. I changed the title from Virtual Pickup Placement to better express the actual subject which will now go beyond pickup placement. This time, we will talk about simulating pickup width —its aperture. We will also talk about compensating for the actual pickup’s comb filter effect using an inverse comb filter. Finally, we’ll deal with the electrical characteristics of pickups.

Feel free to review the previous articles:

Pickup Width

Referring to J. Donald Tillman’s article again, we will simulate the effect of pickup width. Pickups sense the string over an area spanning the width of the pickup’s magnetic field. This sensing area is the “aperture” of the pickup. Various pickups have different widths. The article mentions 1 inch for the typical single-coil and 2.5 inches for the typical PAF style humbucker.

If you read the first article in this series, you know that a single pickup point can be simulated using a feedforward comb filter. To simulate pickup width, we want to average all the points over the aperture of the pickup. Here are the computed frequency response of a 1 inch single-coil pickup and a 2.5 inch humbucker-stype pickup.

The filtering effect of a 1.0 inch wide pickup on the low E string. -3dB point 1820 Hz, first null 4200 Hz.

The filtering effect of a 2.5 inch wide pickup on the low E string. -3dB point 728 Hz, first null, 1680 Hz.

Notice the low-pass response with a 6dB per octave slope with unity gain at D.C. This is the effect of integration. I was able to replicate this frequency response using an integrator and a comb filter.

Integrator plus Feedforward Comb Filter.

Integrator plus Feedforward Comb Filter.

The filter integrates (accumulates) all the incoming signal and subtracts the delayed signal with a delay time proportional to the ½ the aperture size of the pickup. With a sampling frequency of 44100 samples per second, the delay line for the entire length of the E string will be 535.12 samples (44100 / 82.41). For a scale length of 25.5 inches and a pickup aperture of 2.5 inches, the delay line required will be: 535.12 x 2.5 / 25.5 = 52.46 samples.

Here’s the actual frequency response given the comb-filter configuration above for a 1 inch single-coil pickup and a 2.5 inch humbucker-type pickup.

1 inch wide pickup response.

1 inch wide pickup response.

2.5 inch pickup response.

2.5 inch pickup response.

These frequency graphs are exactly as expected. Now all we have to do is cascade that with our previous filters.

After some listening tests (I’ll share some more sound clips hopefully soon), I find the pickup width filters make the sound too muddy. The details are somehow lost. I think there are a couple of issues with the model Mr. Tillman proposes in his article. In this model, for example, he assumes that averaging the point response over the aperture length, while isn’t completely accurate, makes a fine first approximation. I don’t think I agree with that. The sensitivity near the poles is crucial. For actual pickups, the response falls off very rapidly beyond 0.4” (10 mm) from the poles (see Practical Pickup Measurements). Also, the aperture width of 2.5 inches for a humbucker and 1.0 inch for a single coil are too wide. I had better results with a 1.25 inch wide aperture for a humbucker. I’m not sure how he derived the 2.5 inch wide aperture. I measured the pickup width of a humbucker and it is indeed 1.25 inch wide. I also think that a zero (or close to zero) aperture width for a single coil sounds best.

In the end, for a humbucker, I find that simply placing two pickups side by side, spaced 0.68” apart, gives the best results. 0.68” happens to be the pole spacing of a typical PAF style humbucker. Here’s the frequency response I got:

Double Coil Pickup Response

Double Coil Pickup Response

Double virtual coils, plus a resonant low-pass filter (see Pickup Electrical Characteristics section below), sound very convincing for a humbucker.

Inverse Comb

Want to go further? The astute reader will ask: OK, but how about the response of the actual (non-virtual) pickup? Wouldn’t that have its own comb notches that imparts its own colour? Yes it will! And to compensate for that, we need an inverse comb filter. That can be done using a feedback comb filter. Recall:


The frequency response of a feedforward and a feedback comb filter, for the open E string, are as follows:

Feedforward Comb Filter Spectrum

Feedforward Comb Filter Spectrum.

Feedback Comb Filter Spectrum.

Feedback Comb Filter Spectrum.

Notice that the Feedback Comb Filter Spectrum is the inverse of the Feedforward Comb Filter Spectrum. We can use a feedback comb as a pre-filter to negate the effect of the actual pickup. The amount of signal being fed back should be less than 100% for this to be stable, otherwise, you will get infinite repeats.

Pickup Electrical Characteristics

Finally, what we haven’t covered yet is the effect of the actual pickups’s electrical characteristics. This is the easy part! The guitar pickup is equivalent to this circuit (lifted from The Secrets of Electric Guitar Pickups by Helmuth E. W. Lemme):

Electrical equivalent circuit of a magnetic pickup.

Electrical equivalent circuit of a magnetic pickup.

This is a simple resonant low-pass filter (adjustable frequency and Q with a 12db per octave slope). The effect is independent from the scale length and string tuning and can therefore be placed after everything else. Ideally, you will need one of these per virtual pickup. More if you want multiple resonant peaks.

Here’s a link to a table of different resonant frequencies of some well-know pickups. The graph below is the EQ settings for a resonant low-pass filter set at 3.3 kHz and a Q of 2.5:

Resonant Low Pass Filter

Resonant Low Pass Filter

Photographs and Paintings

starry-nightLet me reiterate that I am not aiming for exact emulation of specific guitars. I want to use emulation only as a starting point so the user will have something familiar to start with.

Accurate emulations can be achieved using convolution from sampled impulse responses of various instruments. Convolution with Impulse Responses can accurately capture anything: expensive microphones, vintage EQs, speaker cabinet response, full cathedral reverberations, etc. Essentially, anything that can be modeled as a filter can be captured. And yes, the guitar pickup as well as the guitar body are just filters!

One major drawback of convolution is that it is computationally expensive. Of course, we now live in a world full of very powerful multi-core processors, so that’s not really a problem anymore. Later, we’ll definitely take advantage of convolution. The math and the algorithms are already well established. We’ll have more on that soon!

Another drawback of convolution is the lack of intuitive control. With convolution, we work with sampled impulse responses which are basically raw waveforms in memory. It is possible to tweak an impulse response in the frequency domain (its spectrum), but that’s it. Doing so is like tweaking a very detailed EQ (much like editing a terrain map). The EQ’s frequency response does not say anything about pickup positions, pickup width, combining pickups, body resonance, etc.

The process of capturing an impulse response is sampling. A friend asked me once about the difference between a synthesiser (analog, FM, etc.) and a sampler. My analogy: the sound generated by synthesisers and samplers are analogous to paintings and photographs. Sampler files are like photographs. They are snapshots of the real world. On the other hand, sound generation using various forms of synthesis are like paintings. The artist uses various tools like brushes and paint to capture the real (or unreal!) world.

So here, I am donning a painter’s hat. I want to paint the sound, instead of taking a photograph of the sound. Later, I’ll wear a photographer’s hat and combine the best of both worlds.

There you go! Next time, I will present some C++ code! We’ll also see some more audio samples with combinations of these filters in action.

Get Rad and Prosper!

Further Reading

  1. Convolution
  2. Convolution Processing with Impulse Responses
  3. Response Effects of Guitar Pickup Position and Width
  4. The Secrets of Electric Guitar Pickups
  5. Measuring Impedance and Frequency Response
  6. Resonant frequencies of some well-know pickups
    for various parallel capacitors
  7. Practical Pickup Measurements


Virtual Pickups Part 2

      DSP, Electronics, Filters, Neo Series, Pickups

Last week, I stated that given a multichannel pickup with a wide and flat frequency response such as the Neo, it is possible to reproduce the frequency response of various pickup positions (bridge, neck, middle —anywhere from the nut to the bridge) without actually moving the pickup. But we can do better! We can actually emulate multiple pickups using multiple comb filters. Scroll down for some sound clips!

To be clear, I am not aiming for emulation of specific guitars (On Emulation, July 2013). I want to use emulation only as a starting point so the user will have something familiar to start with. Once that is established, we can move on to explore entirely new tonal palette —timbres we’ve never heard before. It’s just one of the filtering possibilities, and one that we guitar players are familiar with.

To recap, we can use comb filters to simulate pickup placement. A Feedforward comb filter with a delay of 133.78 samples (at 44100 samples per second) can simulate the neck pickup for the low-E string. By varying the delay line, you can simulate various pickup placements.

Feedforward Comb Filter

Feedforward Comb Filter

Again, if you want to learn the math, read the splendid article by J. Donald Tillman: Response Effects of Guitar Pickup Position and Width. I am using that as reference in this article.

Delay lines and comb filters are quite powerful beasts. They are the fundamental building blocks of Waveguide and Karplus-Strong Synthesis, which we’ll explore in the future. To give you a hint, we’ll be combining processing and direct manipulation of sound together with synthesis.

Two Pickups

I particularly like the neck plus middle pickups on a Strat or Super-strat (e.g. SSS, HSH), especially when playing clean. I love the glassy, chime-like timbre. It’s the interaction between the two pickups that gives it its nice flavour (it is well known that this switch setting was discovered by accident). Here’s the computed frequency response of the neck plus middle pickup on the Strat. This graph was lifted from another Donald Tillman article about Response Effects of Guitar Pickup Mixing.neck-middle-spectrum

Following the article, I was able to build the comb-filter configuration in the figure below:

Cascaded comb filters

Cascaded comb filters

Where D1 is the average pickup delay of two pickups: (P2 + P1) / 2 and D2 is the distance between the two pickups divided by two: (P2 – P1) / 2. I won’t bore you with the math. Again, if you want to know more, read up on the articles mentioned above.

The cascaded comb filters are basically the same as before, but notice that the gain of the second comb filter is +1. It is called a Cosine Comb filter. The first is a Sine Comb filter. They behave differently in terms of frequency response. The Cosine Comb filter has unity gain at D.C. and has nodes that only occur at odd multiples instead of at all multiples.

With that configuration wired up in C++ code, I was able to get the expected frequency response:


Neck plus middle pickups frequency response.

Take note that these are actual frequency response plots. I am using Blue Cat’s FreqAnalyst, a realtime spectrum analyser plug-in, to monitor the output using a sine sweep from 20Hz to 20kHz as input to the filter. These graphs correspond exactly to the computed plots in the Response Effects of Guitar Pickup Mixing article.

Three or more Pickups

Alas, the two pickup configuration above does not extend to three or more pickups. That’s where the article stopped with a rather unfulfilling conclusion: “It’s pretty complicated; I will not be going in an analysis of this here”. So it took quite a bit of time for me to figure out how to implement mixing multiple pickups. You can’t just run the filters in parallel and mix the results, no! If you add two sine waves, both 1kHz, the result will not necessarily be 2x sine wave at 1kHz. If the sine waves are out of phase, you will get 0! They will cancel out. We need to account for the phase! Now, we are going into the Superposition territory.

To cut the long story short, the bottom line is that you need to adjust for the additional phase (delays) for each pickup relative to a fixed reference point. That reference point is arbitrary. I chose the middle of the neck as my reference point. That way, I can dynamically move the pickups anywhere from the bridge to the 12th fret (Say again? A pickup in the 12th fret?), in realtime, while performing!

The diagram below depicts the three comb configuration for simulating three pickups:


Three pickup emulation using comb filters

This configuration can be extended for any number of pickups. What’s really nice about this configuration is that it is also possible to do all sorts of nifty things such as reverse phase connections and arbitrary control of mix levels for each pickup. Adjusting the mix between the two pickups makes it possible to cancel the fundamental, for example.

D1, D2 and D3 are the individual pickup delays as usual. D1C, D2C and D3C are the phase compensation delays. They are there to normalise the phase of each pickup to a common reference point at ½ the full length of the guitar from the nut to the bridge (i.e. the 12th fret). Given Ref, the reference point delay, D1C, D2C and D3C are computed as follows:

D1C = (Ref – D1) / 2
D2C = (Ref – D2) / 2
D3C = (Ref – D3) / 2

For example, for the low E string (at 82.406889 Hz), and a sampling frequency at 44100 samples per second, the reference delay, Ref, is (44100 / 82.406889) / 2 = 267.574717. D1, D2 and D3 are computed as ratios using the actual pickup positions of a Strat with a 25.5 inch scale:

Neck Pickup: 6.375 inches from bridge = 133.7873585 samples delay
Middle Pickup: 3.875 inches from bridge = 81.3217277 samples delay
Bridge Pickup: 1.625 inches from bridge = 34.10266001 samples delay

The observant reader will notice the fractional delays used here. They are needed for accurate frequency computations.

So, finally, with this three comb filter configuration, I was able to recreate the graph near the bottom of the Response Effects of Guitar Pickup Mixing article. Here’s the computed frequency response:

Frequency response plot for an even 33/33/33 mix of the neck, middle and bridge pickups.

Here’s the actual frequency response:


Neck plus middle plus bridge pickups frequency response.

Sound Samples

Finally, here are some audio samples. These are all recorded without effects (except the comb filters of course) from a Neo6 master sample (sustained E string). Yes, all these timbres came from a single source pickup!

Raw Neo (No filter)
Neck + Middle
Neck + Bridge
Neck + Middle + Bridge
Middle + Bridge
Pickup at the 12th fret

‘Till Next Week

Okidoki, that’s it for today. Next time, we’ll wrap up this three part article with a few more bits and pieces such as simulation of pickup aperture and compensation for the comb filter notches of the actual pickup. We’ll also cover emulation of humbuckers. Also, we might touch up a bit on user interfaces and real time control.

Further Reading


Virtual Pickups Part 1

      DSP, Electronics, Filters, Neo Series, Pickups

It’s Sunday. What better way to spend the day than to do some DSP hacking. Today, it will be about Virtual Pickup Placement.

A well-known DSP guru remarked, “When you think about it, everything is a filter”. Given a multichannel pickup with a wide and flat frequency response such as the Neo, it is possible to reproduce the frequency response of various pickup positions (bridge, neck, middle —anywhere from the nut to the bridge) without actually moving the pickup.

This can be done using delay lines. I love delay lines. There’s a lot you can do using delays. Here, I’m not talking about echoes and reverbs. I’m talking about delays in the nanoseconds to milliseconds range with or without feedback (like the chorus or flanger, respectively) possibly with multi-taps. A delay line is a filter!

If you like math, here’s a good article explaining all these: Response Effects of Guitar Pickup Position and Width. If not, I’ll try to explain it as simply as I can.

Standing Waves

The string is a very resonant filter. It’s all about standing waves. When you pluck an open E string, it vibrates in multiple ways. Try it and observe. You’ll see waves like these happening all at the same time:waves The most obvious is the fundamental frequency centered on the 12th fret (In the figure above, imagine the nut at the left and the bridge at the right). If you have a keen eye, the other harmonics are quite visible too (Get a strobe light, if you have one, to freeze the waves!). No, your eyes can’t really see a wave moving at 82 cycles per second (the open E string frequency). Instead, what you are actually seeing are the standing waves.

Nodes, Antinodes and Pickup Position

Some definitions: A node is a point where a string has minimal motion and an antinode is the point where the string has maximum motion. The 2nd harmonic, for example, has a node exactly at the middle (the 12th fret). It has two antinodes at ¼ (the 5th fret) and ¾ the length of the string. The fundamental has nodes only at the nut and the bridge and an antinode in the middle (the 12th fret).

Now here’s the thing: if you place a pickup pole at a certain node, the harmonic, and its multiples, will be attenuated. On the other hand, if the pickup is positioned at an antinode, the harmonic, and multiples thereof, will be prominent. For example, the Strat neck pickup happens to be positioned at about ¾ the distance from the nut to the bridge. Hence, that pickup will not be able to sense the 4th harmonic and all its mulitples (8th, 16th, etc.). Take note however that the Strat’s neck pickup also happens to be placed at an antinode of the 2nd harmonic (see figure below). These are the reasons why the 2nd harmonic is very prominent (stronger than the fundamental in fact) and for the dead 4th harmonic of E, when using the neck pickup.bridge-nodes

Comb Filters

The effect of pickup placement gives us a frequency response like that of a comb filter. It is called a comb filter because its frequency response consists of a series of notches and spikes reminiscent of a comb. There are two varieties: feedforward and feedback comb filters.

The Feedforward comb filter subtracts a delayed version of the signal from the incoming signal. A good example of a Feedforward comb filter is the Chorus effect. The Feedback comb filter reverses this configuration. The Feedback comb filter mixes the incoming signal with the delayed version of the outgoing signal, fed back to the delay line (feedback). The amount of signal being fed back should be less than 100% for this to be stable, otherwise, you will get infinite repeats. The flanger is a good example of a Feedback comb filter.


For the E string, at 82.41 Hz, and the pickup positioned ¾ the distance from the nut to the bridge (the Strat neck position), the nodes will start from 329.64 Hz (82.41 Hz x 4 —the 4th harmonic), repeating in regular intervals (multiples of 329.64): 659.28, 988.92, 1318.56, 1648.2, 1977.84, 2307.48, 2637.12 and so on.

The article I mentioned above (Response Effects of Guitar Pickup Position and Width) includes this graph of the computed frequency response:

Computed Frequency Response of the neck pickup (E string, 82 Hz, 25.5-inch scale, pickup located 6.375 inches from the bridge).

This spectrum is equivalent to that of a feedforward comb filter. I hacked one in C++ and the actual result I got was exactly as expected. This is the actual frequency response:

feedforward-spectrumTo get the graph above, I wrote the comb filter as an AU plugin so I can use it in Logic Pro (my preferred audio workstation). In this test, I used a sine sweep from 20Hz to 20kHz as input to the comb filter plugin. I am using Blue Cat’s FreqAnalyst, a realtime spectrum analyser plug-in.

The example above is for the low E string. You will need one of these comb filters per string because the length of the delay is related to the frequency of the open string. At 44100 samples per second, the delay line for the E string will require at most 535.12 samples (44100 / 82.41). What? 535.12 samples? Yes, that implies that we actually need fractional delay lines using some kind of interpolation. To simulate the neck pickup, you will need a delay of 535.12 / 4 = 133.78 samples.

By varying the delay line, you can simulate various pickup placements and even smoothly change the pickup position in realtime while performing!

OK, that’s all for now, next time, we’ll talk about simulating two or more pickups, we’ll investigate other factors such as pickup width and how to compensate for the effects of the actual (non virtual) pickup placement. We’ll also talk about user interfaces and other details pertaining to performance and control of a multichannel pickup.

Further Reading

  1. What is a Filter?
  2. Standing Waves
  3. Standing Waves and Musical Instruments
  4. Response Effects of Guitar Pickup Position and Width
  5. Guitar Pickups – Tone & Timbre
  6. Comb Filters
  7. Fractional Delay Filtering by Linear Interpolation

NeoM Modeling Pickups

      Electronics, NeoM, Pickups

Here’s some exciting news! Tired of the same old 50s Mojo? We will soon be releasing two new full-range pickups designed for modeling: the NeoM SC (single-coil) and NeoM HB (humbucker).

(Update: the switches may be removed. See comments below. Instead, we will provide optional resonant filters as an add-on. Tell us what you think!)



What is modeling? If you’ve seen the demo of the Neo multichannel pickups, we were able to easily sculpt the tone using EQ matching to capture the frequency response of another pickup or even an acoustic guitar. There’s so much flexibility and power there!

A full bandwidth pickup will give you complete freedom to shape the frequency response —it’s the perfect blank canvas.

The NeoM Modeling pickups have the same flat frequency response as their siblings, the Neo Series Active Multichannel pickups. These are active pickups utilising very low impedance (Lo-Z) coils with an ultra low-noise preamplifier to boost the lower level Lo-Z signal.

Thanks to modern SMT electronics, the NeoM pickups also feature a built-in resonant filter right there in the pickup, allowing you to sculpt the tone from twangy 50s Mojo to crystal clear HiFi, without requiring external tone controls or equalisers.

Unlike the original Neo series, these pickups are meant to be installed just like any other active pickup. We will provide an easy install (no soldering) system. All components are premium grade. No cutting corners!


A double-coil humbucking variant will also be available. Both versions incorporate the same Lo-Z technology from its predecessor, the Multichannel Neo Series. Both boast extremely low noise preamplifiers. Like the single-coil variant, the humbucker also contains a built-in resonant filter. Both versions are noiseless.



Resonant EQ

Technically speaking, a pickup is an audio voltage source followed by a second-order lowpass filter. The tone (colour) of the pickup is characterised by its cut-off frequency and its resonance contour —the so-called Quality factor or simply Q. The NeoM has a couple of switches for setting the cutoff-frequency and Q plus an additional bypass switch (if you need to get the full, flat frequency range). The switches are slightly recessed to avoid accidental switching.


Resonant Filter

The controls give you 9 of preselected voices (3 x 3), plus bypass to full-range, for a total of 10 voices per pickup!

F Control

The F switch controls the cutoff-frequency. Lo is preset to 2kHz, Mid to 3kHz and Hi to 6KHz. These are the frequencies that give you the classic tones of electric guitars that we all can’t ever get enough of. We’ve done a lot of frequency analysis with many hours of listening tests before we arrived at these sweet frequencies.


Cutoff Frequency

Q Control

Q controls the resonance of the filter and determines the steepness of the curve. There are three Q presets Lo, Mid and Hi. The higher the Q, the narrower and sharper the peak is. A narrow peak gives a more pronounced filter effect at the cutoff-frequency. A gentler slope gives you a mellower, rounded tone.


Quality factor

As you can see in the graph above, a higher Q produces higher gain. The Q switch compensates for the gain at each setting (1.0 [0dB], 2.5 [8dB] and 3.75 [12dB]) with a corresponding gain reduction before the filter so we have constant gain for all Q settings. This prevents the filter from clipping and produces an overall balanced output regardless of switch position.


Compensated Q settings

The Infinity Project

      Design, DSP, Electronics, Hardware, Infinity, Neo Series, Open Source, Pickups, Software

We want to push the limits of what we can do with the electric guitar. The Neo project (starting from the Six pack project) is a stepping stone towards our goal. And from the very start, our goal has always been polyphonic sustain. Polyphonic sustain, plus extensive processing for each string, will give us musicians full control over the dynamics of the guitar. This is my holy grail and as you can see in our previous proof of concept demonstration, we’ve come closer to that goal than ever before.

Presenting the Infinity Polyphonic Sustain system:


Digital Control


Driver coils with integrated amplifiers.

It takes a lot more than just slapping together six EBows. A very early prototype employed a 6x analog feedback system just like the Ebow. It worked but was rather unwieldy and impractical. The phase at the driver (neck position) lags behind the phase at the pickup (bridge position) and you need some form of phase shifting (using analog filters) to align the phase properly for sustained oscillation. Without phase shifting, you have to use more force than necessary to get the string to oscillate, and that wastes too much power.

All it should take is a little nudge. That’s what I always say. I think current breed of analog sustainers inefficiently use too much power. If you pull at the right moment with just the right amount of force, you can get something to oscillate indefinitely. That’s the essence behind sympathetic resonance. With just a little amount of force, at the right frequency (and phase!), you can make a very sturdy bridge collapse, for example.

We favor a digital approach with a microcontroller (MCU) doing the phase and frequency locking and synthesising a waveform that’s fed back to the driver (more on this later). A digital system vastly simplifies the required electronics. The MCU can do the phase corrections, analyse the envelope of the input and control just the right amount of signal to drive each string to oscillation.


Acoustic synthesis

A digital system buys us a lot of flexibility. For instance, with a digital system, we can feed any kind of waveform back as long as it is coherent with the input. Recently, we’ve tried square, pulse, triangle and sawtooth. Wave tables would be cool, for example! How about samples of bow noises or wind blow noises? How about the human voice? Guitar or Piano samples? That might be cool. And, needless to say, there are no nasty squeals that plague analog feedback systems. It’s just pure sympathetic resonance!


Acoustic synthesis is a powerful concept. It involves the creation of new sounds by controlling the vibrations of actual physical objects, in this case, the strings.

I’m sure most of you are aware that hexaphonic sustain has been done in the past with the Moog guitar (or the more recent Vo96 Acoustic Synthesizer). So what makes this project different? Unlike the Vo96 —a pure acoustic synthesiser, we opt to combine both traditional synthesis and acoustic synthesis.

EnvelopesThe Moog guitar, and the newer Vo-96 system use pure acoustic synthesis and advertises zero post processing. In my opinion, that is not necessary. You do not need an elaborate system for controlling everything, including timbre and dynamics. Just because you can do something, doesn’t mean you should.

Instead of pure acoustic synthesis, we prefer to post-process the polyphonic signal. You can do a lot with post processing on individual strings including control of attack and decay. An advantage of our approach is that it is simpler, requires less power, and does not require special strings! You only need to get the string sustaining, plus introduce some harmonics along the way. There’s so much potential in polyphonic processing that the Vo system shuns. A simpler system should cut the cost down considerably.

For example, we will not perform sustain dampening acoustically like the Moog did (the banjo effect). Instead, we intend to do DSP processing for each string. With post-processing, it’s easy to sculpt an envelope to achieve the muted banjo like effect. DSP processing will give us full control over the dynamics of the guitar (e.g attack, decay, sustain in addition to harmonic control). With these controls, you can have anything from banjo like short-sustain to long piano-like sustain and of course, infinite sustain.


But it should not be limited to dynamics control. We’re also looking at timbre control and the injection of harmonics using various forms of synthesis techniques such as Waveshaping for timbre control (polyphonic fuzz in steroids!) and Kurplus Strong synthesis (e.g. having a number of virtual strings in memory excited by the inputs from the Neo pickup potentially modifying the parameters in real time). You can have drone strings, doubles, triples, etc. There will also be pickup placement simulation (using comb filters and short convolution for applying captured impulse response of other instruments (e.g. acoustic guitars).

The software is hosted in your laptop (or desktop). A software plugin (AU, VST, RTAS, AAX) does the multi-channel post processing and control; sending downstream MIDI data to the MCU inside the guitar for controlling feedback. The in-guitar MCU can also send upstream MIDI to control performance parameters (e.g. volume, pan, pitch-bend, cutoff-frequency, resonance, etc.) using potentiometers and other forms of user-control hardware directly from the guitar.

Further Reading

To Infinity and Beyond!

      Infinity, Neo Series, Pickups, Sustain

The Infinity Project

Hey, we have a New Project! Here’s a very early prototype of the Cycfi Infinity Polyphonic Sustain System. The proof of concept video above demonstrates dual sustainer drivers at the neck position with the Neo6 polyphonic pickup at the bridge. In this demo, the sustain drivers drive the two upper strings (B and E). The high, thinner strings are the most difficult to drive due to low mass and weak magnetic pull. The thicker strings are a lot easier to drive into infinite sustain.


Infinity v0.1

We use plain D’Addario Strings (0.009 – 0.042 super light gauge). The output of the Neo6 is summed to mono and goes to a Marshall combo with the treble set to zero, a bit of bass and mid. The amp is mic’d (Shure SM57) and recorded using Logic Pro, no guitar effect plugins, flat E.Q., a bit of reverb and a touch of delay.

The strings are driven into sympathetic resonance using both hardware and software phase and frequency locking mechanisms. The drive waveform is synthesised from the polyphonic signal coming from the Neo6 pickup. The polyphonic drivers are driven at the fundamental frequency of the vibrating string with additional controlled odd and even harmonics.

More info to come. Stay tuned!