Migrating to svn

There exists a piece of software called CVS. It’s very handy for keeping track of files across multiple computers. So if you edit a file on computer A and want to edit it again on computer B, it is a way of making sure you have the most recent version everywhere. Also, if you keep the main data store on a remote server, it’s also a way to do network backups. The only problem with it is that it completely sucks.

Fortunately, somebody wrote a new system called Subversion, or svn for short. There are a lot of different ways to migrate from CVS to svn, but I went the slacker route. I had some, um, glitches. To spare you my pain, here’s a slacker howto:

Moving the Repo

mkdir ~/tmp
cd ~/tmp
cvs -d [path to repository] export -D now [name of respository]

Ok, while that’s going, let’s think about where you want to stick your svn repositories. I stuck mine in ~/svn/[name of repsitory]. Every one gets it’s own directory, no sharing like you can with CVS. I tried sharing and I had a disaster, alas. Anyway, let’s say you’re logged in to the machine where you’re going to host your repositories, and, for purposes of this example, your repo is named “Documents.” You’ve got it exported from CVS and sitting in ~/tmp/Documents/
Ok, part of the reason that CVS sucks is because it’s so damn hard to move things around or delete them. Well, go to town! Now you can! Once you get everything looking lovely, create yourself a svn repository and put your data in it.

mkdir ~/svn/Documents
svnadmin create ~/svn/Documents/
svn import Documents file://[full path to your homedir]/svnrepos/Documents/ -m "Initial copy"

Ok, where that says, full path, it means what you get when you type: “cd; pwd” (without the quotes). If you type that, make sure to go back to our working directory: “cd ~/tmp”

Getting Client Machines up to speed

Ok, you have two options. One is to just blow away the repository that you have checked out of CVS and check out the new one from svn. Boom! You’re done! However, if you’re using this as a backup strategy, you probably haven’t backed up every file. For me, that doesn’t mean that I don’t like the file and want to keep it around. It just means that I can regenerate it or I can live without it. Not because I want to, but . . .. I have a bunch of files that I don’t want to lose, but not so much that I stuck them in the repository. Which leads to the second option.
Remember, slacker means brute forcing. If you have a million client machines and not, like, 1 or 2, you’re going to want to write a script. But if you’re lazy and only have a few machines, it can be faster to do it by hand.
So when your were busily beautifying your directory tree: moving, renaming, etc? Do that to your version on the client machines.
Now, get rid of all those stupid CVS folder. This is easy. Cd into the root directory of the repository. Type “rm -rf `find . -name CVS`”. But don’t take my word for that. First try “echo `find . -name CVS` | less” and make sure you’re listing the directories that you actually want to delete. (Obviously, skip the double quotes, but keep those weird backwards single quotes.)
Create a temporary directory on your client machine and check out a copy of your new repo there

mkdir ~/tmp
cd ~/tmp
svn co svn+ssh://[network host]/[path to repository] Documents

Ok, there’s like a million ways to access a svn repo, but that’s the best one. Ask your sysadmin to set it up.
Now, this is the fun part. Let’s call the CVS repo A and let’s call the new one B. There are files that are in B that are not in A and vice versa. Copy all the files that are in B but not in A into A. This includes a bunch of .ssh directories. One in every folder. If there are files in B that you would rather have than the version in A, then copy those too.
Wasn’t that fun? Now do it for all your client machines. Ok, there is now an issue of files in your checkout versions that differ from the ones in your repository. So go to you client machines and do some checkins.

Internet at Home!

Huzzah!

I still had to go to school today, because I’m playing a piece tomorrow night at the Ikon Gallery, (7:00 PM) and my supervisor wanted me to verify that it would work on the computer that’s going to the gig. I left Xena tied in the hallway, in a gesture to the no-dogs-in-studios rule. This failed to appease the studio manager who spoke to me about it while I seethed with unreasonable rage. I showed enough restraint not to drop out of school on the spot.
Why so stressed? I dunno. It sucks that Nicole has left. And I was biking to get my cell phone back from the unlocker when a car came closer to my person than I think I’ve ever experienced before. Even when the truck hit me last summer, it didn’t feel as close. And this was much higher speed. My bike is as big as a motorcycle, so I don’t understand why cars don’t give me as much room as they’d give a motorcycle. Or maybe they do, which is also alarming. I felt shaken up. I went to a bike shop to get a day-glo safety vest, but they didn’t have anything that wasn’t hugely gigantic.
they were next to a pet store and I finally have a phone number, so I went to see about getting Xena some tags. The guy at the store told me that dog-theft is rampant in the Midlands! People steal dogs left and right and demand ransom or sell them for vivisection or use them as bait dogs to train pitbulls to attack! I shouldn’t leave my dog outside of the supermarket unless I’ve locked her with a lock! Some of his customers had pets stolen! Somebody once brought in a stolen pet for grooming! The guy behind me in line said his cat had been stolen!
Good fucking god.
So if I don’t get flattened by a car, my dog is certainly to be stolen or at least threaten health and safety in the music studios. Girls scream and run away when I walk her. What’s up with that? I mean, college women, especially ones displaying cleavage and drunk sort of fall over themselves trying to pet her, but younger ones and ones with higher necklines are terrified.
In other news, My ‘installation’ is terrible and I’m scrapping it. I wasted like 30 hours on it. I was at school until 11:30 trying to make it less dull. I almost succeeded, but not at all. The only thing that could make it a worse disaster is to spend more time on it. I’ve got the anti-midas touch right now.

