Wednesday, 16 November 2016

Countryman 968 Phase Shifter (Replicating Features in Supercollider)


Countryman Type 968 Phaser (from)

Nicolas Collins mentions multiple times the importance of the Countryman phase shifter. In order to control the feedback to some extent I wanted to build it in super collider.
In it's most basic essence it is a short delay, that can be controlled by an input level.

To create this I would need two main ugens from supercollider. Amplitude and and Allpass delay. 

The Amplitude ugen traces the amplitude of an input signal, this is then used to modulate the delay time of the  Allpass to recreate the effect. After some quick testing found that some stepping was detectable due to the control rate signal of the amplitude, to counter this I used the Lag ugen to smooth the stepping and make it more controllable. In addition to this I decided to add 3 LFOs for extra movement to the delay time, making the system less predictable. I also experimented with adding pitch tracking which is then mappable to any other parameter I wish. 

Pea Soup

Pea soup was one of if not the first self-stabilising feedback systems developed by Nicolas Collins. In doing so the uncontrollable loud feedback we all should know, was tamed into tones that are a product of the environment they are in. Nicolas Collins describes this phenomenon as an 'Architectural Raga' and it is a good comparison, you can really get a sense of it as the resonances of the room are plucked from the silence in the air.

Some of the essentials that are still used in feedback music today were laid out by Nicolas Collins:


  • Phase delay changes feedback frequency by emulating physical movement of the microphone.
  • A limiter controls feedback and transforms a shriek into a mellow sine wave.
  • Omnidirectional microphones (especially dynamic ones) produce more controllable feedback than cardioid mikes.
     Taken From Pea Soup - A History

Collins goes into great depth about the Countryman 968 phase shifter, this was a fairly unique item in that the delay time could be controlled by the amount of input level from another source, meaning that as level increased so too would the delay time resulting in the wavelength being lengthened at thus causing a different frequency of feedback to occur. This will be covered in more detail in a later post.

Below is the patch diagram for the original incarnation Pea Soup.
Pea Soup patch diagram (1976) 


As can be seen it is fairly simple in set up but the results can be spectacular, especially as the slightest movement or noise in the room can cause the system to behave in different ways, inherently linking performer, audience and room. 

However, as Collins quickly discovered if only a single microphone and speaker were used the feedback would only drift between two frequencies. When adding another duplicate of the pea soup patch they would begin to interact. The inherent linking of all the components of the system is fascinating and the dependance on the architecture makes it a truly fascinating listen.

Have a listen here.


Creating a Matrix Mixer in Supercollider(SynthDef)

The SynthDef for the matrix mixer runs all of the audio processing for the supercollider patch. It is a fairly basic patch but as mentioned earlier I wish to make use of Arrays in the future in order to have a more flexible system.

This version of the SynthDef also contains the reactive phaser elements discussed in a previous post. 

Creating a Matrix Mixer in Supercollider (GUI, Mapping, Improvements Over Analogue)

Perhaps, counterintuitively, the first supercollider patch I created was a basic matrix mixer with a gui. While analogue mixers seem to be a favourite amongst those exploring feedback based music. I decided Supercollider would leave a lot more flexibility and potential for routing insanity as well as (eventually) the ability to create the exact number of inputs the user wants on demand.

The first step was to create a GUI for my matrix mixer, a knob based GUI was chosen as I felt people who already had an understanding of matrix mixers would would clearly be able to see and somehow it just feels more intuitive than using faders. 


      ⬇️   ⬇️   ⬇️   ⬇️


➡️

➡️

➡️

➡️



The signal flows has the inputs at the top and the outputs at the side. This was chosen as it felt similar to a standard mixer when using aux sends(also essentially matrix a mixer). Below is an excerpt of the code used to create the GUI. As it stands this is in basic form, eventually I want to make use of Arrays in order to create an expandable or shrinkable system based on the users needs.



The next step in the creation of the GUI was to make the map the knobs to the matrix mixer SynthDef, allowing realtime control of the mix. Another short excerpt of code below.



After some thought on the limitations of an analogue matrix mixer I decided that one of the major downsides in its use as a performance tool is that due to the knob based layout only a few parameters can be changed at once (unless some kind of elastic band mechanics is added). Another factor considered is that quick motions across multiple knobs cannot be achieved, perhaps limiting the potential for sounds with quick attacks. 

This led me to look for different ways in which to control a matrix mixer. I eventually decided that it should be based around a touch sensitive, pressure based system as by moving away from a traditional knob based format it will encourage the performer to explore new ways of playing with a system. Furthermore I think pressure may even be more intuitive and tactile than a knob as it has more in common with traditional musical instruments(most of the time you only turn a knob is when you're tuning!).  As a 4x4 grid system had been chosen very quickly it was easy to see a viable option for control.


Akai MPC 2000XL

The gridded, 16 pad based layout of an MPC would be perfect for this purpose. After looking into the midi implementation for the newer MPC studio I found that polyphonic aftertouch was the perfect option for what I wanted to do.

To me it was essential that the GUI would update with the MIDI input as it would make the experience a lot easier to understand than just the pad based interface alone. To hook this up the MIDIin class of Supercollider was used early on I found some issues with getting the GUI knobs to update but found a way in the end. One quirk of this is that rather than the MIDI ins being sent straight to the SynthDef, the values are sent to the GUI, then updated through the second code posted here. In practice no issues as a result of this were noticed.



I make use of .defer because 'defer avoids complaints from the system that the GUI is being updated outside of a safe thread; it pushes the code through to the AppClock'. 

Further exploration into expanding the control of the mixer not only from midi and onscreen data but also from the environment around it. There are many possibilities for further control here.




Matrix Mixers

I have been looking into the use of matrix mixers for feedback performance and I believe there is a lot of potential for musicality, and complex tone generation. Without further ado here is a quick video to demonstrate a mm in use for a feedback based performance. 



The reason it is so effective for this role is because a matrix mixer can route multiple inputs to multiple outputs, meaning that with correct wiring feedback loops can be created, but it doesn't end there because each loop can be fed into any off the other inputs you start to create more complex paths and likewise the complexity of the sound. 


The above image is one of the clearest examples I could find of a matrix mixer, showing inputs and outputs perpendicular to each other rather than parallel. This makes it easier to understand the signal as it flows along from the right of the mixer then is routed by the knobs downwards and to the outputs.

A matrix mixer will be a good addition to a room acoustics based feedback piece because, as a result of the available signal routing it will be possible to route one microphone to any of four speakers. By doing this instead of one signal path and thus one set of room resonances being available per microphone there are now four for each microphone greatly meaning that some complex tones should be created.