Chiptune, Dub, BBCut

This is based off MCLD’s Dubstep Patch, with a modification to make it output a Pulse wave and then using some BBCut from a previous post.

(
var bus, sf, buf, clock, synthgroup, bbgroup, loop, group, cut1, cut2, cut3, stream, pb,
  cut4, out;


SynthDef(dub, {|out = 0, amp|
 
    var trig, note, son, sweep;

    trig = CoinGate.kr(0.5, Impulse.kr(/*2*/ 1.5.reciprocal));

    note = Demand.kr(trig, 0, Dseq((22,24..44).midicps.scramble, inf));

    sweep = LFSaw.ar(Demand.kr(trig, 0, Drand([1, 2, 2, 3, 4, 5, 6, 8, 16], inf))).exprange(40, 5000);

    son = Pulse.ar(note * [0.99, 1, 1.01]).sum;
    son = LPF.ar(son, sweep);   
    son = Normalizer.ar(son);
    son = son + BPF.ar(son, 2000, 2);

    //////// special flavours:
    // hi manster
    son = Select.ar(TRand.kr(trig: trig) < 0.05, [son, HPF.ar(son, 1000) * 4]);
    // sweep manster
    son = Select.ar(TRand.kr(trig: trig) < 0.05, [son, HPF.ar(son, sweep) * 4]);
    // decimate
    son = Select.ar(TRand.kr(trig: trig) < 0.05, [son, son.round(0.1)]);

    son = (son * 5).tanh;
    //son = son + GVerb.ar(son, 10, 0.1, 0.7, mul: 0.3);
    //son.dup;
    Out.ar(out, son.dup * amp);
}).add;


 // groups
 synthgroup= Group.head(Node.basicNew(s,1)); // one at the head
 bbgroup= Group.after(synthgroup); // this one comes after, so it can do stuff with audio
        // from the synthgroup
 bus= Bus.audio(s,1); // a bus to route audio around

 // a buffer holding a breakbeat. The first argument is the filename, the second is the number of
 // beats in the file.
 sf = BBCutBuffer("sounds/drums/breaks/hiphop/22127__nikolat__oldskoolish_90bpm.wav", 16);
 
 // a buffer used by BBCut to hold anaylsis
 buf = BBCutBuffer.alloc(s,44100,1);
 
 //  The default clock.  90 is the BPM / 60 for the number of seconds in a minute
 TempoClock.default.tempo_(180/60);

 // BBCut uses it's own clock class. We're using the default clock as a base
 clock= ExternalClock(TempoClock.default); 
 clock.play;  
 
 // Where stuff actually happens
 Routine.run({

  s.sync; // wait for buffers to load

 loop = (instrument:dub, out:0, amp: 0.3,
    group:synthgroup.nodeID).play(clock.tempoclock);

  /* That's an Event, which you can create by using parens like this.  We're using
  an event because of the timing built in to that class.  Passing the clock
  argument to play means that the loop will always start on a beat and thus be 
  synced with other BBCut stuff. */
  
  // let it play for 5 seconds
  5.wait;
  
  group = CutGroup(CutBuf3(sf, 0.5));
  group.add(CutBit1.new(4));
    cut2 = BBCut2(group, BBCutProc11(8, 4, 16, 2, 0.2)).play(clock);

  
  // start a process to cut things coming in on the bus
  cut1 = BBCut2(CutGroup(CutStream1(bus.index, buf), bbgroup), 
   BBCutProc11(8, 4, 16, 2, 0.2)).play(clock);

 2.wait;
 
   loop.set(out, bus.index);
   
 "bbcut".postln;
 
 30.wait;
 
   cut4 = BBCut2(CutGroup(CutStream1(bus.index, buf), bbgroup), 
    SQPusher2.new).play(clock);

   
 });
)

I think it would be cool to run the drums through a 4 or 8 bit MantissaMask, but first I have to figure out how to write FX.

The Bottom Surgeon (aka The Dick Doctor)

The doctor’s surgery was about a block from Regent’s Park. He’s in private practice and the office was incredibly posh. The waiting room had what looked like 18th century prints, in four colours and several nice sofas. I felt under dressed compared to the furnishings.

The sign in form asked for my credit card details and insurance information. I told the receptionist I was on the NHS and she told me to fill out the other parts of it. I overheard the patients before and after me saying the same thing, so maybe Friday is NHS day.

I went up to the doctor’s office, which was smaller and had two oil paintings hanging behind the desk of what looked like impressionistic Parisian street scenes. Rather clichéd art, alas, but hardly the focus of why I was there.

The doctor was a big man and spoke in a relaxed manner. He asked me my height and weight, my allergy information and what musical instruments I play. Have I had any previous surgeries? I told him about the benign tumour I had many years ago and he examined the scars on my wrist. “This is important for this kind of surgery” he explained and then asked if I was right or left handed. “So you want to get a phalloplasty.” I said I wanted a meta and asked if I was in the right place. He explained that he calls them all phallos.