Art is supposed to be some sort of window to the soul or something right. Does it say something that I tried to create something that took patience to appreciate? That started invisibly and crept up on you until it became a short speaker-murdering wail of feedback? I tried it with Pink Noise at first. Then I was walking towards the studios and heard somebody running it! How could this be?! But then I realized that what I heard was a leaking toilet in the men’s room. Yeah, so I tried switching the sound source to formant synthesis. And I ended up with something approximating a flock of deranged ducks. Which is not interesting for more than a few seconds at the most. So I switched to a tape loop of Bill OReily talking about falafels. No! Talking about lesbian gangs terrorizing innocent straight men. First, I thought the three minute long segment was laughably silly. The pink pistols are a GAY MEN’s self-defense group. Why would lesbians carry pink guns? Sheesh. But then I realized that the “gangs” he was talking about were victims of hate crimes who tried to defend themselves but then got arrested and sent to prison for it. Listening to this 381260421364 times is not happy. Which is why I swore no more of these pundit pieces, right. Anyway, it was still boring, so I quit.
I told the bit about the running toilet to Scott and he agreed that perhaps abandoning it was for the best. He is a really, really, really nice guy. He could tell how pissed I was and offered to dog sit and try talking to people, etc etc etc. He’s much too nice to be a supervisor of postgrads. He’s doomed to bitterness.
Maybe tomorrow will be fun.
In even further afield news, my brother is moving to Beaverton, Oregon. I have mixed feelings about this. Among them: Hey, only I get to move away from California! The rest of you have to stay there awaiting my return, so when I finally come back, I can pick up right where I left off! I demand that my friends continue to meet in our old hangouts on our old nights and somberly remember me by ordering a pint of cask-pulled ale and pouring it solemnly on the ground in memory of their exiled homie.

Weekend Report

The lounge with the electrical plugs and the wifi is shut and locked on weekends! I sat outside of it on a bench and checked a few email messages, but my laptop battery is not young, so I had to quit before I could post anything to my blog. I went inside the computer music labs and they don’t have internet access. You can get to a server, but not outside. Ok, I see why you wouldn’t want people using music lab computers to read comics, but they also can’t get to online help files either.

So I sat in the lab, waiting for my battery to recharge and staring squarely at my navel, when another postgrad came by. His name is Zack (I think) and he’s also after a PhD. He’s also a SuperCollider guy and also left behind from the Copenhagen trip. He asked me what I was up to and I whined that I was all alone in the world (woe is me), so we went out for a beer that evening.

I told him that I’d see him at school again today, but I didn’t go in. While I was navel gazing, I got an idea for a multi channel piece and I thought I’d get a stereo version working and then go add channels. But I haven’t been able to get a stereo version going.

So while I’ve been debugging my code, I’ve been trying to make a playlist of makeout music that I think Cola would like. Shockingly, this side project is not making me feel less lonely. Maybe I should write a makeout music generator to rival Nick Collins’ JPop generator. I need samples of women singing “uhgh” and “ooh” and all those sorta sexy R&B vocals. Anyway. What’s your favorite makeout music and why? Leave a comment. (Anybody that says Stimmung has to sit facing the corner for an hour.)

The piece that I’m actually working on uses feedback. It’s got a comb filter and it also feeds back into the whole synthdef. I use a InFeedback.ar and I track the amplitude with an RMS. There’s a tiny amount of noise going into the circuit and it builds up very slowly through feedback. When it gets above a threshold a bunch of envelopes start going and everything gets zeroed out. I multiply the output of the comb by zero and the input of the comb by zero and the noise by zero and set the comb’s feedback to zero. Heck, I zero the buffer that the comb filter uses. There are zeros everywhere. So when I lift the zeros, it should sound like I’m restarting it from the beginning, right? No! It very quickly builds up past the threshold and zeros again and builds quickly and zeros and builds quickly. I don’t get it.

From Last Week

Nicole left very early yesterday morning, alas. By the time I post this, she will (hopefully) be in California. I spent all yesterday morning feeling sorry for myself, but eventually roused myself into action, at least to answer the door when my last delivery of boxes arrived.

