week 69.5: elvis by elvis

Ryan Groves and I presented a piece of music at ISMIR this year:  he sang two Elvis Costello tunes, and I synthesized the backing music from beats of Elvis Presley songs.  It was…interesting.  Ryan nailed the performance of the first song, we got a good reception, and it was a far cry from the usual po-faced academic/computer music things that get played at conferences…and then we made the cardinal sin of overstaying our welcome on the second song.  But the first song!  Ah, good times.

So how did we do it?  By combining our respective small pieces of music tech magic.  I maintain the Echo Nest Remix API, which gives us access to timing data for each beat in a song, and Ryan builds harmonizers that can pick chords and chord progressions based on vocal input.

Ryan build his side in SuperCollider and C++:  it listens to his voice, quantizes the harmonic content to the nearest note, and then picks a chord to go with it – based on both the input and the previous chord (Hidden Markov models are involved, if that sort of thing is your jam – his paper is here.).  This chord is sent to my machine as a string, over OSC.

On my  side, I went through the McGill Billboard dataset, and found audio for six Elvis songs that also had timing data for each of their chords.  I then wrote a script using Remix to segment out each beat of each song into a folder – so I ended up with g_major, g_minor, and so on.  Then, for playback, I made a controller in Python that would read OSC from Ryan, validate the chord, and then send another OSC message to ChucK, which would play back the audio.  It sounds a bit like this.

In terms of long-distance collaboration, this worked really well:  we only had one point where our systems had to meet, and that was made simple by OSC – just send or read a chord string, and let the other guy worry about the details.  No word of lie, we got it working on the second try.  (And then almost died when it came time to perform it in the main venue.  If you’re using OSC, always test your work on the network you will be performing on.)

The songs we did were Alison and Pump It Up. I ran levels on both of them, both acting as a live human compressor, and as a kind of attempt to provide rhythm that would match Ryan’s singing, as opposed to the rather…confusing rhythm of the concatenated music.   It sounded like this, and I’m pretty happy with it, really.

The technical side was a resounding success:  we did exactly what we claimed to do, and the network  stood up for the entire performance.  The artistic side could use some work:  it would be nice to follow the signer’s rhythm, take volume and timbre into account, and so on.  I also think that I am over ChucK:  I am tired of having no useful string manipulation and other things that I take for granted in Python.

Hilariously, all of my side could be done really easily in remix.js – so maybe there will be a JavaScript version soon!

week 69: ISMIR

I went to ISMIR, and presented a paper about how DJs select and order tracks, which went pretty well.  Ryan Groves and I also ‘performed’ two Elvis Costello songs, with backing chords from Elvis Presely songs.  We probably should have cut it at one, but the first song (Alison, since you asked) was a big hit.  I’ll have a detailed post about it soon, with audio and hopefully video.

Other ISMIR / Curitiba highlights include:

  • Learning about 72-note-to-the-octave Byzantine chant.  (Maria Pantelli, U Cyprus)
  • Learning about ragtime, Andalusian, Turkish, Carnatic / Hindi, Chilean music from a data perspective.  (Anja Volk, Alastair Porter, Sertan Senturk, Monojit Choudhury, Gabriel Vigliensoni, and many more)
  • Learning about Francois Pachet’s work with “style” and for systems that encourage flow.
  • David Hauger’s Million Musical Tweet Database has potential.
  • I am over trying to machine-learn emotional music.  Just done with it.  The only possible answer is to build a constantly updating neural network for every single person in the world.
  • Some neat stuff on automashups by I-Ting Liu, also by Matthew Davies
  • The band at the reception, Caracoarco, can play.  Likewise the quasi-Celtic band we saw at a random pub.
  • Arne Eigenfeldt’s procedural techno machine is really, really good at drums and bass.  The leads are not there, but it is close
  • Cachaca is delicious and covers far more ground than I thought:  I had apple ones, smoked variations, and so on.
  • Academia is fun, but man, it moves slowly and has too many dudes in it.

 

Much more importantly, I also saw two dear friends get married in Toronto.  All the love to them.