I didn’t take notes and I wish I had, so some of this is not in the same order as it actually happened. My impression that a meta is only one operation was in error. It’s actually three operations, depending on what happens. He said that 2/3rd of people who get it are unhappy later. Skinny people do have the best results, as it sticks out more. He told me about how they move everything they can away from it, to increase the sticking out. Natural dick growth happens over the first four years people are on T. I’ve only been on it for 3 years. The people who have the biggest dicks starting out will have the biggest dicks at the end.

In the first op, they do a hysto, if the patient is having one, add the waterpipe, move stuff around and build a scrotum. They start out giving the patient two catheters, one through his belly to his bladder and one in his new dick. They take out the one in the dick after a week, because it’s irritating, and leave the other one for three weeks, to give the waterpipe a chance to heal before sending wee down it.
There’s a 30% chance of developing a leak, either at the tip, which can split or at the base. If there’s a leak, they give it a while for the patient to otherwise heal and then try to fix the leak. I’ve heard elsewhere that this is difficult and doesn’t always work the first time.
Then finally, they add in silicon prosthetic bullocks. He opened his desk drawer and pulled out a bag of ovular, squishy balls. He showed me one about the same size as the end of my thumb, above the top knuckle. He said it would be that large and then pulled out another, clear ball and said it would be made of the material in the second ball. The first one seemed small, but it’s not like I have a lot of experience with how big they normally are. He said they had to use small ones or it would dwarf the meta-dick.

I gave the material a squeeze. Again, not much basis for comparison, but it seemed kind of firm. If I sat down hard on something, I might bounce a bit. He emphasised how durable the material was, “You can pierce it with a needle or stab it with a knife, and it will be fine,” listing several things I hope never happen to me. He took another, much squishier one from his drawer. “I used to use these. They’re nice and squishy, but I kept having to replace them when they sprang leaks.” I said I appreciated durability.

If I got a hysto at the same time, it would be two days in hospital, assuming that was done lacroscopically. However, the lacroscopic surgeon he works with isn’t in London, but a hospital out in the country. I wondered if it was similarly posh to his offices, but didn’t ask. That hospital is just off the main line from Paddington, which does not sound like it would be a fun commute while one has a catheter protruding from one’s abdomen.

Then, back to work shortly afterwards. All the wounds are in the same area, so that apparently makes things simpler. He talked some about complications, but I’ve got them all jumbled in my head now. Apparently, smokers have the worst ones. So he’s quit operating on smokers. Fortunately, I do not smoke.

He also said that skinny people have the best results, since it sticks out the most and many (but not all) skinny people can wee through their fly. The rest cannot. Which is probably related to the unhappiness factor. This truly makes a very small dick, which is not considered usable for ‘normal’ sex. However, it is my understanding that it’s a dick that has normal spontaneous erections and, provided, one sleeps with yoga practitioners, it’s possible to manage to stick it places.

He was generally fairly negative about the meta, so I asked about the normal phallo.

That used to be 4 operations, but they’ve got it don to 3, he said proudly, contracting his earlier statements about how given the complication rate, one shouldn’t get to caught up on the number of operations.

