Uncle Chuck

My uncle died. He was 74. The last time I saw him, in December, he was recovering from a hernia operation and didn’t look well. But I’d heard he had made a full recovery and was up and around and doing fine. His death was totally unexpected.
I’ve been back in California a few days. I thought that I would be helping out with the arrangements, but they were all made by the time I landed. So I’ve been visiting with my friends. I did, however, email the priest to get in contact with the church pianist for the funeral.
The pianist explained that people usually want sort of upbeat music because they’re celebrating the life of the deceased instead of mourning their loss. I wonder if I’m the only person in America who thinks that’s insane. I mean, I know there are TV ads for zoloft and whatever that say that a passing blue mood should be medicated away, but have we so rejected sadness that grief is now banished from funerals?
I asked for something in a minor key. He said he would do reflective music.
Ok, I guess Four Walls by John Cage with it’s stark depression might be a bit too much. And anyway, I doubt he knows it. I’ve been thinking for a while, that I should write some funeral music for organ. It’s very unusual for a Catholic church to have a piano instead. So I would have been unprepared regardless.
. . .
I wanted to ask my uncle about my great aunt Tessie. All I know about her was that she was a musician and a piano teacher and she never married. Where did she live and who did she live with? There’s nobody left alive that knows. My mother’s entire side of the family is dead. On my dad’s side, there is only my dad. Everybody is gone.
I wanted to talk to my uncle about changing my name. My younger brother has my father’s name. I thought maybe my parents would have named a second son from my mother’s side. Charles was the first name of my great grandfather and the middle name of my grandfather and the first name of my uncle. And it’s better than Otis, which is the other name traversing generations on that side.
When I saw my uncle last time, I was going to bring this up. But he wasn’t much of a talker. There was a kind of awkwardness between him and I that started when I was a teenager. I didn’t know how to bring it up, so I asked him about the garage that he just built and his test equipment. He was an engineer for HP and had a bunch of old oscilloscopes and oscillators and other testing gear. Then he showed me all of his race cars and talked about how much work he had put into them and how much they were worth. He showed me my mother’s bike, which he had repaired and was riding around town for short trips.
then his friend came over and he introduced me as his niece. It was an awkward moment. I had met the friend before. He started at me hard. I did not look or sound like a niece. My dad told me that he had told Chuck about me changing gender, but I don’t know how my dad would explain that or what my uncle would have heard. And he was clearly unsteady from having had an operation and so I didn’t say anything that would have made him look confused to his friend, nor did I correct him, I just inwardly squirmed.
So I did not talk to my uncle about his name. Nor have I talked to my family about it. I just started using it. I’ve performed with it twice and I use it with my email account. When I emailed the priest, that’s the name he saw for me and when the church pianist called, that’s what he called me. I need to say something about this to at least my brother and father before the service.
I feel like I’m doing this wrong.
All of it. I feel like I’m doing the name thing wrong. And I feel like I’m doing the mourning thing wrong. Sad music at the funeral will bum everybody out, since they all want a party or something. And despite my strange demands for somberness, I’m off hanging out with my friends. I spent a couple of nights with Mitch and went to a farmer’s market and had coffee with other people and biked from Sunnyvale to Cupertino (twice) and through the Santa Cruz mountains to Saratoga and Los Gatos and back to Sunnyvale and then had a BBQ. And I was thinking I’m using my uncle’s death as an excuse for a BBQ, what the fuck is wrong with me. I don’t know what I’m supposed to do.
And why the hell didn’t I know him better? When I sent to see him in December, I was full of dread because of gender stuff. My dad had to order me to go, because I was so caught up in myself. I didn’t want to tell him and I couldn’t not tell him. I went and it was ok, but it was awkward and I thought that I would just give it time.
time
My uncle wasn’t married and he never talked about his personal life. He talked about cars and computers. For a while, I thought he might be in the closet about something, because that’s what we do in the closet. But now I think he wasn’t. I think that’s just how he was. He made his life more about his activities and his friends than about his family. Which is also a bit like what being queer is about. Chosen family because blood family wouldn’t understand this stuff. We surround ourselves with friends who do get what we’re about and build stuff around them. And I do that too and that’s a good thing to do. I just wish he had reached out more to me and I wish I knew him more. And I wish I had reached out to him. And the obvious lesson from this is that I need tot talk to my family about my life and make sure they’re part of it.
I worshipped my uncle when I was a kid. He was a race car driver! And so smart and funny. And then, a distance. And then he’s gone.

Gig Report: Worcester Music Festival