week 68

It was a good week for things.

– My man Nathan Friedman came up to Boston to see a concert of Chaya Czernowin pieces, including the brand new Upstream, which was especially rad.  Well done to the NEC new music group, and to Miss Czernowin.

– Dave Tompkins wrote a gorgeous article about Cybortron’s Enter.

– Trevor Jackson and Ata.

– Katie Paterson sent Beethoven’s Moonlight Sonata literally to the moon.

–‘Black Midi’ – like The Black Page, but for computers.

– Where does your data go on the Internet?  Will the NSA hoover it up?  Now you can find out, with Border Check.

week 67.3333

– Went to Tufts’ Computer Science Hackathon, as an Echo Nester.  Built The Feminest, which tells you about the gender makeup of a band.  The Feminest also doesn’t have data on everyone yet, but try out Rihanna, Tom Waits, Austra, Icona Pop, Chvrches, and My Bloody Valentine to get a sense for how it works.  More data and actual audio coming soon!

– ISMIR is next week:  I am presenting a poster about how DJs pick tracks, and have a ‘performance’ of Elvis Costello songs resynthesized using Elvis Presley songs, featuring Ryan Groves on voice and chord-selection.

–

more things

I survived a bachelor party in Portland:  I somehow bought neither records nor books, which is a minor miracle.  Other neat things have, however, been happening.

– CCRMA is work on source separation, and it’s not bad.

– RBMA continues to do vital work in terms of nightclub history and anthropology.

– I am flabbergasted and filled with glee by The Roaring Twenties, by Emily Thompson and Scott Mahoy

In terms of my own stuff:  many things are close, nothing is done.  More as it breaks!

many things

– I went to New York!  I only bought two records this time:  Kraftwerk and Talking Heads.  Also saw the NY Phil, who are pretty good, and saw Move D lay it down at Glasslands, which is a space that works well for a low-key-but-excellent DJ like D.  I also need to shout out the residents, who did the warmup just perfectly, especially for a late show with doors at 11.

– I also went to see the James Turell show at the Guggenheim, which was worth the wait for the main installation alone.  If you get a chance to experience the man’s work, you should do so.

– And I went to MoMA, mostly for the sound art exhibit, which was decent, but also to bask in Monet.

– Some people rebuilt England in MineCraft.

– Saw this via We Make Money, Not Art, and was impressed.

– Somehow got linked to the work of Luisa Pereria, which is rad rad rad.

– I went to Hacking Arts to present the Echo Nest API, and ended up building an interactive music system for Tetris Attack.

week 64 or so

– I broke ground on code for my Master’s thesis, which is sort of strange thing to say.  Thanks to the wonders of PhoneGap, things are going really, really well:  mostly because I don’t have to learn the strange and terrible world of Objective C.

– The students are back in Boston.  This means that student concerts at NEC and Harvard are coming.  I am excited.

– I’ve made two of the seven pies (7 Pies for 7 Brothers!) that I need to make before I leave town.  The first was sweet potato, the second was banana/pear/chocolate.  The pastry mojo is coming back (Living with a former pastry chef sure helps).

summer music: feminist edition

I discovered, in March, that my music collection has a problem.  It’s this:

No, not the Swedish House Mafia per say – although I have problems with them for many other reasons.  The problem is that they’re dudes.  Just like James Holden, James Blake, James Zabiela, John Digweed, John Peel, John Zorn, John Cage, John Dunstable,  and so on.  I realized, after comparing my libraries of books and music with a friend’s, that I consume media that is 90% made by men.  Problematic.

So, this summer I decided to only buy / find / listen to music made by groups that were at least 50% female.  Unsurprisingly, I listened to some pretty fantastic music.  Full results are below:

Releases (that I purchased):