They take skin from the patient’s arm or belly and use it make a shape like a sausage roll, attach it to the existing blood supply and hook up nerves. He showed me some photos of post-surgical penises, that he had on his blackberry. They were on the large side, but they looked just like any other dick. (Again, not much experience, although one does see them a bit in pron.) The first was an arm one and the second was a belly one.
Of course, if you use the belly, you don’t get any erotic sensation, he explained. “So the belly is out,” I said. “Everyone says that!” he said.
He drew some pen marks on my arm, one of which intersected my tattoo. They would take one of two sets of veins and arteries leading to my hand and two sections of skin, leaving only a narrow strip. They would shape the donor skin “like a sausage roll” and sew it on, connecting up my existing blood supply and connecting nerves. They take some of the nerves from my existing dick and connect those up also, so most people get a mixture of erotic sensation and normal sensation. The existing dick can be stuck sort of under the new one, left out on it’s own or taken off completely, but that’s an extra thing and makes everything somewhat more complicated.
My tattoo would end up part of the waterpipe and not be visible. They replace the arm skin with skin from the patient’s bum. “So it comes with a free bum tuck” he said. “I’m 9 stone, I don’t need a bum tuck.” He said if there was not enough skin on my bum, they could peel the surface off of my thigh and do a thinner layer of skin. Other surgeons do it that way routinely and it can also have a good result. He showed me a photo of a skin-grafted arm.
“Oh, I forgot about the head!” and explained how they built that, but I was thinking of half-peeled thighs and feeling alarmingly like crying, so I don’t recall what he said.
He looked at my left arm and tested the blood flow to see if it would be good enough for me to sacrifice half of it. He said it would be fine. They had one patient, about ten years ago, who’s hand died, but that guy was a heavy smoker and that probably wouldn’t happen to me. Most blood flow problems happen to smokers. Some of them lose their entire penis. He’s stopped operating on smokers because of the complications.
He took out a BMI chart and looked up my BMI and said it was a bit low. The layer of fat under the patient’s arm skin was what provides girth for their penis. He told me I should try to put on a stone or two. “Not, muscle; fat.” Once they made the penis, it would be “diet-proof” but eating more fat wouldn’t make it get any bigger either.
He asked if I had a partner and when I said no, he asked if I was looking. They don’t do the final stage until the patient has a partner or is looking. He took two devices out of his desk drawer. They were like those fat, ergonomic ball point pens, but half again as long as those normally are. One device just had one of those things and the other had two. He pointed at the single one and said they would use that for me, as I’m thin. Also attached to the devices were small squishy pumps and a bulb, maybe 10% bigger than a kiwi fruit.
The phallic portion would go in the phallus, the pump in a bullock and and the bulb somewhere in my abdomen where I wouldn’t feel it. He squeezed the pump a few times. Water comes from the bulb and goes in to the phallic part to make it stiff. When one is tired of being stuff, they squeeze another part of their bullock to release the seal and squeeze the water back into the bulb.
A dick that reliably gets hard and stays hard as long as you want isn’t all bad, really. He said the infection rate for adding these devices was 10%. I said this sounded high. He explained this was an achievement compared to the previous rate. The infection can take up to a month to become apparent. After that, one’s body forms a protective shell around the devices and starves the bugs of food. they give antibiotics for a few days after the operation and then wait to see if an infection develops.
The devices are fairly complex and fail at 1-2% a year. This is why they don’t do that part until the patient has a partner or is looking, he said.
I asked how long I’d be unable to work and he said it would be a month before I could use my left arm again. I don’t know if that means actually a month or is like the “two weeks” my last surgeon told me.
He told me to go think about it. They don’t want to force people to have operations. Patients need to be sure of what they want. I asked if I called back tomorrow and said I was certain, how long it would be until I would have the operation. “3 to 6 months” he said.
I could have a willy in 3-6 months.
I thanked him for his time and said I would call him after I’d thought about stuff and then went looking for fatty foods, feeling completely freaked out.
. . .
It took me many weeks after the last operation to regain my mental focus, so if I got an operation in the next 3 -6 months, the chances of me actually graduating are quite low. I’ve already made some sacrifices for this stupid PhD. In for a penny, in for a pound. It would be really stupid to bullocks it up (so to speak) in the home stretch.
If I do not graduate, my plans to stay on in the country are not going to work out very well (unless I could get married, but I suspect a bandaged wiener may impact my ability to find somebody to marry). So I would have to have the operation and then bugger off right afterwards. Given that I’m entitled to NHS coverage on the basis of being a student, taking this and then leaving without even graduating seems more than a little morally suspect. Assuming that I could get all the operations finished before my visa ran out, which seems unlikely.
If I’m trying to get a job right after graduation, which seems wise, it might be problematic to take sick leave right away. My next likely break where I could lay about recuperating is the summer of 2012. Of course, by then, with the cuts, my NHS funding could evaporate. And the massive cuts in university-level arts education may mean that I can’t find a job and I have to leave anyway. So a planned delay may well mean starting over in another country or it could very easily mean never. I strongly suspect it means never.
I am literally sacrificing my right nut for my PhD.
And my left one.
The next time I’m in a pub’s bog, in a cubicle with no latch on the door, hoping nobody notices that I’m sitting down to wee, I’ll be sure to think how fucking awesome my PhD is.
. . .
I feel completely freaked out. Indeed, even if my PhD weren’t at stake, and I was certain exactly what I wanted to do, I’m not ready for another round of surgery. My chest still hurts and last week a blob of pus came from what I had thought were healed scars. I need 6-8 months for my chest to settle down before I can call it healed. I know some men do move this quickly, but arm, bum, chest and bits is a lot of things to be healing all at once and my uneducated guess is that this probably increases the chances of complications. An infected dick would be disconcerting, but a numb dick would be a personal tragedy.
Whatever I do, it’s a few months of pain and then I’ll have the results of it for the rest of my life. I think that provides a useful perspective. I should take time to think, but really, I know what I’m going to do and it’s terrifying. However, step one is to wait.

Discuss