On Friday afternoon, Ash Surrey of Danse Macabre and her partner came and picked up me and Hoops of Helen’s Evil Twin. We set off for the Worcester Music Festival where both our bands played gigs. Worcester is in the Midlands, somewhere near Birmingham. The rural area around it, the shire, is, of course Worcestershire, and is the region where Worcestershire sauce originates. Alas, it usually contains anchovies, so I did not eat any of it while away.
Anyway, Friday afternoon traffic on the M25 is a drag and we arrived in the evening and met up with the remaining members of HET and Danse Macabre. They came separately in a 70’s-era VW minibus, which apparently has been on many music tours. The van is affectionately known as Camper van Helsing, a joke that never stops being funny.
After checking in to the Travel Lodge, we went out to drink and catch some live music. The festival organizers went to just about every bar and café in central Worcester and asked them if they would host live musicians for three days and not charge admission. Every event was free and there were many participating venues. The one we went to was the one HET was to play the following night, the Marr’s Bar. On Friday night, the BBC was there broadcasting live. They had a big canvas BBC banner on the wall behind the stage, ringed by fairy lights and posters up explaining that this was all live on the radio.
One guy that was playing was Nigel Clark, a Brummie who was a member of the 90’s pop band Dodgy. They were very popular in the UK, but I don’t think I’d heard of them in the states. He was quite good. I like his music a lot and his stage chatter was also very entertaining. He explained he was going to leave the curse words out of one of his songs due to the radio broadcast. And on one of his songs, during the intro he said that all the home listeners would be wondering why so many people in the bar were talking while he was playing (the background chatter level was kind of typical for a bar) and he improvised a verse about not talking during the performance. The room fell very quiet. It was nicely done.
I was really excited about the BBC being there, but they only do live broadcasts on Friday nights and would not be back for our gig, alas. After the music was over, we went back to the hotel and got drunk and then started horsing around with ukuleles and other instruments until about 2 AM. I felt kind of guilty about this, but I think that we didn’t keep anybody else awake. I hope.
We woke up kind of late Saturday morning and after breakfast went to Danse Macabre’s venue. They’re a goth band. Their drummer is Helen of HET and they have the same violinist as HET, but their own bassist and lead singer. The lead singer put on black renaisance faire trousers and ruffly white shirt and a black jacket and top hat and a lot of skull-related jewelry, including a large, sparkly skull belt buckle. She put on black lipstick and all that. Watching her transform from slightly eccentric street clothes to goth was kind of amazing.
They played some songs from their album “The Golden Age of Ballooning” and a song about Worcestershire sauce, which included such facts as the inventor of it and the typical ingredients. And they played some songs from a rock opera about evil squirrels. The subject matter was very eclectic.
We hung around for one more act, which was Smiley Mic, a guy with some looping pedals, making pop music by looping himself. He was was musically very good, but his lyrics all tended to be about how he was one guy laying down loops. Then we went to Marr’s Bar for HET’s sound check.
The bar has a really good stage, a great PA and a good sound guy. I had my own monitor speaker. We did the sound check and it was amazing because we could actually hear each other, which is not something that happens often on stage. I was kind of nervous, but we were on second and so the audience was people who came with us and other bands waiting to sound check and that was it. The first guy was on for maybe 10 minutes and was really good. I had a bunch of mistakes when we actually played and didn’t feel good about it, but the rest of the band was very happy. While I was putting my bass away, a bloke from the audience approached Helen and started talking enthusiastically about how great we were. I guess it doesn’t matter that I forgot the bassline to our song summarizing Jane Eyre?
I caught another band, who was also very cool and then left to get some food and then put my bass back into the hotel and caught the last few bands of the evening, on 4 and 5 hours after we started. The crowd had grown a lot. The last band, And What Will Be Left of Them, was playing their last-ever gig and they and the audience were both getting kind of emotional about it. Understandable as they were really good. Actually, all of the Worcester and Midlands-based bands on were really good. Really fun, really musically strong. Worcester is cool.
So I was highly impressed by the Worcester music scene. I suspect we will play there again and will probably also play in Birmingham and Manchester around December and January when we expect to be selling our album. Anybody who wants a rock band to play a show and then kip in their house around that time is highly encouraged to leave a comment or drop a line, because free lodging really helps with the going-into-debit thing that can be a downside of touring.
On Sunday, we headed back into London. I arrived at my flat in the afternoon, too burnt to do much but veg out. I’m quite enjoying the rock and roll life style, but my next major task needs to be to really really memorize the nine songs on our set list. I’ve got them, but not as solidly not-having-to-think-about-it as I’d like. And then, our set list should grow longer as things get recorded. Also, some of the songs could use better basslines, which requires time and thought and stuff, something I should be able to manage before our next gig on the 25 of September in Whitechapel.
Synthesizer
My personal next gig is not with the rock band, but is a noise music thing coming up on Wednesday at the Foundry in London. I’ll be playing my synthesizer. Starts at 7pm. I don’t know what time I’ll be on, but it’s free. In the basement.

Write your congress person

The public option is a compromise, and not a very good one. But access to health care is a moral issue and we have to do whatever we can to make sure that everybody has access. We can pass a compromise now and fix the rest of it later.
Howard Dean has a list of how everybody in congress has indicated they’re going to vote on health reform. The number of people who “don’t know” if they support a public option is high enough to swing it either way.
Feinstein is on the list of “don’t know”s, so I used her web form to send her a letter.

Dear Honorable Senator Feinstein,

I would like to encourage you to support a public option for health care reform. Any bill which does not include this option is not real reform. I voted for Obama partly because of his promises on this issue.

I vote absentee in California, but I’m studying overseas in England. The NHS is a fantastic system and we would be doing well to recreate it in the states. A public option is a compromise and not the best one. Failure to support even that is not just a political failure, it’s a moral failure. I’m sure that I don’t need to remind you of the alarmingly high number of uninsured children in California. They are counting on you to support a real reform, with at least a public option.

Thank you for your time,

C. Hutchins

It’s probably also worthwhile to write congress people who support it and thank them.

Rationing Health Care

