Monday, 5 June 2017

Below are some demonstrations of some of the capabilities of the performance system.








Overall I believe this project has a lot of scope for future development in particular though, additional turntables would enable this project to really shine as it would provide a larger number of trigger and control inputs for more complex layering of sound. However another thing that this project demonstrated to me now more than ever before, is that when programming there is never a ‘correct’ solution to a problem, in fact there are often more solutions than one person could ever come up with themselves. Working with Supercollider has been enlightening and at times extremely enjoyable. As I move forward I will still be making use of this software for years to come, despite the projects I have already completed I feel I have only just been beginning to scratch the surface of what it is capable of.

The constant design and thought processes behind this project have been fascinating to me and It’s been extremely satisfying to work on a project. As mentioned early due to the depth of the supercollider software however I feel this project could constantly evolve with me as the core sequencing idea with the turntables I believe is an excellent starting point. Further exploration That I’ll be particularly interested in is making use of other machine listening parameters in supercollider and maybe even controlling aspects such as the turntables speed and direction from the software. This could even create a ‘performerless’ environment. 

Another area which has been explored by artists such as Andrea Borghi is the use of different materials and textures this is an area which I did not touch on in this project but is ripe for exploration. For example it may be possible to find textures that produce different types and frequency responses of noise, or perhaps experiment with a reactive record surface such as sand or small ball bearings placed in a tray. 

One of my regrets is that I did not fully explore all possible performance techniques with the turntable itself, pushing it to it’s limits and seeing what it could be capable of, this is something I intend to remedy in the future looking into potential turntable performance techniques that have not yet been explored. 

The string tonearm holder to maintain the tonearm position is another area that I wish I had given more time, at the time I had thoughts about potential for a digitally controlled clamp that may be able to automate the position of the tonearm allowing once again a performerless environment.


I hope to continue exploring the performance possibility’s of this sequencing system for much longer and look forward to developing it’s features, then streamlining them to allow for seamless natural performance the leaves the performer feeling connected with the computer on a deeper level than just through a keyboard and mouse.

Granular Synthesis Trigger

After creating the more complex rhythmic patterns, I thought that they could be used to trigger other types of synthesis variations, in this case I'm using the trigger to play back a granular-esqe type sound by using each trigger as a random start point for a file stored in a buffer. By using envelopes I was able to control the sound further allowing for short grains of audio to be played back.

Below is the code for the granular Synthdef.


The arguments this synthdef takes in are for the trigger input, the pan position, the out channel and the start position of the buffer. It's this final argument that allows for the granular style synthesis, in the future I will also add a control for the playback rate of the buffer to allow for even more complex waveforms and patterns to emerge.


Scoring and Randomisation

While the straight lines scored over the 'vinyl' sheets work well for musical rhythms there are other ways of performing that I had overlooked in terms of the 'programming' of the record. In particular I was interested in how a single sheet may be able to generate many different sets and spacings of onset triggers by changing the position of the needle on the record. So far a couple of ideas have come to mind. 

The first idea I had was that by using geometric shapes I would be able to vary the distance between the triggers by moving the tonearm as the edges of the shapes would not be at a 90ยบ to the attack of the needle, this means the the trigger  rhythm generated can be continuously varied through a number of different available patterns, without the need for multiple 'records'. This also makes it more interesting as a tool for semi-generative composition. What this also means is that it is possible to create visual rhythm scores using means other than a basic set of trigger lines with standard musical timings and opens up a lot of potential for exploration.


Another method for rhythm scoring hit me later, the turntables I'm using, the Vestax PDX-d3 have a joystick function that enables the performer to slow the rotational speed of the turntable down very low, slow enough to turn vocals into a whale song. I thought why not add many small triggers around the record in order to add more complex rhythmic variations, and even score longer sections of rhythmic material. 




Tonearm Positioning

One of the immediate problems I found myself running into after changing from a vinyl locked groove with triggers to a trigger record was that due to the rotational force on the needle it would constantly force its self toward the centre of the record, I found this produced some more unreliable clicks and would reduce the performability as it would make it feel fiddly to deal with. 

Initially I started by just placing a weight behind the tonearm which would hold it in place in the middle of the record. however I felt that this would not be sufficient for more complex performances using the tonearm partially as an instrument.
My solution however is fairly simple, a piece of string looped around the end of the tonearm and then attached to the turntable with a slight amount of tension in it. The trick is to get just enough tension to hold the tonearm in place while still enabling it to be moved with relative ease. This enhanced the performability greatly as I no longer had to constantly adjust the tonearm for the best results.




Choosing a ‘Vinyl’ medium



While using records for locked grooves worked for my earlier experiments I found there were some flaws when using this method. Mainly, I found that using any scratching techniques the needle would fall further out of the groove than anticipated and mean it may be a while before the needle would fall back to the correct groove to loop again. To work around this I decided to make my own ‘programable’ records that would provide reliable onset triggers no matter what position on the record the needle is on. 

