Jimmy Murfitt a.k.a Toxic Dwarf

Creative Music Technology

Toxic Synth (Max 5)

Here’s another of my Max 5 patches – this time an 8 note polyphonic synthesiser.


(CLICK FOR LARGER IMAGE)

This synth is divided into 10 main sections – Carrier, Partials, FM (level1), FM (level 2), AM, Envelope, Delay, Distortion, Filters and Reverb. 3 minor sections allow for access to presets, selection of input device, and control of dac and master output volume.
(more…)


Rewire – Max 5 and Logic.

I have recently built a Max/Msp patch that I was hoping to use in Logic 9. The patch is a 16 Voice Polyphonic AM/FM Synthesizer, and I wanted to send MIDI information from Logic to Max and the audio from Max to Logic. Since Cycling74 saw fit to remove the Pluggo capability from Max I had to find an alternative method for using my patch in Logic. After searching the internet and help files I found out how to do this. (more…)


Another free ‘glitch’ plugin.

As I’ve said previously, I’m not one for pirating software, but am an advocate for free or open source software. Here is a link to another great glitch plugin for Logic. Livecut is based on the algorithms  programmed by Nick Collins for the Supercollider class ‘BBCut’. I found the parameters less intuitive than in the plugins I previously mentioned (SuppaTrigga and Buffer Override), but the overall effect is much more polished and produces better sounding glitchyness.

The plugin can be downloaded for free at http://mdsp.smartelectronix.com/livecut/.

The following track was produced by myself using a combination of Livecut, Suppatrigga and Buffer Override.

‘Tech Cult Vigil’


Polarity Bib