As you know, I’m an American living in the UK and I’ve had a few health issues and have dealt with the NHS some. But I want to talk about how my mom got sick a few years ago.
She had been having a few problems and went to her GP for help, but the GP didn’t correctly figure out what the problem was. A week or so later, when she was suddenly partly paralyzed, my dad took her to the hospital, where first they thought she had a stroke and later they diagnosed her with a brain tumor. There was a national holiday, which delayed things for a bit, and then she had emergency brain surgery.
After the surgery, she needed to talk to some specialists about followup care and so had to wait to get on their calendars, despite needing care fairly immediately. They were on summer holidays. It took so long to see them that time was running out to actually start treatment.
Everything I’ve described so far could have happened in any first world country. The next part of it is uniquely American.
If you have a brain tumor, there is a very typical path through treating it. First surgery, then radiation + chemotherapy. Almost everyone does those things. But when it came time to start radiation, my mom’s insurance said no. That would not have happened under the NHS. The NHS would have covered it and she would have been able to start radiation within a reasonable time frame. Instead, my dad had to have a lawyer write a letter to the insurance company. While at the same time trying to cope with his wife having terrible cancer. So he approached Stanford Hospital to see if he could just pay cash. They said no. That also would not have happened in the UK. If my mom had been in the UK, she might have lived longer than the few weeks it took her to die, after she finally started radiation too late.
When I hear of people talking about how having national health in the states would cause delays in treatment or rationing of care, I wonder what planet they’re on. I’ve read that insurance companies spend 30% of their budget looking for ways to say no. In the UK, the NHS just follows standard treatment models. The doctor prescribes a treatment and the patient gets it. There is not an accountant involved in this process.
I have waited to see specialists in England. Sometimes months. But my issues are not life threatening. And I can see a GP usually the next day. In the US, I’ve been told I had to wait several weeks for a normal checkup. When I tried to get a gyno exam, the waiting list for that was six months. For a normal checkup. The NHS is faster and more efficient.
And, in the UK, if I decided for some reason that I wanted to see a private doctor or I wanted a prescription that they weren’t too keen to pay for (like the topical form of testosterone, for example) or I just thought it would be faster to go private, I could do that. Unlike my dad and Stanford Hospital, which only knew how to deal with insurance companies.
The US has the most expensive health care in the world. Per person, we pay more than anybody else in the world for our health system, which ranks at the very bottom of the first world. We pay twice as much as the NHS costs and we’re not getting better treatment, we’re getting worse.
So if the proposal for health reform in the States was to put in an American NHS, I say go for it. They’ve done fine by me and most everyone I know here. People in the UK don’t need to declare bankruptcy to pay medical bills. They’re astounded that we do. It’s responsible for half of all bankruptcies in the US. Here, like none. When people are hit by a car or something, they’re worried about getting better and getting back to work to pay their regular bills, not how they’re going to pay their medical bills. And we’re already paying twice as much as Brits for our system.
But just about everybody I know in the states has had some sort of issue with medical bills or insurance or something. Paying well over a hundred dollars just for a normal doctor visit or having to wait forever or being declined. Can we all take a moment and share those stories. Because the “rationing” fears I’m hearing from the states seem to be describing the present, not some dystopian future.
The NHS exists to keep people healthy. Private companies exist to turn a short term profit. Which do you think sounds more trustworthy?

Gig Report: The Royal Vauxhal Tavern

I’ve recently joined a rock band, Helen’s Evil Twin and last night was my first gig with them. It was their highest profile show yet and one of the biggest pop music gigs that I’ve ever played. We were at the Wotever Extravaganza, part of the Royal Vauxhall Tavern‘s Hot August Fringe Festival.
The RVT used to be a music hall. This was a form of mass entertainment that predated things like radio and TV. The working classes would cram into cabaret theatres and watch people sing and play piano and dance, etc. So the club has a long bar on one wall and then the seating is arranged in a sort of semi-circular pattern, facing a small stage. Upstairs, there is a kitchen, an office, a large room holding many stage props and upstairs from that there are dressing rooms and a flat that somebody seems to live in.
Helen, the guitarist (every third British woman is named Helen), and I met early in the afternoon and loaded up her drum kit and two very tiny amplifiers into a hired car and took them to the RVT, but they ended up not being used, as the other band decided an hour beforehand to hire much better gear. In the UK, it seems to be very common that rock acts will share drum kits and amps at shows, whereas, in the States, every band seems to bring their own gear.
The show started at six with some poets and then DJ + dancing and then some cabaret acts and then DJ + dancing. Some of the acts were quite compelling. Two highlights were Jet Moon doing her bit about “Femme Packing,” which is fun. And Michael Twaits did part of his show, Icons and a piece about the Stonewall Riots, which I’ve seen him do about three times now and I get a lump in my throat every time, because it is so very excellent.
I went up to our dressing room to get changed. Taylor, the violinist came up and reported that there was a naked man on stage, speaking like the characters from The Sims, and smearing himself with paint. We tuned our instruments and when we heard echos of Ingo’s voice booming from below, we walked down to have a very brief tech check while another DJ was spinning tunes and a few people danced.

We hadn’t had a sound check, so the tech was asking questions and running cables. It was very suboptimal, but half the band hadn’t been able to show up until after the event started and it probably didn’t make sense to check with only bass and guitar. So we waited around back stage and I tried not to be overly nervous. Hoops, the drummer, said, “this is so exciting! It’s like being back stage before a gig!”

The club was packed, but Wotever audiences are very friendly. I was just concerned about making mistakes, as I’m new and all the songs had completely left my head. I had written out the chords next to song titles on my set list, so if the basslines completely escaped me, at least I could play the right roots.
Ingo came out and announced as and mentioned that I was the new bassist and people cheered. The stage lights were very bright, so I couldn’t really see people, except for one guy close to the front who seemed to fancy me. We started playing through our set and I wasn’t screwing up as much as I feared, so that was ok. And people were cheering and dancing in the front. When Helen said we were nearly done, a large number of people yelled “more” at us. We were like fucking rock stars!
I went upstairs and changed back into my street clothes and then watched the next band, The Blow Waves, who describe themselves as “the campest band in the world.” They were very fun.

Post Mortem

I need to be less nervous and have more stage presence. Also, I need to wear earplugs, as my ears were ringing like mad after wards. Sound checks are almost always a good thing. I think, in general, we should stand farther forward, take up more space, and own the stage more, because we could totally be rock stars. Or at least, I totally want to be a rock star, which is almost the same thing. With screaming fans, dancing people and dressing rooms!
I’m thinking I might want to write a few songs about pop music topics: love, sex and death. And by sex, I mean gender, of course.
Our next gig is in the West Midlands at Worchester Pride, on 22 August at the Mars Bar.