Below are a couple of examples of a trigger record as a concept.

Trigger record concept


When considering the use of a trigger record the material used will play a big factor for ease of use with the system. The main things to consider at the moment are the signal to noise ratio and how easy it is to work with the material to easy create multiple variations.

Immediately glass came up as a thought, due to its presumably high signal to noise ratio. though working with glass did not seem like an overly attractive proposition and cost would also be a limiting factor. Blank vinyl was another option though this for me was also limited by cost.

After some thought I settled upon Overhead projector sheets as a potential medium for my trigger record as it is both easy to work with and cheap. However, the unknown here was the signal to noise ratio. An added bonus of the projector sheets is that coloured visual cues could be added to the underside to increase the playability and add visual cues that would otherwise be hard to detect.




Below is a waveform image to demonstrate the signal to noise ratio achieved by the overhead projector sheets it shows there is a roughly 40% difference in the trigger signal to the noise level this should mean that the triggers should be clean enough to work well within a digital onset trigger system.


Random Note Onset Sequencer

In finding out the basic use of the Onsets Ugen in supercollider a particular resource that was a great help was that of Nick Collins who has an excellent page dedicated to the use of Ugens for Machine listening. This is an area I have now found myself exploring further after my previous audio reactive project. Below is the code snippet that was of interest to me.

Within the Supercollider documentation the Onsets Ugen is described as "An onset detector for musical audio signals - detects the beginning of notes/drumbeats/etc. Outputs a control-rate trigger signal which is 1 when an onset is detected, and 0 otherwise." Of note is the fact that this is actually control rate which means that it is constantly outputting data rather than only sending single 'bang' values when the threshold is crossed. Another factor to which I had not come across before was the use of an FFT buffer for audio, but in practice this is simple to implement.


Sunday, 4 June 2017

Turntable Performance / Turntablism Portfolio

For my portfolio I am going to explore new ways of enabling turntable performance generatively. This is a format which is ideal for exploration as due to the nature of vinyl as a fixed disc pattern it is easy to see how this could be used for rhythmic purposes while combing a very visual element. allowing for intuitive ‘programming’ of rhythms into custom made ‘vinyl’. This would allow for creation of complex patterns, and also allow exploration into other compositional techniques such as phasing the speeds of the two programmed sequences for more complex rhythmic interaction.


Christian Marclay performing with The Bachelors, Even, at Inroads, New York, 1980.  (Source)

One of the forefathers of turntable performance, albeit developed separately from hip hop turntable techniques is Christian Marclay. He experimented with a number of compositional/performance techniques using vinyl as a performance medium. One of these techniques included ‘collaged records’. These are interesting to look at, interesting to listen to records that had been taken apart and then frankensteined back together to create what could be called some of the first ‘sampling’, literally taking parts of different records and combing them to create a new composition. Below is a video showing a performance from Marclay, demonstrating the kind of effects that are possible with purely vinyl based, turntable performance.




Moving on from Marclay another source of inspiration for me is the work of hip hop and electronic music djs, that used vinyl as a performance tool for creating loops. One such technique that I believe is particuarly relevant here is the use of ‘locked grooves’ essentially this involves adding a small piece of tape at the end of a turntable groove so as to nudge it back into the previous groove and leave a loop playing. Below is a video of KinK performing with a locked groove record. This is an interesting usage of it and also worth noting that the short ‘sample time’ of one rotation of the record bares similarities to the kinds of phrases that would have been recorded in the samplers of the late 80s and 90s with low sample times.



Inspiration hit here, every time the record hits the sticker and jumps out of the groove a click is generated. This could be taken advantage for for use in triggering a sequencer in a similar way to how sequencing works in analogue modular synthesis with triggers that are generated.




Onset Triggered Step Sequencer







Early experiments here, a record with 2 stickers placed in the run out of the record to generate fairly clean clicks for onsets, and also create a locked groove. Using Supercollider as a means of sound generation and for detecting onsets.

Essentially what I have here is an analogue style step sequencer, which is being triggered through onsets generated from the clicks on the record. 

Outside of the SynthDef a routine was set up which would update the Supercollider client, the is important within supercollider because the client and sound server are not actually connected, so to update values within the server I had to make use of the .defer command due to the asynchronous nature. Furthermore I also included actions outside of the SynthDef to link the GUI knobs to the server. 


Another Ugen encountered which I had not really delved into before is the Demand Ugen, this will enable me to actually program ready made sequences for use or in the case allow me to set values to GUI knobs. Below it can be seen as an 8 step sequence with values set  by the knob positions and then multiplied by 600 to bring them into the audible range. This is by no means good practice but for testing purposes it is fine. Also note the inf in the line of code, this simply indicates that the sequence repeats infinitely rather than for a set number of repeats.