This post is intended to be accessible to non-technical readers, so don’t flee when you see mention of programming languages.
Recently, on [an email list related to a FLOSS programming language], somebody posted about having used [a rival language] a lot for a month. He was happy to be back to his preferred language, writing, “It feels like having been fucking around with ugly cocain addict ex-go go dancer only to find out how much you love your wife. (who looks like Sharon Tate and still a C++/Java expert. )”
He then went on to ask a technical question.
I don’t want to bring this up on the [original] list, but I have questions about this and would like to get a discussion going. Is this an example of casual sexism / heteronormativity or just a slangy way of speaking? If it is sexism, could it it alienating to women who might otherwise want to be on the email list? Should such phrasing be discouraged? Should there be a policy? Would such a policy be overly formal/constricting for a language often used by hobbyists?
I found that sentence to be somewhat annoying, obviously, or I wouldn’t be posting about it, but not annoying enough to reply back and start a discussion on the list, especially as it’s pretty atypical. I’m wondering what others think about it, though.

Since I last blogged

I read too much BBCut documentation and got a handle on basic functionality well enough to teach it. That ate a lot of time. Then I got a reasonable draft of a new piece, which is, of course, not finished because everything could be better.
The new term started, so I had to treck up to Brum for the first meeting, which, actually, I thought was going to be more formal, or I might have skipped it. Meanwhile, I was quickly trying to tear through a 200 page book of critical theory about noise music, so I could give a good lecture.
Then, right away, we had a BEAST weekend. I came to Brum on Thursday evening to help rig speakers, but I showed up late and they got chucked out early, so I just went to the pub. Then I slept on Eric’s laminate floor and was up bright and early the next morning to help finish off the rigging. then I went to do fun things like pay my fees and talk to somebody at student records about having “Ms” as my title in the computer system. That last one caused some giggles from the person behind the desk.
Then, a afternoon concert at the Barber Centre, on campus. Immediately afterwards, we de-rigged and packed up all the speakers and put them onto a truck, along with about a hundred other speakers and took them over to the CBSO Centre. Somebody got the idea that we could so large, multi-channel systems at two different venues.
My bike has a flat tyre (AGAIN), so I rode the train into town. Or tried to, I waited more than 45 minutes in the rain just to buy tickets. And then more rigging! James now works for the CBSO and has keys to the building, so they didn’t throw us out at closing time. So we put up 90 channels of speakers and ran cables and the like late into the night. And then went to the pub. I spent the next night in a spare room at Shelly’s house, which had a bed in it! Yay!
And then back the next morning to tape down all the wires. There were 3 concerts Saturday night. And then we went to the pub.
Sunday just had an afternoon concert, that was possibly long enough to have been two concerts. And then we packed up all the speakers and all the cable and put it back onto trucks. This went shockingly quickly. Then we went to the pub. And then to curry. And then back to the pub. I got drunk enough where I kept asking Eric if he wanted to see my scars. The scars that are just rings around my nipples. He refused. And then, I thought it would be a good idea to break out my hip flask while walking back to where I was staying. (I think I might stop carrying it around, as I’d had the same idea after Sam’s birthday party and probably drank as much alcohol on the way home that I’d drank at the party. Not that I needed more.)
So the next morning, Monday, I showed up rather late to unload the trucks and put everything back into storage. But it still got done really quickly and then we all went for coffee in the Senior Common Room. This is an area with sofas that sells caffeinated beverages and pre-made sandwiches. I think the drip coffee there could be used as diesel fuel, in a pinch.
There’s a sort of amazing moment I noticed last time, when we go from being a team with a shared experience to just back to normal life. Like, this moment of togetherness that dissipates as people go to sleep it off or have meetings or whatever. I wish I could make a piece of music that does that somehow. This time, though, I missed that moment, as I had to go meet Scott, my supervisor.
I played him the piece that I declared done, and he had some good suggestions for how to change it. Bah. And then I played him my newer piece and he had many more suggestions for that. Since it’s just at a stable draft (good enough to try out at a gig, sort of stable draft), I expected those. Then, huzzah, he told me I could put some improv in my portfolio, so I might throw in some stuff from my last Noise=Noise gig. I really miss improvising and if I could get into a duo or something, that would be ace.
On the train home, I read many more pages of the Noise book and then logged into facebook and saw Mitch had posted his UK phone number. And I saw it was the 18th and thus his birthday! So I texted him and made arrangements to meet, for after I got Xena back from Sam. Xena was very happy an has been more energetic and spry since I’ve had her back. Clearly exposure to playful puppies is good for her.
Mitch and I went for curry on brick lane and had plans to go on to an improv show, but the curry went too late. It’s funny, because I tend to ask inappropriate questions and for whatever reason, people tend to answer them. But Mitch, who I’ve known for 17 years now, can seamlessly dodge such questions and change the subject through subtle slight of hand. Which is wise of him, and also funny.
On Tuesday, I collected audio samples for my lecture and got through most of the rest of the book. Then, I went to go to a SuperCollider meeting, but failed to find the meeting and so went home and worked more. That makes it the only day in the last week, where I did not drink any pints.
Wednesday, I woke up at 7-something to get out the door by 8:20 to get the train to Cambridge. I read more on the train and then in the few minutes before class. Last minute cramming, ahoy.
I talked a lot about transgender musicians, specifically Genesis P-Orridge. I could have done a much better job, I think. I was way short of sleep and some of the materials I read had wrong-pronouned him/her and so I started off by calling him/her, “he” instead of “s/he.” Meh, what’s wrong with me? Then I talked about Terre Thaemlitz, who I’m pretty sure goes by “he” and kept the digression of the crappiness of his “anti-essentialist” identity to a minimum. And then I talked about Venison Whirled, the band of Lisa Cameron, who is a transsexual woman from Austin who does noise music. I don’t think she’s really known outside of the Austin scene, but I figure binary-IDed trans people have a place in noise too. And I did all of this without disclosing, which, I dunno, I probably should have, since it was definitely sub-theme for the day.
Then, I got on the train to Brum and wrote a slide presentation about TuningLib, my SuperCollider quark, got to uni and then presented it. Scott noticed an error in one of my synthdefs in my sound example and then suggested I fix it in the piece. Which I had counted as done. (It’s not just changing a line of code, it’s re-recording the output and then re-mixing, etc etc etc). *sob* It was doooone. So I guess I have even less finished than when I started the day. And then we went to the pub and I drank a couple of pints without having eaten properly. Wheeee.
Today I woke up at noon and was able to resist feeling guilty about not working for about 3 hours. Not that I started doing work ater that. I’ve been dedicatedly faffing (mostly), but feeling bad about it.
In other news, I think I’ve fixed the problem with my phone that was draining the battery away. I ran top and noticed that the RSS reader was eating a ton of CPU. It’s, apparently, part of the OS, so attempts to kill it didn’t help. I finally blew away the preferences folder and it seems to be sorted out. My calendar, however, is still screwed up. I’ve discovered that it just never deletes anything. So if I schedule something to be every tuesday for the next 3 years and then move it to a wednesday, it keeps both versions. I don’t know yet if this is a problem with the phone or the free service I’m using to link it to Google Calendars. I so don’t have time to debug my sodding phone.
Anyway, today Mitch is done with his work in town, so we’re going to hang out. And do something, but I don’t know what.
And that’s most of what’s happened in my life except the stuff that I can’t mention on the public internet. Alas, none of the unmentionable stuff includes nudity.