I promised more blogging

I haven’t written about gender stuff for a while. I finally had my appointment with the Charing Cross Gender Clinic, after months of waiting. Fortunately, the shrink had actually read the amusingly stupid report from the previous shrink, so I was not forced to recount my childhood yet again, just a few details of it. I don’t know why they care about it. Some trans people aren’t dysphoric at all before puberty. Heck, some aren’t really dysphoric until well after puberty. And I hate that my unwillingness to skip rope is considered a sign of being trans. It was mostly a sign of being a huge nerd, something that was not tied to gender at all. I was awkward and unathletic. I also was unable to protect my face during dodgeball and hated it too. Does that mean I’m really a girl after all?
They need two appointments before they will give me a referral and they’re understaffed, so appointment number 2 is in february. I might be able to call occasionally and see if something sooner has become available, but I don’t want to feel guilty about queue jumping, so I might not. The UK economy is kind of fucked, so maybe I should just pay privately, especially if I can get a part-time job.
All the gender stuff is still really vital to me, but I just don’t want to talk about it. Somebody on a website had a go at me a few weeks ago about my gender issues and history and it really sucked. So I quit posting anything of import there and I’ve quit posting here and I quit seeing my shrink when T died, but the not-talking-about-it school of dealing with life seems to work as well as the talking-endlessly-about-it approach. After a while, it all gets boring. My cousin had a book called “After Enlightenment, the Laundry.” Like, no matter how fascinating your current thing is, after a while, the mundanity of real life reclaims the center stage.

Speaking of which

In my real life, shortly after I gave my concert in May, my dad came to the UK for a month. He stayed down the street from my flat for a bit and traveled for a bit and then we went to Ireland together and then he went home. In July was gay pride and a bunch of other stuff that seemed to suck up all my energy and now I can’t even remember what it was. Helen and I cycled in a big loop around the Isle of Wight, which was nifty and very hilly. I love biking. August is going to slip quickly past.
I joined a bad called Helen’s Evil Twin. I’m the bassist, so I’m in the non-acoustic line up. My first gig with them is on August 13th. As it happens, this is a high profile gig and a large percentage of people I know in London will be there.
In other news, I’m trying to get caught up with where I should be in my PhD, but this is making the writers block thing worse instead of better. It seems like everything I write takes a long time and then comes out boring. I should write a whole huge amount of stupid crappy pieces, just to get going and then pick the good parts from all of them and combine them into one good piece. Or something. I’m worrying too much and I think I need to do a masterpiece or something. I keep reading about symphony composers from a hundred years ago, and they’re all geniuses who write masterpieces and spend years on them and say something really meaningful. Intellectually, I’m against that, but intellectually, I’m against a lot of things that I can’t actually seem to shake free.
And now, here’s a boring blog post to go with my boring attempts at music lately. I had a conversation with a guy a couple of years ago about how he would rather be crazy and write good music than happy and boring. I’m happier than I was when I had that conversation, but I think I would have ended up musically boring either way.

Blog recommendation

Lonely Gender is genderqueer and is talking about gender issues related to questioning and transition. And it’s really well written and everybody should go read it.
I kind of quit posting on my own blog because I felt like I was saying some problematic sort of internalized badness things. I wrote several months ago that coming out as trans was equivalent to talking about my genitals, which is just wrong. It’s like saying that being gay is all about genitals. It’s just not. And I thought that I didn’t need to be inflecting that crap on the world, so I shut up.
I kind of miss blogging and might start it up again in earnest.

A learning experience

This weekend is full of BEAST concerts at the CBSO centre in Birmingham. These events always involve copious consumption of alcohol, so I’m writing this while not entirely sober, but I think drinking was called for.
Friday night was the student pieces and I actually played something, my first gig with a huge speaker array. There were more than 80 speakers around the room. There’s some special software written which people can use to disperse their tape pieces. It works well with stereo or 8 channel pieces, but can handle more inputs. I’ve never used this software and I’m inexperienced with how to diffuse stuff. I have no idea how one would map a stereo file to 80 speakers, so I thought it would be easier if I just used the hardware interfaces and not the software. I wrote a piece that sounded ok in stereo and then went in to uni last week to figure it out in 8 channels and got a rough map of what I wanted and went home and implemented it. When I got the list of what speakers were going where for this weekend, I changed my code so that it would use ones of them that seemed reasonable.
I had half an hour allocated for the dress rehearsal. I was pretty sure my code was going to work with only minor changes needed for amplitudes. It wouldn’t run at all. I made a change. The first minute of it ran. I made another change, I got 2 minutes out. I was out of time and the rest was not working at all. Only a few sections even made noise. The rest were silent or missing crucial bits. And I had no more time on the computer.
I went to hammer it on my laptop. Scott, my supervisor, gave me some advice and showed me how to get a bunch of level meters, so I could see if channels had audio, even if I couldn’t hear it from my laptop. I made changes, just trying arbitrary approaches to see what helped. And then just trying to hold it together, like it was made of gaffer tape and blue tack. Scott said I could have a few minutes to check it during the interval between concerts, so it was a last second test.
I got on the system during the interval and ran my piece and it sounded like hell. The first few bits were ok, but then it just degraded. It was playing the wrong samples and the sound quality was crap, as if the frequency for the filter had been set to zero. It would have been hypothetically ok that it wasn’t what I wrote, if it had worked musically at all. I turned to Scott and said it sounded like the Synth library wasn’t loading correctly. I had 5 minutes before the concert was scheduled to start, and they wanted to start on time. I was trying to decide if it was worth just playing the first 3 minutes and then fading out. He squinted at my code and said, “oh, it’s not loading correctly, because you can’t do it that way” and told me what to change. I did the change and then ran about 30 seconds of that part and it worked.
They started letting people in just then. I realized that his fix meant that a lot of the other missing stuff was also going to come back, along with all the crap I added trying desperately to get the thing to work. I didn’t know what it was going to sound like, just that end might be really really loud.
So, I had a piece that I had cobbled together from wreckage over the course of the afternoon, that I had never heard before that I was going to play in front of a live audience. I was ready to fade it out whenever it started wheezing towards death.
So I started playing it and had control only over the master volume, so when volumes turned out to be wildly wrong, I could only turn the whole thing up or down. And some stuff came out of speakers that weren’t the ones that I should have picked. And the very last section was extrodinarily loud because of desperate repairs that I had tried to make that suddenly all started working at once. Everytime something started playing, I breathed a sigh of relief. And a few bits were missing (some glitches also strangely vanished) but it was 90% of what I wrote. Again, with 3 minutes to spare, we found the bug and were barely able to test and it played ok, through to the end.
It was not the most stressful performance experience I’ve ever had, but it was close. It’s the most stressful one I’ve ever been able to pull off.
I learned some stuff from this. Incidentally, my horoscope last week said I shouldn’t just write how-to documents, I should share stories of how I came to want or need such a howto and I wondered how this astrological advice might apply to me. I am not asking the stars for a demonstration again!