My next door neighbor came over while I chatted with the delivery guy and Xena ran around loose. The neighbor chastised me because he had found dog shit on his driveway the day previous. “It wasn’t my dog.” I said, which was true as that the first and only time Xena has ever been allowed off leash on the street. It was like he didn’t hear me, so I repeated it. He clearly thought I was lying. He wanted an apology. meh.

I set up my bedroom studio and it looks pretty good, but during shipping, the bolts came unscrewed in one of my synthesizer cases and the modules got slightly battered by bouncing and the loose screws. My favorite module, the MOTM 440 low pass filter, suffered visible damage. One of the knobs had come loose and the back cover of it broke off and now it catches when I turn it. I took it to school and asked the lab assistant about it. He lent me some tools and I re-tightened it and he told me to take it home and see if it worked. I screwed it back into the case, but I still haven’t tried turning it on as I have fears of it suddenly catching fire or something equally unlikely. The moral of this story is to use the correct mounting brackets and not try to fake it with just bolts and washers. Or if you do try to fake it, tighten them before you ship. And then tighten them again before you strap them to your bike and pedal them home. And don’t put it on a rack where it will bounce around a lot, but in the trailer.

Speaking of which, my trailer is also broken. I think it’s from running into stuff and not from carrying around my synthesizer. It’s wide and it sticks out on one side and lord knows i’ve bashed it into things a bunch of times. Anyway, it has a spring attaching the hitch part to the main part, so the spring lets it swivel some. the spring, however, is sprung. I think this is easily fixable. By somebody with tools.

My supervisor and all of my colleagues are off in Copenhagen, putting on a concert with an array of 80 speakers. They call this system BEAST. Apparently, I’m going to be a part of BEAST in the future, but for now, the only people I know in town are my housemates. They’re nice people. But I have no friends here except for my dog, who is nice, but doesn’t talk much and has a disturbing tendency to roll in horrible things she finds in the park.

I read Fingersmith last night. It’s a thick book by Sarah Waters. It has a really good plot twist in it. And unlike the last book by her that I read, the lesbians don’t die in the end. The book is kind of sexy, actually. So I woke up this morning feeling even more sorry for myself than yesterday.

I’ve read a lot of fiction lately, after a long run of none at all. The downside to this is that after I read a lot and sit by myself, I start narrating my life to myself in my head (c’mon, you know you do it too, sometimes) and as I’ve read two novels placed in the Victorian era recently and I’m in England, I’ve begun narrating to myself as if I were some sort of bloody Victorian (you see that “bloody” there? alas). I guess as long as I keep it to myself, it’s not a big deal, but as you can see, it’s sprung out and effected my blog, and thus yourselves, dear readers. . . . (Are those crickets I hear? Damn.)

The weather has been sunny the last two days, and thus at odds with my disposition, which is for the best. I need to find a book shelf, I think. I went to two charity shops today. I thought this term “charity shop” meant something like the Goodwill store in the US, and there is a passing resemblance in that they both seem to involve used clothes. But either I went to the wrong two shops or the similarity sort of runs out there. The “charity” part seems to just refer to the owners of the shop. The might sell a lot of new stuff. And the people working there seem to be normal shop keepers or maybe volunteers, I don’t know, but they’re not getting the sort of job training that folks at Goodwill are getting. No scent of lisol. No air of poverty. Maybe I went to the wrong shops.

The locals here are friendly and are getting gradually more intelligible. I’ve been talking with other dog owners in the park. And when I was strapping horrible, cheap dollar-store plastic junk to my bike, a bicycle enthusiast approached me to talk about old fashioned delivery bikes and the hilliness of Birmingham. When you look around you from where you’re standing, it looks flat. But there are valleys everywhere. There is a nice, light Danish city bike that I want, but can’t presently afford, nor do I have parking space for it. I’ve been daydreaming of putting a bike rack in the driveway. I’ve got myself convinced that it’s a great idea.

Now, however, it’s a great idea to stop typing and go do something else.

Algorithmic dance music generation

Nick Collins

His laptop is signed by Stockhausen.

He wrote a techno generator 10 years ago, which was silly. So he’s trying it again, but with synthpop. The new project is called Infno.

When you press play, you want something that’s different every time in a significant way. (This sounds like old school video game music.)

Whoah, it really is different everytime! Still video-gamey, though. This has garnered applause from the audience.

The lines all know about each other and share data. The order of generation matters.

This is really cool.

Also, he has the idea of generative karaoke! Ooh, now there is audience participation. More applause.

This is the coolest thing ever.

There is a computer-written pop song from 1956. Kako will be singing the lyrics from that song. The melody here is not known in advance.