Aisha Devi – Aura 4 Everyone EP [Danse Noire]
Boy – Little Numbers [Groenland]
Clara Moto – Joy Departed [InFine]
Colleen – The Weighing of the Heart [Second Language]
Ellen Allien – LISM [Bpitch Control]
Fatima – Circle [Eglo]
Glasser – Ring [True Panther]
Hannah Read & Charlie van Kirk – Covers EP []
Ikonika – Aerotropolis [Hyperdub]
jozif feat. Little Bear – The 508 [Crosstown Rebels]
Julia Holter – Tragedy [Domino Recording Co]
Julia Holter – Loud City Song [Domino Recording Co]
Julia Kent – Character [The Leaf Label]
Julianna Barwick – Nepenthe [Dead Oceans]
Kate Wax – Dust Collision [Border Community]
Laura Jones – Sensoramic [Visionquest]
Laurel Halo – Beyond the Green Door [Hyperdub]
Maya Jane Coles – Comfort [I/AM/ME]
Nadia Sirota – Baroque [Bedroom Community]
Purity Ring – Shrines [4AD]
Py – Polyethers [Champion Records]
Rachael Boyd – You Need To Stop Looking (Sun Glitters Remix) []
Saa – Saa EP [Left Blank]
Stellar OM Source – Joy One Mile [RVNG Intl.]

Artists (very much an incomplete list):

Adult (site, wiki)
Aisha Devi (soundcloud)
Ana Lola Roman (site, soundcloud)
Amy Wood (site, youtube)
Andrea Young (site)
Anna Merideth (site, wiki)
Alanna Ho (soundcloud, youtube)
AlunaGeorge (site, wiki)
Ashley Paul (site, soundcloud)
Austra (site, wiki)
Bebe Barron (wiki)
Boy (site, wiki)
Cassy (site, soundcloud)
Cassandra Miller (site, soundcloud)
Chaya Czernowin (site, wiki)
Couer de Pirate (site, wiki)
Colleen (site)
Clara Moto (soundcloud)
Clothilde (discogs, last.fm)
Ellen Allien (site, wiki)
Elizabeth Merrick-Jefferson (discogs, twitter)
Elika (site, soundcloud)
Emika (soundcloud, wiki)
E.M.M.A. (soundcloud)
Everything But The Girl (site, wiki)
Fatima (site, label)
Fatima Al Qadiri (site, soundcloud)
Galina Ustvolskaya (wiki)
Glass Candy (wiki)
Glasser (site, soundcloud)
Grimes (site, wiki)
Hannah Read (site, bandcamp)
Heidi (soundcloud)
Helena Hauff (soundcloud)
Ikonika (soundcloud, wiki)
Jesca Hoop (site, wiki)
Jessy Lanza (twitter)
Julia Easterlin (site, music)
Julia Holter (site, wiki)
Julia Kent (site, wiki)
Julianna Barwick (site, wiki)
Kaki King (site, wiki)
Karen Gwyer (site, soundcloud)
Kate Wax (discogs, youtube)
Kathryn Calder (site, wiki)
Katie Gately (soundcloud)
Kim Shepherd (soundcloud)
Lake Street Dive (site)
Laura Mvula (site, wiki)
Laura Jones (soundcloud)
Laurel Halo (site, wiki)
Lera Aurbach (site, wiki)
Letta Mbulu (wiki)
Linda Caitlin Smith (site, wiki)
Linda Perhacs (site, wiki)
Liza Lim (site, wiki)
Lorde (site, wiki)
Lynne Penhale (youtube)
Margaret Ashburner (myspace)
Marielle Groven (soundcloud)
Marika Hackman (site, soundcloud)
Marina Rosenfeld (site, wiki)
Maya Jane Coles (site, wiki)
Mayan Nidaam (soundcloud)
Miss Kitten (site, wiki)
Misstress Barbara (site, wiki)
Mizz Beats (label, wiki)
My Bloody Valentine (site, wiki)
Naadyn (site, soundcloud)
Nadia Sirota (site)
Nadine Shah (site, soundcloud)
Nancy Elizabeth (site, wiki)
Nicole Byblow (site, soundcloud)
Nina Kraviz (facebook, discogs)
Norah Lorway (site, soundcloud)
Paula Temple (soundcloud)
Please (soundcloud)
Purity Ring (site, wiki)
Py (soundcloud)
Rachael Boyd (soundcloud)
Reenie (site)
Rosin Murphy (wiki)
Ruth Guechtal (site)
Saa (soundcloud)
Sara Page (soundcloud)
Shuanise (soundcloud)
Soft Metals (soundcloud)
Steffi (facebook, discogs)
Stellar OM Source (soundcloud)
The Blow (soundcloud, wiki)
The Knife (site, wiki)
T.H.E.M (facebook, twitter)
Tokimonsta (site, soundcloud)
Tropic of Cancer (soundcloud)
Waxahatchee (bandcamp, wiki)
Warrior Queen (soundcloud, discogs)
Zoe Keating (site, wiki)