learned

SuperCollider, by default, can only deal with a certain number of busses and UGen-type connections. You have to set a ServerOption when you have a huge speaker array: s.options.numWireBufs. I set it to 1024 and that fixed that problem. Incidentally, this shortage of WireBufs did not give me error messages until I tried moving the master fader up and down. Then I got a bunch of node not founds and another one that seemed more topical. This one explained a large portion of why my piece wasn’t working.
You can get a bunch of graphical meters (one for every defined output channel) by clicking on the server window to make it active and then typing the letter ‘l’. This is apparently undocumented, but it is really very helpful.
If you want to change amplitudes with a fader or whatever in a live situation, the best way to do it is with busses. Normally, I would change it in a pbind, so that the next one would be louder or softer, but if you’re playing longer grains, the feedback isn’t fast enough to respond to issues that come up in real time and slow changes are hard to hear so you can’t tell if your change is even working or not. Live control busses are good.
Don’t write any amplitude changes that cause peaking. I happen to think that digital peaking sounds good with floating points numbers. However, the BEAST system is cranked and so are many other systems. If you want to peak, you’ve got to either turn all the speakers down (yeah right) or fake it. Without the peaking, what was supposed to be a modest crescendo became stupidly huge.

memStore

When I was working on the piece, I started to suspect that I was having issues with writing my SynthDefs to disk. I thought my older versions were persisting, so I decided not to write them at all, but just load them into memory and send them to the server. So I did SynthDef(blahblah, { . . .}).send(s); You cannot do that. You must memStore it. If you send it to the server, your pbinds don’t know about what the variables are for the synthdef and instead of just sending it with the ones you provide, it sends crap.
This is a bug in SuperCollider. Yeah, it’s documented, but just because a bug appears in the help files doesn’t mean it’s not a bug. There are too many different ways to save synthdefs. There should be two. One should write it to the disk and do all the right things. One should keep it in memory and do all the right thing. I doubt there is a compelling argument as to why you would want to be able to send a synthdef to the server but not be able to use it with a pbind. Any argument in favor of that has to be pretty fucking compelling, because it really makes no sense. It’s confusing and nonsensical. Frankly, sending a synthdef that you can’t use in every case should be an exception and not the norm, so perhaps it could be set as an obscure option, not the method shown most often in helpfiles. The send/pbind is broken and needs to be fixed.
And while we’re at it, pbinds are not innocent in this. If I set a bunch of environment variables as if they were arguments to a synth, what good reason is there for not sending them as arguments?
I’m fine with there being more than one way to do things and every language has it’s obscurities, but supercollider is overdoing it a bit. These common things that you do all the time trip up students, not just because they’re inexperienced, but because these idiosyncrasies are errors in the language. This isn’t French! It doesn’t help noobs or old timers to have weird crap like this floating around. Flush it! My whole piece was almost sunk by this and I am having trouble believing that whatever advantage it might provide is worth the exposure to accidental error it causes. The need is obscure, make the invocation obscure. It’s like setting traps otherwise.
But hey, it al kind of worked. I might do a 5.1 mix next, especially, if I can find such a system to work with. Otherwise, look out for stereo.

More Tuning

While continuing to ponder tuning, I realized that it would be possible to create a dissonance curve for just intonation. Instead of judging how close the frequencies are to each other to look for roughness, you would look at what tuning ratio they described. If one frequency was 1.5 times the other, then that’s a ratio of 3 / 2. Then add the numerator and denominator to get 5. Then scale by amplitude.
In Sethares’ dissonance curves, you get scale degrees by searching for minima in the curve, but that approach is not a meaningful way to sort just ratios. Instead, they can be sorted by their relative dissonance.
I’ve updated my class, DissonanceCurve.sc (and fixed the url. sorry) so it can do just curves also. I ran it with the following (rough draft-ish) code:

 b = Buffer.alloc(s,1024); // use global buffers for plotting the data
 c = BufferTool.open(s, "sounds/a11wlk01.wav"); 