This sounds like jpop. Also like drunken karaoke. Wow, a lovely disaster. I am in love with everything about this. The singer is muddling through. Wow, now she’s getting it, sorta.

Applause and cheering.

Now he’s playing techno.

More applause.

Algorithmic lyric generation is next!

A paper will be forthcoming.

Loris: a supercollider implementation

Scott Wilson

Loris is an additive sound modelling method.

A sines plus noise approach. Noise is assigned to partials, modulating partials with a filtered noise source. This is a lossy process but is perceptually accurate.

Loris is a class library which can do some interesting things with partials. The python api is very good.

Data is exportable in several formats. Spear, a piece of free software, is nice for editing some of these file types. Also the command line tools are good.

Loris was not developed for real time use. It’s not fast to compute this kind of analysis. Sometimes, you must change params to get a good analysis, which can be a problem for real time. Also, in real time might not want to listen to every partial, but that’s also computationally expensive.

Analysis yields a partial list with envelopes for freq, amp, bandwidth, phase, etc.

Scott sticks analysis results in an sc object. There are 4 classes. Some ugens, data-holding classes, an oscillator.

The oscillator does all the partials. Can do some spectral difusion.

Can stretch stuff, mess with bandwidth, do funny things with different partials to move them around. This may work with prevois topic.

New release forthcoming. This is cool.

Dissonance curves

Jaaun Sebastian Lach

Roughness or beating is equal to hz difference betwwen two sounds. Has to do with physical properties of the ear and the critical bandwidth- which is the width of hearing of discrete sounds. You can only hear one sine wave per critical bandwidth. The bark scale climbs the critical band.

Disonance is perceived from bark scale and also cultural factors. Bark scale also applies to partials and overtones. Helmholtz held that acceptable amounts of roughness are cultural.

This speaker has a Disonance class, which looks to be very interesting. Also has method barkToHerz

Tenney thought that consonance and dissonance meant diferent things in different contexts. The terms have a functiona; usage depending on how music is composed: hisorical systems.

Barlow has some fancy-sounding theories. He imagines a consonance-disonance axis.

The Dissonance class can be used to derive scales. I must have this class!!

Sethares holds that tunings are related to timbres of instruments. Scales are derived according to roughness of partials present in the instruments used.

Computer composers can use a tmbral grammar. The presenter has some real-time analysis. He’s been doing this stuff while i’ve been navel gazing about it. Awesome.

Sc symposium

Jason Dixon – controlling group laptop improvisation

Problems often stem from performers not listening to each other. Huge cacophony of noise, competitive, lost players. Then things drag on much too long. There is a sameness. People don’t look at each other and miss cues. Also, lack of visual element. Entire frequenc spectrum used by every player makes it impossible to pick out lnes or anything.

Sonic example 1: improv gone wrong (have any of us here not heard this at least once?) And the example does indeed sound like a whole lotta noise.

Keys to success: force people to play qiuetly. Small amps, speakers located very close to the performers.

Alain Renaud developed a good system: www.alainrenaud.net The Frequencyliator

Frequency spectrum divided among players, like instruments. Filters used to enforce this!

Presenter has an idea for a genetic algorithm to instruct players.

Live!! From the supercollider symposium

16:30

Cadavre ezquisite!

Need to grab my mac!

Site gets slow when everbody in the room tries to download from it.

Public class send actual code across the network. Yikes. There’s a message called ‘avoid the worst’ which keeps folks from executing unix commands. Sorta.

It’s polite in gamelan to not play on each other’s beats, so speed changes are lagged. This clock system sort of models that.

There is a collective class that discovers folks and keeps track of their ip addresed. Broadcasting makes this possible, i think.

Sc con live blogging

16:00

Thom & Voldemars present about sonic quantums.

How do you deal with many, many control parameters?  Understanding, controlling, but not being able to touch them individually.

1 method is parameter reduction. However, they seek to be as direct as possible.

They have a matrix at the center of their system. Which deals with all their data. A multidemensonal data structre.

They have a visual representation. (How do they pick parameters  and adjust them?)

The matrix projection has 3d clouds that look sorta chaos based. These clouds can rotate, move along, expand and contract. Also can warp from a plane to a surface. 

They use things like speed of movement as control values for things like amplitude. The matrix may relate to spatialization? They are not using statistical controls for their grains. Makes parameters and relationshps clear. This gui is built in gtk, not supercollider.

They will use this as an installation. Now working on trajectory mapping, maybe with envelopes. The visualization is done in jitter.

They worked on a controller at steim, but then moved to mathematical controls.

Oops, it IS statistical. Oh, and they do use randomness and parameter reduction. I’m confused, except that there are white dots forming 3d states swooping around on the screen. Woosh! Swoop!

They are not sharing their code as of yet. Too shy.