what we talk about

….when we talk about beethoven:  I finished a piece about Beethoven!  You should try it out.  Find someone with Opinions about the Seventh Symphony, and have it it.

Beethoven_Mähler_1815

As you type, music plays:  as you discuss the piece, chunks of the piece plays back.  The relationships between theoretical discourse about Beethoven and the actual sonic components of the Seventh Symphony are exposed in a new way.  To paraphrase my friend Hollas Longton, “we move within Beethoven, not through him” – and the graph of possible paths depends on what you talk about and how you discuss it.

Beethoven 7 excerpt 6

So how does this work?  Basically, each word makes a noise.

I struggled with how to best map each word.  I was originally going to have a painstakingly long list of trigger, words, metacontrol words, and so on:  chord names would play the appropriate chord, ‘coda’ would move to the coda, ‘melody’ would play a very melodic passage, and so on.

This was too much work.  Not only was it too much work, it was too arbitrary.  Obviously, a word like ‘harmony’ is important, but what does it do?  I decided to keep the idea of moving between movements and sections, but map each word to the next beat or beats, and keep it that way.  This means that every performance of the piece is unique, that things start out sounding normal-ish, and that the listeners slowly figure out that the word ‘yak’ always triggers a certain sound.

And, In addition to the per-word audio, certain letters also trigger audio as they are typed.  This audio is filtered and run through a delay, resulting in a background haze of Beethoven-ish noise.  The mapping here is simple:  I organized all the segments by the loudest note, and then play back a random ‘A’ segment when the user types an ‘a’, and so on.

beethoven_sym_7_mvmt4_stoko

Technically, the piece uses remix.js to both analyze the file into its component beats, and play back the appropriate chunks.  I did my own analysis to segment  each movement into theme / coda / etc – hopefully that analysis is not totally wrong.  The Web Audio API provides both the filter and the delay, via convolution reverb, because doing convolution in JavScript is totally reasonable.  The Canvas API provides the visual distortion – all I am doing is copying a chunk of the image, and then pasting it in a new place.

I am mostly happy with this one:  it is not the masterpiece of in-jokes and reference that it could have been, but I think it is a stronger piece for working in a more generalized way.

stockholm

I survived Sound & Music Computer 2013!  Quite literally:  I got God’s own stomach bug, spent 18 hours in bed, and then flew / fasted my way back to Boston.  I can’t recommend that part, but other than that, the trip was lovely.

Some things from the conference:

– I met Tom and Seb from x-io properly, and got to see their worldbeating OSC board.

– Saw my UVic people, Shawn Trail and Duncan MacConnell, and their hyperguitar project.  Looking forward to the album…

– Saw Flavio & Tiago, met Andre and Marcelo, and generally had a Brasilian sort of time.  Gotta work on my Portuguese for ISMIR.

– Other cool things included:  sonification of a tree, a bell played by dirt, scape plots of musical influnence, ‘plucking’ on touchscreens, a great talk about isomorphic pitch layout theory, stuff about soundscape storage, image sonification, re-imagining the orchestral experience, and so on.

– The paper I presented was “A quantitative review of mappings in musical iOS applications”, of course.  You can find it, and everything else, in the proceedings.

I also saw the Vasa and went to Pride, and walked around the boring part of town.  And yes, they make damn fine cinnamon buns.