// when that's loaded, evaluate the following
(

 Task({

   d = SynthDef(foo, 
    { FFT(b, PlayBuf.ar(1, c.bufnum, BufRateScale.kr(c.bufnum))); 0.0 }).play;

  0.2.rand(3.7).wait;

   e = DissonanceCurve.newFromFFT(b, 1024, highInterval: 2, action: {arg dis;
 
    var degr, top5;
 
    d.free;

     dis.scale.do({ |deg|
  
      postf(" % / %,",
        deg.numerator, deg.denominator);
     });
    "n---just---".postln;
    dis.scale.size.max(25).do({ |index|
 
     degr = dis.just_scale[index];
        postf(" % / %,",
         degr.numerator, degr.denominator);
     }); 

 
   });
 
 
 }).play
)

And, after seriously heating up my computer, and waiting a bit, I got the following output:

 1 / 1, 29 / 28, 6 / 5 , 5 / 4 , 33 / 26, 4 / 3, 15 / 11, 29 / 21, 7 / 5, 10 / 7, 
3 / 2 , 8 / 5, 5 / 3, 27 / 16, 49 / 29, 12 / 7, 67 / 39, 7 / 4, 17 / 9, 2 / 1, 
---just---
 1 / 1, 3 / 2, 2 / 1, 4 / 3, 5 / 4, 6 / 5, 7 / 6, 9 / 8,  8 / 7, 10 / 9, 5 / 3, 
12 / 11, 15 / 14, 13 / 12, 11 / 10, 16 / 15, 9 / 7, 7 / 5, 14 / 13, 22 / 21, 7 / 4, 
10 / 7, 21 / 20, 11 / 8, 11 / 9,

The top section is the Sethares algorithm dissonance curve. I made a minor adjustment so that it looks at fractions one cent on either side of them minima and grabs the simpler one if it exists. (This is optional, add “simplify: false” to the method invokation to turn it off.)
The bottom section is the 25 least dissonant just ratios. Looking first at those, note that 1/1 is the least dissonant,as one would expect. Usually, 2/1 would be next, but note that in this case, it’s 3/2 instead. The algorithm does favor low number ratios, which is logical. Notice, also, that it tends to favor smaller numbers. There are a lot of (d+1)/d fractions: 4/3, 5/4, 6/5, 7/6, 9/8. It hugely favors these numbers. The top half of the octave is under represented. I do not know why this is so.
But Sethares’ algorithm, because it uses the critical band, tends to favor higher pitches as more consonant. However, since we search for minima rather than order the intervals by dissonance, this tendency’s effect on the results is reduced.
Both of these computations of dissonance seem to give meaningful data that does seem to have some kind of correlation to each other. On both lists we find, 6/5, 5/4, 4/3, etc. However, the length of the list of just ratios is arbitrary. If we take only the Sethares intervals that are in the top 5% most consonant (least dissonant) just intervals, we are left with:

 1/1, 29/28, 6/5, 5/4, 4/3, 15/11, 7/5, 10/7, 3/2, 8/5, 5/3, 12/7, 7/4,
2/1

Of those, 29/28 is the most dissonant, by both measures, so it may not be a the best scale degree. If that’s the case, then the top 5% is not the best cutoff. So what is? How do we choose it?
On the other hand, one way that just intonation is corralled is through factorization limits. For example, 7-limit tuning means that all the numbers in the ratios must be multiples of numbers that are less than 7. So 14 is ok (7 * 2), but 11 and 13 are not, as they’re prime and greater than 7. If we were to apply a 7-limit to the Sethares curve, the scale we would have is

1/1, 6/5, 5/4, 4/3, 7/5, 10/7, 3/2, 8/5, 5/3, 27/16, 12/7, 7/4, 2/1

Is that better? Does the 27/16 (aka: (3*3*3)/(4*4)) impact that?
Alas, we can’t use our ears because we don’t know what moment of the source was measured. But we can use our ears with a synthetic sound whose frequency content is known.

f = [50] ++ ( [50/27, 18/7, 54/25, 25/27, 9/7, 27/25, 25/54, 9/14, 27/50] * 300);
a = [0.055, 0.1, 0.1, 0.1, 0.105, 0.105, 0.105, 0.11, 0.11, 0.11];
e = DissonanceCurve.new(f, a, 2);

With some print statements, abbreviated for the sake of not being too boring, we get a Sethares scale of 1, 7/6, 25/21, 25/18, 36/25, 42/25, 12/7, 2, which, note, falls within a 7-limit. For the top 8 just results, we get, 1, 3/2, 6/5, 5/4, 7/5, 5/3, 34/27, 10/9. A list which does not include 2! And if we do the top 5% thing described above, we get, 1, 7/6, 25/21, 25/18, 36/25, 2. And we can compare these aurally:

(
 SynthDef("space", {|out = 0, freq = 440, amp 0.2, dur = 1, pan = 0|
  var cluster, env, panner;
 
  // detune
  freq = freq + 2.0.rand2;
 
  cluster = 
  SinOsc.ar(50, 1.0.rand, 0.055 * amp) + 
  SinOsc.ar((freq * 50/27) + 1.0.rand2, 1.0.rand, 0.1 * amp) + 
  SinOsc.ar((freq * 18/7) + 1.0.rand2, 1.0.rand, 0.1 * amp) + 
  SinOsc.ar((freq * 54/25) + 1.0.rand2, 1.0.rand, 0.1 * amp) + 
  SinOsc.ar((freq * 25/27) + 1.0.rand2, 1.0.rand, 0.105 * amp) + 
  SinOsc.ar((freq * 9/7) + 1.0.rand2, 1.0.rand, 0.105 * amp) + 
  SinOsc.ar((freq * 27/25) + 1.0.rand2, 1.0.rand, 0.105 * amp) + 
  SinOsc.ar((freq * 25/54) + 1.0.rand2, 1.0.rand, 0.11 * amp) + 
  SinOsc.ar((freq * 9/14) + 1.0.rand2, 1.0.rand, 0.11 * amp) + 
  SinOsc.ar((freq * 27/50) + 1.0.rand2, 1.0.rand, amp * 0.11);
 
  env = EnvGen.kr(Env.perc(0.05, dur + 1.0.rand, 1, -4), doneAction: 2);
  panner = Pan2.ar(cluster, pan, env);
  Out.ar(out, panner);
 }).send(s);
)
(
   Pbind(
  //Sethares
    freq,  Prand([1, 7/6, 25/21, 25/18, 36/25, 42/25, 12/7, 2] *300, 27),
    dur,  0.3,
    instrument,  space,
    amp,  0.2,
    pan,  0
   ).play   
)
(
   Pbind(
  // Just
    freq,  Prand([1, 3/2, 6/5, 5/4, 7/5, 5/3, 34/27, 10/9] *300, 27),
    dur,  0.3,
    instrument,  space,
    amp,  0.2,
    pan,  0
   ).play   
)

