First rehearsals today of my new piece, ‘Tide’ for 6 players and 21 instruments.
A handy little tool I knocked up last night to round-off a generated harmonic series to the nearest semi-tone (and output as a named note (C,C#,D,…) to a .txt file. Written in python, give it a root frequency, and the length of the number of partials you want to calculate.
Spent the weekend reading analyses of Xenakis’ Nomos Alpha, so I knocked up a little hexahedral permutation program instrument. Vertices are parsed out as x,y,z and can be hooked up as parametric controls based on the hexahedron’s position in 3D space! Hooray!
Xenakis uses isomorphic permutations of a cube to order elements of a set using pretty standard permutations (rotate 90º, rotate 180º, etc). His process is much more based in boolean logic and set theory, but I took the basic principal ofusing the isomorphic permutations as parametric controls, but running in real time. So you can drag the cube about, or animate it, and it spits out a bunch of numbers which you could use to control anything. (ie. bow technique, dynamic, durations, pitch, or whatever digitally!).
A Thomas DeLio article on Nomos Alpha largely ignores Xenakis’ use of hexahedral vertices and looks at the set more simply: thats worth looking at:http://www.jstor.org/discover/10.2307/843739?uid=3738032&uid=2&uid=4&sid=21102363132331
Code is here (albeit in an awkward, copy-and-paste-into-Max kinda format)
So my new Macbook Pro’s hard-drive corrupted itself over the weekend. Lost a fair amount of unbacked-up work I’m ashamed to say. But rather than mourn the dead, I figured I’d have some fun with a corpse (so to speak…)
Its a really simple hack, just hook up some wire to the 4 copper pads under the platter, one acts as ground and any of the others act as your signal. Run it into the sound card and you’ve got a very low-frequency oscillator! In the above video I’m using the drive as a ring-modulator, and as a sample playback device with a [phasor~] and [lookup~] in Max!
I’ve mentioned the piece a couple of times on here over the last few months, but wanted to wait for a performance/recording to explain it a little more. So here we are at last: Network no.1 for string quartet.
The score is a hybrid of graphic and traditional, with a graph network diagram functioning as a map, and traditionally notated reference. Each ‘node’ on the map relates to an element from the separately notated gamut of sonorities. The edges of the map signify a potential route from one musical element to another. The length of an edge determines the duration of the element to be performed. So in this sense the map represents the time-space and structure of the piece, while the reference contains the sonic material.
As previously mentioned, the work exists in a a state of non-linearity. Performers work independently, following their own paths across score ‘maps’. Routes are determined stochastically (and regenerated each time the network graphs are compiles), although each player may choose their own starting point.
The recording was made on Tuesday, 7th May, 2013. Many thanks to the performers for their time:
Violins – Alice Dawkins; Hannah Packman
Viola – Katherine Lambeth
Violoncello – Claudia Chapman
Thanks also to Tony @Big_Pause for his patient advice during the programming stage.
Trying to deal with an issue in my first string quartet, where performers are faced with a probabilistic decision… being that musicians are not computers, I’m looking at pre-calculating these probabilities, whilst trying to find a way to keep my score system indeterminate (more on that later). Some code I knocked up today to calculate probabilities for weighted edges in a graph network.
### Weighted outcome calculator for Network #1 (String Quartet #1) # owmtxy, feb 2013 - python, v.2.7 # Input up to 5 probability percentages, and calculate a weighted outcome import random elapsed = 0 duration = 0 #int(input("Enter duration: ")) while(elapsed < 840): # While the elapsed time is < 14 minutes print("nEnter probabilites, smallest first (0 for unused edges)...") # Enter each (accumulative) probability weighting (%) val1 = int(input("Weighting A: ")) val2 = val1 + int(input("Weighting B: ")) val3 = val2 + int(input("Weighting C: ")) val4 = val3 + int(input("Weighting D: ")) val5 = val4 + int(input("Weighting E: ")) def makeRandom(): randomVal = random.random() # Generate a random 'deciding' value randomVal = round(randomVal*100) #Scale it to a % return(int(randomVal)) randomX = makeRandom() print(randomX) # Compare the randomX value to the probability boundries: if(randomX <= val1): print("Outcome A") elif (randomX > val1) and (randomX <= val2): print("Outcome B") elif (randomX > val2) and (randomX <= val3): print("Outcome C") elif (randomX > val3) and (randomX <= val4): print("Outcome D") elif (randomX > val4) and (randomX <= val5): print("Outcome E") # Add the duration of the selected edge to the elapsed time duration = int(input("Enter duration: ")) elapsed += duration print("Elapsed time: ", elapsed/60) # Repeat until we reach > 14 minutes
Nothing complex by any means, but a useful little tool to calculate pitch deviations of harmonic spectra and microtonal scales.
Happy Holidays! Gianmarco Del Re has made a rather wonderful video of Hibernate’s christmas bash we played at on Dec 15th, 2012. It’s got some really nice shots of the gear we used that night and James and I trying to keep it under control.
The sound seems only to be from our intro though so doesn’t totally capture the sound of the set, but a very good watch.
Shortly after this set I was also very kindly asked to come on Rich Hughes’ Cambridge radio show ‘The Visitor‘ for a chat and a bit of a live set. Unfortunately my gear crashed in the first take so had to try and pull it back with some chatter and spectralist improv. Now, you too can listen to me die of embarrassment on-air and talk about Aaliyah!
I’m currently working on a composition which uses the Collatz Conjecture (or Hailstone Numbers) as source data in a piece for solo Disklavier Piano. Below is a screenshot from a (currently too messy to post) Processing script I wrote to get a better idea of the behavior of these numbers.
The main inspiration behind the piece is György Ligeti’s Piano Etude no.1: Disordre. I love the frenetic pace, and the algorithmically derived recursion of the piece, but with the Collatz project I’m toying with the concept of softening the aggressive/human element of that speed (the Disklavier can play very fast with a ‘softer’ touch/velocity), in a falling ‘hailstone’ pattern.
Very happy to announce that my new album, ‘New Music from the Delta Quadrant’, is out now!
Originally released back in 2010 New Music was a series of unheard, unreleased or otherwise unknown compositions by the mighty Leeds based trio. It was also released in a severely limited quantity of just ten hand-made editions. New Music From The Delta Quadrant sees the album re-released as a larger edition with the tracks having all been reworked by the Ithaca Trio and remastered by Lawrence English.
Buy it from our Bandcamp and enjoy a bonus live-recording made back in 2010 around the time of some of the original sessions!