Stupid BBCut Tricks

I’ve been messing a out with the BBCut Library and will shortly be generating some documentation for my students. In the mean time, I give you some commented source code and the output which it creates. In order to play at home, you need a particular sample.

(

 var bus, sf, buf, clock, synthgroup, bbgroup, loop, group, cut1, cut2, cut3, stream, pb,
  cut4, out;

 // this first synth is just to play notes
 SynthDef(squared, { |out, freq, amp, pan, dur|
  
  var tri, env, panner;
  
  env = EnvGen.kr(Env.triangle(dur, amp), doneAction: 2);
  tri = MantissaMask.ar(Saw.ar(freq, env), 8);
  panner = Pan2.ar(tri, pan);
  Out.ar(out, panner)
 }).add;
 
 
 // a looping buffer player
 SynthDef(loop, { |out = 0, bufnum = 0, amp = 0.2, loop=1|

  var player;
  
  player = PlayBuf.ar(2, bufnum, 2 * BufRateScale.kr(bufnum), loop: loop, doneAction:2);
  Out.ar(out, player * amp);
 }).add;
 
 // groups
 synthgroup= Group.head(Node.basicNew(s,1)); // one at the head
 bbgroup= Group.after(synthgroup); // this one comes after, so it can do stuff with audio
        // from the synthgroup
 bus= Bus.audio(s,1); // a bus to route audio around

 // a buffer holding a breakbeat. The first argument is the filename, the second is the number of
 // beats in the file.
 sf = BBCutBuffer("sounds/drums/breaks/hiphop/22127__nikolat__oldskoolish_90bpm.wav", 16);
 
 // a buffer used by BBCut to hold anaylsis
 buf = BBCutBuffer.alloc(s,44100,1);
 
 //  The default clock.  180 is the BPM / 60 for the number of seconds in a minute
 TempoClock.default.tempo_(180/60);

 // BBCut uses it's own clock class. We're using the default clock as a base
 clock= ExternalClock(TempoClock.default); 
 clock.play;  
 
 // Where stuff actually happens
 Routine.run({

  s.sync; // wait for buffers to load
  
  // start playing the breakbeat
  loop = (instrument:loop, out:0, bufnum: sf.bufnum, amp: 0.5, loop:1, 
    group:synthgroup.nodeID).play(clock.tempoclock);

  /* That's an Event, which you can create by using parens like this.  We're using
  an event because of the timing built in to that class.  Passing the clock
  argument to play means that the loop will always start on a beat and thus be 
  synced with other BBCut stuff. */
  
  // let it play for 5 seconds
  5.wait;
  
  // start a process to cut things coming in on the bus
  cut1 = BBCut2(CutGroup(CutStream1(bus.index, buf), bbgroup), 
   BBCutProc11(8, 4, 16, 2, 0.2)).play(clock);

  /*  
  We use a cut group to make sure that the BBCut synths get added to the bbgroup.
  This is to make sure that all the audio happens in the right order.
  
  CutStream1 cuts up an audio stream. In this case, from our bus.  It uses a buffer to 
  hold analysis data.
  
  BBCutProc11 is a cut proceedure.  
  The arguments are: sdiv, barlength, phrasebars, numrepeats, stutterchance, 
  stutterspeed, stutterarea
  * sdiv - is subdivision. 8 subdivsions gives quaver (eighthnote) resolution.
  * barlength - is normally set to 4 for 4/4 bars. If you give it 3, you get 3/4
  * phrasebars - the length of the current phrase is barlength * phrasebars
  * numrepeats - Total number of repeats for normal cuts. So 2 corresponds to a 
  particular size cut at one offset plus one exact repetition.
  * stutterchance - the tail of a phrase has this chance of becoming a repeating 
  one unit cell stutter (0.0 to 1.0)

  For more on this, see the helpfile.
  
  And we play it with the clock to line everything up
  */

  // wait a bit, so the BBCut2 stuff has a time to start
  2.wait;

  // change the output of the looping synth from 0 to the bus, so the BBCut buffer
  // can start working on it
  loop.set(out, bus.index);
  
  // let it play for 5 seconds
  5.wait;
  
  // start another BBCut process, this one just using the sound file.
  cut2 = BBCut2(CutBuf3(sf, 0.3), BBCutProc11(8, 4, 16, 2, 0.2)).play(clock);
  // We use CutBuf instead of CutStream, because we're just cutting a buffer
  
  // stop looping the first synth we started
  loop.set(loop, 0);

  cut1.stop;

  10.wait;
  
  // To add in some extra effects, we can use a CutGroup
  group = CutGroup(CutBuf3(sf, 0.5));
  cut3 = BBCut2(group, BBCutProc11(8, 4, 16, 2, 0.2)).play(clock);

  // play is straight for 5 seconds
  5.wait;

  // add a couple of filters to our cutgroup
  group.add(CutMod1.new);
  group.add(CutBRF1({rrand(1000,5000)},{rrand(0.1,0.9)},{rrand(1.01,1.05)}));

  10.wait;
  
  // we can take the filters back off
  group.removeAt(2);
  group.removeAt(2);
  
  // we can use BBCut cut proceedures to control Pbinds
  stream = CutProcStream(BBCutProc11.new);
  
  pb = Pbindf(
   stream,
   instrument, squared,
   scale,  Scale.gong,
   degree,  Pwhite(0,7, inf),
   octave,  Prand([2, 3], inf),
   amp,  0.2,
   sustain,  0.01,
   out,  0,
   group,  synthgroup.nodeID
  ).play(clock.tempoclock);

  // the stream provides durations
  
  10.wait;
  
  // We can also process this is like we did the loop at the start
  
  pb.stop;
  pb = Pbindf(
   stream,
   instrument, squared,
   scale,  Scale.gong,
   degree,  Pwrand([Pwhite(0,7, inf), rest], [0.8, 0.2], inf),
   octave,  Prand([3, 4], inf),
   amp,  0.2,
   sustain,  0.01,
   out,  bus.index,
   group,  synthgroup.nodeID
  ).play(clock.tempoclock);
  
  
  
  cut4 = BBCut2(CutGroup(CutStream1(bus.index, buf), bbgroup), 
    SQPusher2.new).play(clock);
    
  // SQPusher2 is another cut proc
  
  
  30.wait;
  cut3.stop;
  5.wait;
  cut2.stop;
  1.wait;
  cut4.stop;
  pb.stop;
  
 })
)