(
   Pbind(
  // Top 5%
    freq,  Prand([1, 7/6, 25/21, 25/18, 36/25, 2] *300, 27),
    dur,  0.3,
    instrument,  space,
    amp,  0.2,
    pan,  0
   ).play   
)

Which of those pbinds do you think sounds best? Leave a comment.

Questions about Differing Approaches to Tuning

Let’s start by all admitting that Equal Temperament is a compromise and that computers can do better. They’re fast at math and nothing physical needs to move, so we can can do better and be more in tune. (The next admission is that I haven’t had the attention span to actually read all the way through the Just Intonation Primer, although it is a very informative book and everyone should buy a copy and actually read it. Nor have a I read Tuning Timbre Spectrum Scale, alas.)
When we say “in tune,” what does that actually mean? On the one hand, we are talking about beating. You know that when you’re trying to tune two sound-generating objects playing the same note, there’s weird phasing and stuff that happens until you get it right. The beating sound you get when tuning a guitar. There’s also just a sort of roughness you hear when you play two notes that are really close to each other, like a C and a C# together. Both of these things seem to have something to do with being in tune and both suggest possible approaches.
Just Intonation, seem to be all about beating and zero crossings. Note relationships described with ratios in which the numerator and denominator are small, whole numbers have less beating. This is because when the waveforms cross, it’s at the low energy position, so they don’t interfere. 3/2 is thus very in tune. You can compute the amount of dissonance by adding the numerator to the denominator. Lower numbers are more in tune.
Bill Sethares, though, likes ten tone equal temperament (and writing songs in Klingon) and came up with some timbres that sound good in such a strange tuning. He’s got some math about dissonance curves. The roughness mentioned above has to do with how our ears work and critical bandwidth. If we hear two tones that are close to each other in pitch, the ear hairs they stimulate overlap, so the interfere with each other and create roughness. We can take a timbre and see how much internal roughness it has and then transpose it a bit and measure the roughness of the original and the transposed version played at the same time. Do this a bunch of times and you get a curve. The minima on the curve are good scale degrees.
Both of these approaches are perceptual and both seem to be in conflict. They both seem to use different parts of our perception, one more around critical band and the other more around amplitude and phase. So I wonder how to get them to work together? I can compute a dissonance curve that goes from 1 -1200 cents, but if I do it from a FFT’s spectrogram, the data I’m putting in is inexact. It only knows 512 frequencies, each of them slightly blurred and I’m using it with 1200 transpositions. Also, the transpositions are appropriately logarithmic, but the bins of the FFT are not, they’re linear. Should I do a similarly linear comparison and save myself a lot of unnecessary computation or does it make sense to do it by cents? Since I know there are artifacts in the spectrogram, should I find the minima and then search for “good” tuning ratios near them? Should the internal dissonance in the sample change the approach that I use?
I ported Sethares’ code to SuperCollider. You can download a working draft of DissonanceCurve.sc, if you desire. It’s quite math intensive for FFTs, but I have a synthDef made up of SinOsc, which is easy to analyze, since all the frequencies and amplitudes are known and there aren’t many of them. The freqs are in f and the amps are in a:

f = [50] ++ ( [50/27, 18/7, 54/25, 25/27, 9/7, 27/25, 25/54, 9/14, 27/50] * 300);
a = [0.055, 0.1, 0.1, 0.1, 0.105, 0.105, 0.105, 0.11, 0.11, 0.11];

e = DissonanceCurve.new(f, a, 2);
e.scale.do({ |deg|
  
 postf("Interval % - Dissonance %tRatio % / % n",
  deg.interval, deg.dissonance, deg.numerator, deg.denominator);
});

Which prints

Interval 1 - Dissonance 0.93194694734913 Ratio 1 / 1 
Interval 1.1667536657322 - Dissonance 1.1967977845161 Ratio 7 / 6 
Interval 1.1905817347928 - Dissonance 1.1395899373121 Ratio 25 / 21 
Interval 1.3883134504798 - Dissonance 0.92933737113208 Ratio 118 / 85 
Interval 1.4405968618317 - Dissonance 0.95473900132736 Ratio 85 / 59 
Interval 1.6798510690642 - Dissonance 0.79165734602377 Ratio 42 / 25 
Interval 1.7141578884562 - Dissonance 0.80288033573481 Ratio 12 / 7 
Interval 2 - Dissonance 0.49046268655094 Ratio 2 / 1 

118 / 85 is not a ratio of small, whole numbers, but it’s apparently less dissonant than 7 / 6 or even 85/59 or even the internal dissonance of the source sound! But, if we look in the curve, we can find the ratios 1 cent distant on either side of 118 / 85:

Interval 1.3875117607442 - Dissonance 0.9386025721761 Ratio 111 / 80 
Interval 1.3883134504798 - Dissonance 0.929337371132 Ratio 118 / 85 
Interval 1.3891156034233 - Dissonance 0.92966297781753 Ratio 25 / 18 