This track was created with heavy use of ‘Destroy FX Buffer Override’ (http://destroyfx.smartelectronix.com/) and ‘SupaTrigga’ (http://bram.smartelectronix.com/plugins.php?id=6) plugins for logic (Both are free to download). I found these plugins easy to use and by automating their parameters they create very pleasing glitchyness. Have a listen and see what you think.


Techno Jeep

Found this on Youtube and love it!!


Crazy instrument

A friend recently recommended i watch some of this guy’s video’s. I did and it instantly reminded me of some of the animations i have posted recently, exept this is no animation….. this is the real deal! Amazing stuff from ‘Felix’s Machine’s’ Many more videos on youtube so get watching them!!!


Musical New Media Website

My website, designed for the Musical New Media module of my course, is up online, although animation 2 is still work in progress. Check it out at http://web.anglia.ac.uk/mpa/mpastudents/MNM0910/0163677/ and let me know of any problems you find. I will also soon be updating my other website at www.nemitode.net/toxicdwarf to match the styling, and update the animations.


Max/MSP APC40 Step sequencer

Having not written a post for so long i felt an update was needed. All my time recently has been devoted to university work, specifically a project for ‘Introduction to Creative Music Programming’. I have recently bought an Akai APC40 Ableton controller, which I love to bits. As an Ableton controller it is fantastic, but i have felt the need to use it in other ways. For my final ICMP project i originally wrote a patch for Max/Msp that was an FM Synth with several buffers to record to allow layering of sounds, all controlled by an XBOX gamepad. As much fun as this was my previous task was an FM synth controlled by a midi keyboard, so i decided to do something different this time. I saw the potential in the APC40 and couldn’t resist. Through Max/Msp this controller has now been adapted to act as an 8 step sequencer, primarily designed as a drum machine, but any sample can be used. It makes use of the controllers matrix of clip launch buttons as the step sequencer with BPM control, and the clip stop buttons as trigger pads, for live input. The five rows of clip launch buttons allow for 5 samples to be sequenced at a time, each with it’s own dedicated filter (filter type, cutoff, gain and ‘q’ value all controlled with rotary knobs), volume slider and level meter. They can all also be routed through a delay (with variable delay time , quantized or by millisecond, and variable feedback), and/or a reverb, both controlled using the rotary knobs. Output from the sequencer has a master volume slider and level meter. It also provides 4 timesynced buffers to record your loops to, and keep layering up. The buffers are all synced to the sequencer, so recording and playback is all in time. The live trigger pads all have independant volume control (rotary sliders) and level meters – they can be routed through delay and reverb too. The buffers all feed into a master buffer volume control too. The 2 master volume controls then output through the controllers crossfader allowing ease of switching between sequencer and buffer outputs, or playing both simultaneously. All the LED’s are working too (after lots of experimenting). The record arm row of buttons light up in order following the position of the step sequencer, the matrix lights up to indicate which triggers are active, the activator and solo rows are used to control routing to the delay and reverb (and light up accordingly) and all the rotary knobs use LED’s to indicate the output value.
This patch has been a lot of hard work to produce, but i have enjoyed experimenting along the way, and been having fun playing with the finished patch (i have some amendments i like to implement at a later date). I came up against some infuriating problems along the way, other wise it would be a 16 step sequencer with time variable buffers, although i did manage to get these features up and running (to some degree), but with the 16 step sequencer i couldn’t get the LED’s working properly when switching views (The APC40′s matrix of clip launch buttons is 5 x 8). Also i did try setting the buffers to playback at different speed (Full speed reverse, half speed reverse, half speed, full speed and double speed, but because of the way i set the ‘sfplay’ object to record the loops would gradually slip out of time. I will get these problems fixed and working fully, but i have other uni projects i should be concentrating on.
Once i have some video i’ll upload it so you can see what this looks like and how it works more easily than reading this post, and i’ll also upload the code here for anyone to check out if they have Max/Msp (an APC40 would probably be handy too!!)

Here’s a screen shot of the presentation view.

If you don’t know what an APC40 is this is what one looks like, including the controls midi values.

If you want a copy of the patch then please leave a comment, and i’ll send the patch to your email address. Be aware that I am unable (due to copyright laws) to distribute the drum samples i have used, and therefore the pull down menus for selecting drums will be redundant. You could however rename your own samples to match the names on the pull down menus and store them in the same folder as the patch.


Drum Machine

I found this animation years ago, and had completely forgotten about it till my friend posted a link to it on facebook. This is fantastic and everybody should watch it.

http://n2.cdn.spikedhumor.com/1/14000/3882_drummachine.swf


Toxic Dwarf Homepage

As well as this blog, and my Myspace profile, my online presence has been joined by another site. This new site is provisionally for animations produced for the module ‘ Musical New Media’ taught as part of my Ba(Hons) Creative Music Technology course, however, once the module has finished i hope to expand the site to include my artwork, music, pictures from fire juggling and any other creative stuff i might dabble in. Check out www.nemitode.net/toxicdwarf and if you find any glitches or problems then let me know!!


More Aural Adventures with the Toxic Dwarf

Here’s my latest result of dabbling with the sonic arts. My new track called Unknown Entities for your pleasure.


Cymatics 2

Following on from my previous post about the science of seeing sound, Julio d’Escrivan has bought this video to my attention. Well worth a watch.


Pin-Barrel Harp

This musical sculpture, a beautiful piece of engineering, was commissioned by ‘The English Folk Dance and Song Society’ using a Lottery grant. However, it far exceeds the original brief and it’s rather unsuitable for it’s intended purpose, and is now looking for a new home. Any takers??
(Fortunately it does NOT come complete with a man playing the saw, who’s face of concentration is rather scary!)


Quadraphonia

Having recorded our iXi Quarks performance, each recording our own part separately, we then set about using the quadraphonic settings in Logic to pan and rotate our individual parts around the 4 speakers in Hel040. Although as a group we were not exactly happy with the recordings, we imported the sound files into Logic and automated the spatial movements anyway, to try it out and test out the sound of the piece as a whole. We purposefully tried to keep each part to its own speaker, whilst introducing movement sparsely, to maintain the feeling of 4 separate parts. I think the effect worked very well, and with some re-recording and more time spent on planning the automation i feel the piece could sound very good. It was really good hearing the piece through the 4 speakers, not only to gain the spatial element, but also to hear it loud and through good speakers, rather than our laptops which have almost no bass response.


End of semester (nearly!!)

So we are headed towards the end of semester, and the end of our laptop musicianship module. I’m really impressed with what i have learnt in this module, making me think in new ways about how i write my music and teaching the basics of music theory. Although i still have a lot to learn about the theory, i feel much more confident about my approach to music. The module has surpassed all my expectations, leaving me eager to produce more work that i can perform live. Although the workload (and my work commitments!!) have left me with little time to embark on personal projects, i think this is a good thing, taking time out from the way i usually work on my music and trying new things. Hopefully when i do get chance to sit and write my own pieces i will have learnt ways to create more intricate, inspiring and technical track, pushing my music further down the path of creativity. I have really enjoyed using iXi quarks, but felt frustrated by some of the rather limited parameters you are able to specify (lack of ability to tempo sync predators and soundscratcher for example). However, the ‘freestyle’ aspect of it is great, granting me the ability to create pieces ‘on the fly’, either as part of a group, or as a solo project. I have also been using it to create sounds, which once recorded, i can then import into Logic and incorporate into other tracks. Supercollider has taken me by surprise, when looking at sections of code, and videos of live coding, in the first week of the module, i have to admit i was sure i would seriously struggle. I have picked it up much more easily than i suspected, feeling that i have come such a long way with it in small period of time. I love it, from simply sending MIDI information to synthesising sounds purely within Supercollider it seems so versatile (as long as you understand the keys,classes and syntax). And we are only scratching the surface, i can tell there is so much more this great program can do… but one step at a time eh!!


‘Prelude to scarier chorals’ (Laptop Musicianship task 1 composition)

After weeks of tinkering with code, writing and re-writing the piece i have finally completed the following composition. It has gone through many transformations and i have had to significantly reduce the piece in length; originally it was about 8 minutes, now it is just over 4. I have named this piece ‘Prelude to scarier chorals’ (anagram of ‘A Supercollider Orchestra’).
It is written for cello, harpsichord, harp, piano, vocals and various percussion. My scale is 0, 3, 7, 12, 15, 20, 22 ; it stretches over two octaves starting at C, then D# and G from the first octave and C, D#, G# and B from the second. However only the introduction is played in this scale, all other parts are transposed (+7, +2, -2 and +5 semitones in sequence) every 4 bars. I feel this scale and transpositions give the piece a bright, airy feel.
Each instrument has several different sections. In the introduction the cello and vocals play long legato notes, accompanied by two harp staccatos speeding up and slowing down (one transposed up 12 semitones, one transposed down 12 semitones), till the 30th bar. At this point the whole piece doubles in speed starting with cello and two separate harpsichord parts (one part 2 octaves lower than the other) playing different melodies. These are also joined by the percussive elements (Timpani, Gong, kick, snare toms and hi-hats). The percussive elements are randomised, so on each evaluation of the code it will play differently. After 4 bars of each transposition (a reoccurring theme) the cello and harps are replaced with three piano parts, one playing a sequence of chords, the other two mimicking the parts played previously by the harpsichord. In the next section the piano chords remain while the other parts for piano are replaced with a harp and the harpsichord returns, this time playing the same pattern as before but at twice the speed. We then move on and introduce the vocals, one female, one male singing the same sequence one octave apart. At this point all percussion is stopped,the pianos are reintroduced, with one part playing twice the previous speed; the second harpsichord part reappears at double speed and the existing part slows back to it’s original tempo whilst the harp is switched for it’s alternative part and joined once again by the cello. In the next part the double speed piano and harpsichord are brought back to original tempo, piano chords and one part of harpsichord are removed. To bring the piece to and end the following sections consists of piano and female vocals only, finishing with a gong hit. But have a listen for yourself!


2nd Ensemble performance critique

The Donuts (Previously group 5)
This group have improved their piece greatly, choosing sounds that work together in a more coherent way.
The intro is very nice, especially the glitch effect from the vocal sample and the group were listening very well to each other, giving each player space to perform their part without cluttering up the soundspace.

The Chavs (Previously group 2)
This groups piece seemed much more structured than before, again picking more suited sounds, The whole piece was less cluttered,more melodic and more atmospheric. The process seemed more streamlined than their previous performance

No_name (Previously group 3)
As with the two groups mentioned above, selection of sound was much improved, the atmospheric content and the dynamics of the sounds were very good. They have improved on giving each other space to be heard and their process was much more obvious, building up in a more structure manner

Dos Pendejos (Previously group 4)
Even with two missing members of this ensemble i felt it was a vast improvement from the previous performance. Excellent contrasting and complementary sounds and (sound)spatial awareness. Loss of the repetitive drum loop has done wonders for the overall effect.

Good work everybody, all groups have improved in similar ways, but retaining their own themes and ideas.

Our Group (The Andrew Kinsey Experiment: Where/Who is Andrew Kinsey?)
I feel our piece has improved also, previously we had a start and end, but the middle was pure improvisation. We have added more stucture to the middle, while retaining the improvisation section. Once started, we improvise for a minute or so, then I trigger a new sample, which signals that we all change instruments, having picked sounds that are not too radically different to our starting instruments. We then improvise again, mainly using our new sounds, but adding small bits of the original sounds also. After a minute or so, Andy triggers a sound which indicates that we should start silencing our parts to bring the piece to an end.
Maybe we could add more structure, interlinking the separate elements as triggers for more complex ideas. More work needed!!!!


Goddamn Hippies!!

Having previously posted regarding the Lava Lamp midi controller i thought it worth while bringing this up too.
After taking part in our own laptop ensembles, and being shown footage of Laptop Orchestras, i started looking for more footage, to see what other groups are producing…. then i stumbled upon this. The following link leads to a video that shows a short clip from a laptop ensemble, making use of video capture to use the smoke from an incense stick to control sounds.

Turbulenzen – EMU Laptop Ensemble @ Wasserturm, Lüneburg from Andhi Pabst on Vimeo.


Pgeom normalization

When using a Pgeom, it can be rather difficult to tie it in with our time signature. Julio has shown me how to ‘normalize’ the Pgeom so that we can ensure that the pattern it creates will fit in with the structure of our piece. For example, to get our Pgeom pattern to last 4 beats we have to use the normalizeSum function. However we discovered that we cannot simply put this into our Pbind as below because our pattern will return one value at a time, and the normalizeSum needs to know all values before the pattern is played, if it is to perform its function.

Pdef(\synth,
(Pbind(\type,\midi,\midiout,m,\chan,0,
\midinote,Pseq([49,52,59,60,61,62,63,64]-1, inf),
\dur, Pgeom(1/8,0.8,10).normalizeSum*4,
\db,-3
)));

So we have to get the series of values from the Pgeom and create an array from it. This can then be normalized and the new values be used to control our pattern.

Array.geom(10, 1/8, 0.8).normalizeSum*4; // CREATE AN ARRAY OF VALUES USING GEOM PARAMETERS, BUT NORMALIZE THEM TO BE 4 BEATS LONG.

We can create this array as a variable and then enter it into our code. (Pn is a basic pattern class, that repeats the enclosed pattern for a user defined number of repeats, Plazy evaluates a function which returns a pattern, then embeds it in a stream)

Pdef(\synth,
(Pbind(\type,\midi,\midiout,m,\chan,0,
\midinote,Pseq([49,52,59,60,61,62,63,64]-1, inf),

\dur, Pn( Plazy{ \\EVALUATE FOLLOWING FUNCTION, THEN EMBED IN Pn STREAM
var axDur; \\CREATE VARIABLE axDur (ACCELERATING DURATION)
axDur = Array.geom(10, 1/8, 0.8).normalizeSum*4; \\ASSIGN ARRAY TO axDur
Pseq(axDur, 10); \\PLAY SEQUENCE USING VALUES FROM axDur 10 TIMES
},2) \\COMPLETE Pn PATTERN TWICE

\db,-3
)));

Pdef(\synth).play;

The Pgeom creates an effect that, to me, sounds more like a human musician – it can sound more like an improvised solo than a rigidly structured piece of code that is tied into a uniform time structure. By normalizing it is easier to control the length of Pgeom patterns and incorporate these into our work to create a much more interesting piece.


iXi Quarks Laptop Ensemble Critiques

Today we all presented first drafts of our group ensemble task. Here i express my views and opinions of the pieces presented

Group 1
I feel our piece went rather well, we had a very loose structure, with each person playing a part in turn (James starting), then moving on to a more free-flowing improvisation. We concentrated on listening to the other players in our group, and tried not to clutter the ‘soundspace’. I tried to listen and either complement or contrast to sounds played by the other members of the group. We left the duration of the piece up to Andy, who played a specific sound/solo on soundscratcher, followed by a similar sound/solo from Sol which indicated the ‘winding down’ of the piece, where we each started slowly removing parts from the piece until James was left playing the sound he started with.

Group 2
Group 2′s ensemble was a great example of process music, gradually building up, adding extra elements to the piece, then once all parts were present, slowly removing each section till all parts have finished. They thought about and picked sounds that worked very well together giving the piece a really good theme. I think we could benefit from using a more structured approach, for at least part of our piece.

Group 3
Group 3′s piece was another good example of process music, working in a similar manner to group 2, but to me it sounded a little less polished, The sounds were very nice on the ear, but i think they could have picked noises that worked together a bit more.

Group 4
Group 4′s piece i felt a bit too random, not being as well structured as the previous pieces, and that the percussion loop was used too much without change. The tonal elements seemed to work well, but need more work to make the separate elements complement (or contrast) more obviously.

Group 5
Group 5′s piece seemed to start very well, the vocal stuttered loop, and the stretching of the percussive element worked nicely, and also the two tonal elements worked well with each other, but as a whole it didn’t seem as well gelled as other ensembles. I think they need to think more about which direction they want to take the piece in, either taking lead from the tonal parts, or the percussion and vocal loop, as these seemed to me like 2 separate themes.


Pbindef!!

I have written the different parts of my track to include a sequence of transpositions, but because of the way i have written the code it seems too repetitive to me. I wrote the parts to be 16 bars long, so that after 4 bars it could transpose and after 4 more bars it would transpose to a different key and so on. This repeats through the whole track, so i felt that it was too formulaic and the key changes lose their impact after hearing the same pattern over and over. I wanted to add \ctranspose into the sequencing section of code, so that all parts in that ‘section’ would transpose :

e.g.
Ppar([Pdef(\cellopreintro)],1)
++
Ppar([Pdef(\glocksolo),Pdef(\glocksolo1),Pdef(\harps4intro),Pdef(\vox4intro),Pdef(\cello4intro),\ctranspose, -1],1)//TRANSPOSED SECTION
++
Ppar([Pdef(\cello),Pdef(\harps),Pdef(\timpani),Pdef(\kit),Pdef(\glock),Pdef(\break),Pdef(\harp2),Pdef(\kit1)],1)
++
etc.

I tried and failed, I have as yet been unable to figure out how to do this. Julio has shown me how to use a Pbindef to add parameters to a Pdef without having to write the code out in full. This will enable me to trigger any transpositions manually, although i would still like to find a way of automating this in the way described above.

Pbindefs work by referencing our original Pdef, and then stating additional parameters to add to it.
e.g.
Pdef(\harps,
(Pbind ( \type, \midi, \midiout, m,\chan, 0,
\scale, [ 0, 3, 7, 12, 15, 20, 22,]-24,
\degree, Pseq([ 2,3,6,5,4,7]-1, 4),
\dur, Prand([Pstutter(2,Pseq([12/8,2/8, 2/8]/2, 4)), Pseq([12/8,2/8, 2/8], 4),],1),
\db, -3,
\mtranspose, Pdef(\transposition)
)
)).play;//ORIGINAL PDEF

Pbindef(\harps, \ctranspose, -5); //THIS WILL USE ALL THE PREVIOUSLY EVALUATED CODE FOR PDEF(\HARPS) BUT ALSO ADD TRANSPOSITION

Note that once the Pbindef has been evaluated it changes the stored Pdef, so to change it back you will have to evaluate a new Pbindef stating the original values.
So it seems the Pbindef is good for live on-the-fly coding, but not so good for use in event stream players. I will, however, continue to look into this dilemma and try to come up with a suitable solution.

(I hope this is clear, but if not then feel free to find me and pick my brains, sometimes these things are easier to explain face to face)


iXiQuarks

I have downloaded iXiQuarks and had a good play around with the various instruments and effects and i really like it…… alot. For improvisations either solo or group work it is ideal. Sol Bateman, Andy Buclaw, James Rogers and I all got together on Wednesday afternoon for a jam. To begin with it was very messy (iXi was new to us all so new to us all so we had a lot of experimenting to do), but within about 1/2 an hour we were getting somewhere. We were starting to get a theme running and sticking with it, whilst trying out new things. I think we’ll need much more practice than we’ll be able to get, before it sounds presentable – we only have two opportunities when we are all free to get together before we have to present our ideas next week, but as we have a month before we have to have a finished piece/concept i’m sure we will be fine. I have done some practicing at home, and come up with some rather ambient, conceptual stuff ( i will upload an example soon), and have really enjoyed the way the instruments work. Once mastered ixi will enable us to confidently and competently perform our ensemble well.


New discoveries!

Having written the main structure for my Laptop Musicianship task 1 i’m now experimenting with various patterns and nesting Pdefs for different effects. Pgoem is a fantastic pattern command, which i have used to introduce a harp solo into the piece, it allows values to be repeated whilst increasing the ouput value geometrically. The first argument is “start”, the second is “grow” (multiplication factor) and the third is “length” (number of values produced) e.g Outputs for Pgeom([1,1.5,3]) would be 1, 1.5,2.25. Used to control duration produces a very nice effect, especially when placing different Pgeoms into a Pseq. I have, as yet, not tried using it in other parts of the code.
I have also been experimenting with Pdefs to control transposition. Instead of writing several identical pieces of code over and over again i wrote it once, but as a Pdef –

e.g Pdef(\transposition, Pstutter(12,Pwrand([10,5,0,-2],[0.1,0.2,0.5,0.2],12)));.

Now every pattern i want to use this code in, can simply have the new Pdef nested within it -

e.g Pdef(\harps,
(Pbind ( \type, \midi, \midiout, m,\chan, 0,
\scale, [ 0, 3, 7, 12, 15, 20, 22,]-24,
\degree, Pseq([ 2,3,6,5,4,7]-1, 4),
\dur, Prand([Pstutter(2,Pseq([12/8,2/8, 2/8]/2, 4)), Pseq([12/8,2/8, 2/8], 4),],1),
\db, -3,
\mtranspose, Pdef(\transposition) //NESTED PDEF
)
)).quant_(4);

This is very handy, when you know you will be repeating sections of code, for reducing the amount of code that need to be written, and unless i’m mistaken, all patterns containing this nested Pdef will return the same value simultaneously. Each piece using Pdef(\transposition) in its code will transpose to the same note, whereas if i had written the code individually to each element they would transpose to different notes at each ‘return’ of the transposition code .
I hope this doesn’t sound too complicated, and that you do actually understand what i’m talking about, but if not then feel free to come and find me at uni and i’ll try and explain it in a better way.


++ sequencing

As shown in Julio’s tutorial downloaded from bitbongo, it is possible to sequence different parts of code in Supercollider. Whereas before i have been triggering Pdefs, or groups of Pdefs manually, by using the ++ code i can program these to be triggered automatically. When triggering manually it does not leave much room for the editing of the Pdefs live, as i have been concentrating on when the next section should be started. Once i have sequenced my different sections i can evaluate the event stream player and leave it to run, happy with the fact that the parts will start and stop as i have specified, and can actually start amending code live to give the piece a much more improvised edge.
The structure of the ++ sequencing is demonstrated below. The code is from my orchestral piece and only includes the first 6 sections of changes. The first part of code (Ppar (Pdef\nameofpdef), indicates which part/parts to be played, the number following indicates how many times the parts should be ‘looped’ and ++ indicates that after the Ppar has been executed the next one should be evaluated.

(
(Ppar([Pdef(\cello)],1)
++
Ppar([Pdef(\cello),Pdef(\harps),Pdef(\timpani),Pdef(\kit)],2)
++
Ppar([Pdef(\cello),Pdef(\harps),Pdef(\timpani),Pdef(\kit),Pdef(\glock)],1)
++
Ppar([Pdef(\harps),Pdef(\timpani),Pdef(\kit),Pdef(\glock),Pdef(\break),Pdef(\harp2),Pdef(\kit1)],2)
++
Ppar([Pdef(\harps),Pdef(\timpani),Pdef(\kit),Pdef(\break),Pdef(\harp2),Pdef(\kit1),Pdef(\vox2)],2)
++
Ppar([Pdef(\vox),Pdef(\harps),Pdef(\glock),Pdef(\cello),Pdef(\harp2),Pdef(\vox2)],2)
).play)


Follow

Get every new post delivered to your Inbox.