Writing my Legislators

Dear Honourable Hancock and Skinner,

I’m writing about anti-LGBT bullying in California schools. It was with great distress that I read about the suicide of Seth Walsh in Tehachapi. As you probably know, he was a victim of daily bullying at school by homophobic classmates.

Suicides rates of LGBT youth in California are unacceptably high and bullying is often a factor in these deaths. I hope that the State of California will take action to ensure that schools take bullying seriously and take steps to stop it. I hope also that schools will give the message to LGBT students and their peers that LGBT people are valuable members of society.

LGBT kids need to be safe in small towns as much as they are in big cities. It is not good enough to have a few safe areas, like the Bay Area. Kids in small towns are more isolated and need as much or more protection from harassment and bullying.

Thank you for your time.

Sincerely,
Charles Hutchins

I think national action should be taken on this, but also local and state. You can find out who your CA state legislators are at http://www.leginfo.ca.gov/yourleg.html. When you write, include your home address, so they know you live in their district.

Life and stuff

I’ve been kind of busy as of late. So this is just a list of things going on.
I had the follow up with my surgeon a few weeks ago. She was very pleased. And I had my second appointment at CHX for my next referral. I suspect the wait on getting an appointment may stretch into years, but we’ll see.
Paula’s father died, after a long illness. I went with her to the funeral, which was in a Saxon church in a picturesque village in Sussex. It was a bit dramatic.
I went with her also, in what seemed like the last day of summer, to the beach in Brighton. It’s been so long since I’ve been swimming that I found the elastic in my trunks has died of old age. (I’ll fix them in my copious free time). I applied sunblock and then lay shirtless in the sun, then went swimming in the channel. It was lovely.
Fossbox put on an openday, for software freedom day. We got a grant for a training suite, so we got some laptops and then put ubuntu on all of them and set them up to demo stuff. People ca e and we got good feedback.
I got a job as an hourly paid lecturer at Anglia Ruskin uinversity in Cambridge. I’m teaching a course on electronica. It is eating a lot of time. The target is 10 hours prep time per week, but I went way over that for last week, which was the first class.
Then, the day after my teaching debut, I got on a plane and went to Berlin for the SuperCollider symposium. First use of my new passport. OMG, the privilege! I breeze through border checks. Nobody looks askance. It’s amazing.
I brought my bicycle with me. Every morning, I chanted to myslef “bike on the RIGHT” but I still went the wrong way once. Cycling in Berlin is way better than London. Not just because of the wise cycle lanes and large numbers of segregated cycle paths, but because cars are actually looking out. There are bikes everywhere in Berlin. It’s great. Rent is still cheap. The arts scene is still thriving. I still am thinking about moving there.
At one of the concerts in the symposium, a familiar looking woman sat down next to me. It was Thea, Ellen’s friend who moved from Berkeley to Berlin last April! We met up later. She has an artist visa, which is apparently easy to get. She told me people only need to work part time and can spend the rest of their time composing.
I also saw Jörg, who is building mad-scientist – like devices in his amazing studio. He introduced me to his friend, who was also at the symposium. In Berlin, there are weekly sc users group meetings, which is amazing.
The concerts were mostly pretty good. The installations were incredible. There was a club night, where the sc-using DJs got to do their thing. I left at 3am. It went until 5. I think it was the loudest thing I have ever been to in my life. The subwoofers were making my nipples hurt.
Between my bike, my laptop and the book I’m plowing through, my bags were pretty heavy. The first day was a challenge, but I seem to have regained my strength. I kept telling people, “I can lift things!”
Some acquaintences failed to recognise me. This gives me mixed feelings. Very mixed. I know I’ve changed since I was in The Hague, thank goodness. But it’s weird when somebody doesn’t know who I am at all.
The sc symposium is always fantastic. Next time, I am going to present something. I have a research idea.
My composing time has been somewhat eaten by everything else, but I have energy and ideas and will get caught up shortly.