25 / 18 is a much smaller ratio and a distance of 1 cent is not perceivable, so it’s probably a better number. But I am still slightly confused / unconvinced. Note also, that sounds closer to 2/1 are all, in general, less dissonant that sounds closer to 1/1, because of the nature of the algorithm / critical bandwidth. But for just intonation, an inversion is barely more or less dissonant than it’s non-inverted form.
Also, an issue: the width of the critical band changes in different frequency ranges and I think it might help to use the Bark scale or something in the Dissonance Curve code, but the math is, as yet, a bit beyond me.
For the purposes of showing off, here’s a silly example with FFTs, which is not at all real time:(WARNING: THIS IS SLOW!)

 b = Buffer.alloc(s,1024); // use global buffers for plotting the data
 c = BufferTool.open(s, "sounds/a11wlk01.wav"); 
 d = { FFT(b, PlayBuf.ar(1, c.bufnum, BufRateScale.kr(c.bufnum))); 0.0 }.play;

// when that's playing, evaluate the following

 e = DissonanceCurve.newFromFFT(b, 1024, highInterval: 2, action: {arg dis;
 
  dis.scale.do({ |deg|
  
   postf("Interval % - Dissonance %tRatio % / % n",
    deg.interval, deg.dissonance, deg.numerator, deg.denominator);
  });
 });

Go and get a snack while that’s going. Make a cup of tea. You won’t be able to do anything else with SuperCollider until it finishes, so leave some comments about tuning. How should I be trying to combine dissonances curves and Just Intonation?
(My result for the code above (timing matters) was:

Interval 1 - Dissonance 2.4284846123288 Ratio 1 / 1 
Interval 1.0346671040459 - Dissonance 2.9055490440413 Ratio 30 / 29 
Interval 1.0557976305092 - Dissonance 2.9396229209406 Ratio 19 / 18 
Interval 1.0588513011885 - Dissonance 2.9394283497832 Ratio 18 / 17 
Interval 1.0625273666152 - Dissonance 2.9404120579786 Ratio 17 / 16 
Interval 1.0767375682475 - Dissonance 2.9248076874065 Ratio 14 / 13 
Interval 1.1114938763335 - Dissonance 2.8528563216285 Ratio 10 / 9 
Interval 1.1250584846888 - Dissonance 2.8384180012931 Ratio 9 / 8 
Interval 1.1302693892732 - Dissonance 2.8422250578475 Ratio 26 / 23 
Interval 1.1335384537169 - Dissonance 2.8404168678269 Ratio 17 / 15 
Interval 1.1667536657322 - Dissonance 2.773742908553 Ratio 7 / 6 
Interval 1.2002486666653 - Dissonance 2.6741210623142 Ratio 6 / 5 
Interval 1.2497735102289 - Dissonance 2.5747254321313 Ratio 5 / 4 
Interval 1.2628354511916 - Dissonance 2.5907859768328 Ratio 24 / 19 
Interval 1.2664879348481 - Dissonance 2.5910058160679 Ratio 19 / 15 
Interval 1.2856518332381 - Dissonance 2.5784271202225 Ratio 9 / 7 
Interval 1.3332986770912 - Dissonance 2.4554262314412 Ratio 4 / 3 
Interval 1.3503499461682 - Dissonance 2.4863589672953 Ratio 27 / 20 
Interval 1.3573881591926 - Dissonance 2.4874055968135 Ratio 19 / 14 
Interval 1.3755418181397 - Dissonance 2.469278592016 Ratio 11 / 8 
Interval 1.3811148862791 - Dissonance 2.4674194148261 Ratio 29 / 21 
Interval 1.3843096285337 - Dissonance 2.4676720796587 Ratio 18 / 13 
Interval 1.3891156034233 - Dissonance 2.4680185402198 Ratio 25 / 18 
Interval 1.4003945316219 - Dissonance 2.4587789993728 Ratio 7 / 5 
Interval 1.4289941397411 - Dissonance 2.432946313225 Ratio 10 / 7 
Interval 1.5000389892858 - Dissonance 2.2587031579717 Ratio 3 / 2 
Interval 1.5262592089606 - Dissonance 2.3003029027958 Ratio 29 / 19 
Interval 1.529789693524 - Dissonance 2.299895874529 Ratio 26 / 17 
Interval 1.5333283446696 - Dissonance 2.2993307022943 Ratio 23 / 15 
Interval 1.555631119012 - Dissonance 2.2871143779032 Ratio 14 / 9 
Interval 1.5619338268699 - Dissonance 2.2878440907054 Ratio 25 / 16 
Interval 1.6002899594453 - Dissonance 2.2385589006945 Ratio 8 / 5 
Interval 1.6114208563635 - Dissonance 2.2381572659306 Ratio 29 / 18 
Interval 1.6188844330948 - Dissonance 2.236239217168 Ratio 34 / 21 
Interval 1.625443414535 - Dissonance 2.2331690259349 Ratio 13 / 8 
Interval 1.6663213678518 - Dissonance 2.1624083601251 Ratio 5 / 3 
Interval 1.68763159226 - Dissonance 2.1765673941027 Ratio 27 / 16 
Interval 1.7141578884562 - Dissonance 2.1648475763908 Ratio 12 / 7 
Interval 1.7501759894904 - Dissonance 2.1359651045669 Ratio 7 / 4 
Interval 1.8004197968362 - Dissonance 2.0659411117752 Ratio 9 / 5 
Interval 1.8340080864093 - Dissonance 2.0362153732133 Ratio 11 / 6 
Interval 2 - Dissonance 1.6432830079835 Ratio 2 / 1 

Yikes)