Renate Wiesser and Julian Rohrhuber: Meaning without Words

Last conference presentation to live blog from the sc symposium
A sonification project. Alberto de Campo is consulting on the project.
A project 7 years in the world, inspired bya test from the 70’s. You can distinguish educated and uneducated background based on how they speak. Sociologists picked up on this. There was an essay about this, using Chomsky’s grammar ideas. Learning grammar as a kid may help with maths and programming. Evidence of how programmers speak would seem to contradict this . . .
But these guys had the idea of sonifying grammar and not the words.
Sapir-Whorf: how much does language influence what we think. This also has implications for programming languages. How does your medium influence your message?
(If this stuff came form the 70’s and was used on little kids, I wonder if I got any of this)
Get unstuck form hearing only the meaning of words.

Corpus Linguistics

don’t use grammar as a general rule: no top down. Instead use bottom up! Every rules comes with an example. Ambiguous and interesting cases.

Elements
  • syntax categories – noun phrases, prepositional phreases, verb phrases. These make up a recurive tree.
  • word positon: verb, nouns, adverb
  • morphology: plural singular, word forms, etc
  • function: subject object predicate. <– This is disputed

The linguistics professor in the audience says everything is disputed. “We don’t even know what a word is.”
They’re showing an XML file of “terminals,” words where the sentence ends.
They’re showing an XML file of non-terminals.
Now a graph of a tree – which represents a sentence diagram. How to sonifiy a tree? There are several nodes in it. Should you hear the whole sentence the whole time? The first branch? Should the second noun phrase have the same sound as the first, or should it be different because it’s lower in the tree?
Now they have a timeline associated with the tree.
they’re using depth first traversal.
Now the audience members are being solicited for suggestions.
(My though is that the tree is implicitly timed because sentences are spoken over time. So the tree problem should reflect that, I think.)
Ron Kuivila is bringing up Indeterminacy by John Cage. He notes that the pauses have meaning when Cage speaks slowly. One graph could map to many many sentences.
Somebody else is recommending an XML-like approach with only tags sonified.
What they’re thinking is – chord structures by relative step. This is hard for users to understand. Chord structures by assigning notes to categories. They also though maybe they could build a UGen graph directly from the tree. but programming is not language. Positions can be triggers, syntax as filters.
Ron Kuivila is suggesting substituting other words: noun for noun, etc, but with a small number of them, so they repeat often.
They’re not into this, (but I think it’s a brilliant idea. Sort of reminiscent of aphasia).
Now a demonstration!
Dan Stowell wants to know about the stacking of harmonics idea. Answer: it could lead to ambiguity.
Somebody else is pointing out that language is recursive, but music is repetitive.
Ron Kuivila points out that the rhythmic regularity is coming from the analysis rather than from the data. Maybe the duration should come how long it takes to speak the sentence. The beat might be distracting for users, he says.
Sergio Luque felt an intuitive familiarity with the structure.

Martin Carlé / Thomas Noll: Fourier-Scratching

More live blogging
The legacy of Helmholtz.
they’re using slow fourier transforms instead of fft. sft!
they’re running something very sci-fi-ish, playing FM synthesis. (FM is really growing on me lately.) FM is simple and easy, w only two oscillators, you get a lot of possible sounds. They modulate the two modulators to forma sphere or something. You can select the spheres. They project the complex plane on the the sphere.
you can change one Fourier thing and it changes the whole sphere. (I think I missed an important step here of how the FM is mapped to the sphere and how changing the coefficients back to the FM.)
(Ok, I’m a bit lost.)
(I am still lost.)
Fourier scratching: “you have a rhythm that you like, and you let it travel.”
Ok the spheres are in fourier-domain / time-domain paris. Something about the cycle of 5ths. Now he’s changing the phase of the first coefficient. Now there are different timbres, but the rhythm is not changing.
(I am still lost. I should have had a second cup of coffee after lunch.)
(Actually, I frequently feel lost when people present on maths and the like associated with music. Science / tech composers are often smarter than I am.)
you can hear the coefficients, he says. There’s a lot of beeping and some discussion in german between the presenters. The example is starting to sound like you could dance to it, but a timbre is creeping up behind. All this needs is some bass drums.
If you try it out, he says, you’ll dig it.
Finite Fourier analysis with a time domain of 6 beats. Each coefficient is represented by a little ball and the signal is looping on the same beat. The loops move on a complex plane. The magnitude represents something with fm?
the extra dimension from Fourier is used to control any parameter. It is a sonfication. This approach could be used to control anything. You could put a mixing board on the sphere.
JMC changed the definition to what t means to exponentiate.
Ron Kuivila is offering useful feedback.

Alo Allik: Audiovisual Composition with Three-Dimensional Continuous Cellular Automata

Still live blogging the supercollider symposium
f(x) – audio visual performance environment, based on 3d cellular automata. Uses objective X, but he audio is in scserver.
the continuous cellular automata are values between 0 and 1. The state at the next time step is determined by evaluating the neighbours + a constant. Now, a demo of a 1-d world of 19 cells. All are 0 except for the middle which is 1. Now it’s chugging a long. 0.2 added to all. The value is modulus 1, to just get the fractional part. Changing the offset to 0.5, really changes the results. Can have very dramatic transitions, but with very gradual fades. The images he’s showing are quite lovely. and the 3d version is cool
Then he tried changing the weight of the neighbours, This causes the blobs to sort of scroll to the side. The whole effect is kind of like rain drops falling in a stream or in a moving bit of water in the road. CAn also change the effect by changing the add over time.
Now he’s demoing his program and has allowed us to download his code off his computer. Somehow he’s gotten grids and stuff to dance around based on this. “The ‘World’ button resets the world.” Audience member: “Noooo!”
Now an audio example, that’s very clearly tied in. Hopefully this is in the sample code we downloaded. It uses the Warp1.ar 8 times.
This is nifty. Now there’s a question I couldn’t hear. Alo’s favourite passtime is to invent new mappings. He uses control specs on data from the visual app. There are many many cells in the automata, thus he polls the automata when he wants data and only certain ones.
More examples!