the thief (pitch -> midi app)

July 3rd, 2010

one of my clients is a sax player who also plays synths for his band. he wanted me to find some way for him to control his synths (hardware or software) with his saxophone. we discussed the ewi controller, and decided that this was unsatisfactory as a solution, due to his use of falsetto and multiphonics. he also felt that the ewi controller wouldn’t be as comfortable as using his own familiar sax and reed. as a result, i wrote him a simple software solution that would read in pitch and amplitude values from the soundcard, and output midi values. the resulting software is super light-weight and ready to be deployed on a number of hardware configurations. it’s also completely modular and networkable. the working title for this guy is ‘the thief’.

requirements:
currently, this software only runs in osx. >_< . i may eventually port it to linux, but if you’re running windoze, good luck to you. you will also need a soundcard (most computers these days have *some* kind of audio interface), and if you want to get fancy you should have a microphone.

dependencies:
this patch is not a single piece of compiled software that runs like a self-contained black box. rather, it is a system comprised of several programs networked together to provide a single service. so, in order to run this patch you will need the following (don’t worry, they’re all free):

occam, a lightweight midi client that speaks osc

supercollider, my development environment of choice for realtime audio

something to control with midi. this could be a hardware synth (if you have the appropriate cables), or ableton, logic, ardour, reason, whatever. choose your poison.

once you have these things installed and ready on your box, we can talk about the implementation. my source code is below. to run this code, paste it into a new window in supercollider, select the entire document, and press . note that is not . you should see the little server window on the bottom left boot up, some crap print to the post window, a hideous grey gui pop up, and occam open up. on the top part of my hideous grey gui there are two black buttons. one has a green [>], and one has a red []. pressing the green [>] will turn it on, while pressing the red [] will turn it off. hopefully that convention is obvious. there is also a single long slider with a number box next to it. you may type into the number box or you may move the slider with your mouse. this controls the rate at which new midi notes are sent to occam.

this patch simply analyzes audio for pitch and amplitude at a regular interval, and sends this data out as osc to occam, which converts it into midi. i chose this model instead of something more complex (that could, say, encode arbitrary audio into discreet midi notes) because i was hired to come up with a specific solution to my client’s problem, not a general solution to all midi-related problems. if you are so inclined, please take my code and do whatever you want with it, so that it will suit your needs. all that i ask is that you inform me and credit me.

and with that, here’s the code.

* * *

a few lessons stick out to me from this first development cycle.

1) i am reminded not to think like an engineer.
no offense to engineers– you guys are very important! i’m just not one of you. my methods are generally faster, more improvisational, and way less general. i spent considerable time banging my head against a wall trying to make my solution work in all cases. this was wrong.

2) working with clients can be rewarding in ways that doing your own work isn’t.
i now remember the midi spec.  i never use midi and honestly it makes me seasick.  as the result of this project, however, i’ve learned a lot about implementing solutions that use it. a major lesson regarding midi is that supercollider’s midi output implementation is a total joke. another one is that osculator, a fairly highly regarded osc-midi client, is also a total joke. occam is the lightest, fastest, simplest midi client i’ve found. another major lesson? i learned how to use the scary ‘environment’ window in logic. it totally looks like max! which makes me want to vomit. regardless, these lessons will definitely prove useful to my freelancing and for my own projects.

3) sometimes walking a noob through your algorithm is the best way to debug it.
one night, when i was particularly frustrated with trying to do the impossible with my app, i vented by trying to explain how horrible my life was to my roommate, who despite some familiarity with supercollider is definitely not a programmer. this turned out to be the most useful few hours i spent on the project, not because we happened upon a new algorithm, but because it gave me the confidence i needed to let go of the grand vision in favor of something more realistic. also debugging was thereafter a snap because i knew the algorithm like the back of my eyelids.

keep in mind this is the first iteration on this thing. i’ll be working on some other features, such as microtonal tracking, and the now-infamous “arrogance” knob. when i’ve brought this project up in conversation, there have been a few musician / producer types who really perked up. i want you cats to try this out, and complain to me about it! the more you complain, the more likely i will be to listen to you. also if you are a musician / producer / developer type, and you want to steal my code, please do that! but let me know so i can steal your code too. ^_^ happy tweaking!

ps – i made a short track with this patch, just for laughs. it doesn’t really demonstrate the patch very well at all. something more demonstrative will come after i have a meeting with my client and we record some user testing. it’s the track from this post, using a fender mexican strat through a homemade fuzz pedal.

kids and contact mics performance at the tank!

July 3rd, 2010

on june 7th, at 8pm, the icmc kids’ noise workshops came to a close with a performance of some very heady electro-acoustic music, which spanned nearly 45 minutes. since our group was pretty small this time, the instrumentalists – emil, 6, and race, 5.5 – decided to let the instructors – ted and me – perform along with them. we performed on new instruments homemade from junk, effects pedals, and contact mics. i also did a little live effects processing in supercollider to round out the mix. having such an intimate group also changed the performance dynamics quite a bit. we all sat around a table full of electronic equipment, quietly talking and listening as we improvised together. as amazing as ted was at conducting our last performance, our style this time around circumvented the need for a conductor entirely. we were able to coordinate together from the bottom up.

although we don’t have a complete recording of our performance, we *do* have some shorter videos from various parties. here’s a clip from my friends at eardrum nyc:

here’s some more video from race’s parents:

phil stearns took some excellent pictures of the entire conference (as he is wont to do ^_^ ) and has put them into his flickr stream. pix of us are at the beginning and end of the stream and they’re super cute!

i am so very grateful to the tank for hosting our workshops, to ted for helping me run them, to the adventurous parents for taking a chance on our zany idea, and of course our participants for being totally rad!

ps for documentation of our previous workshops, check out these posts.

kids & contact mics (ICMC Kids’ Noise Workshops)

May 4th, 2010

i am pleased to announce the launch of a workshop series for kids interested in electronic music!

more information (and tix!) available here.

in case you’re too lazy to click the link, i’ll repost the course description and syllabus here:

NOTE: THIS IS A 3-DAY Workshop! Make Sure you’re able to attend All 3 Days: May 30th, June 6th and June 7th

May 30th 12p-3p
June 6th 12p-3p
June 7th 6p-9p

Concert @ The Tank on June 7th starting 8pm

Instructor: Joe Mariglio
Title: Kids and Contact Mics

Topics/Keywords: Electroacoustic for Kids, Noise, DIY, Signal Processing, Amplification, Sculptures

Description:
Students will participate in a series of interactive workshops that will elaborate on each other until their completion. The first stage establishes a foundation in a few of the technical and creative aspects of sound-making, while the second stage focuses on compositional strategies and collaborative performance. The empowering process of discovery underlies every section of the program, as the young participants establish an active role with the everyday technology that pervades their lives. Rudimentary physics and mathematics will be applied to the cooperative craft of composition and improvisation. All workshops will be replete with examples and live demonstrations to provide a launch pad for the students to explore their everyday environment with new tools of discovery, driven by their imagination.

Day 1: Amplification and Feedback

The first workshop will deal with the topics of piezo-electricity and amplification as a tool for creativity. Students will learn about basic physical properties, such as tension and mass, in the context of hunting for interesting noises produced with everyday objects, using contact microphones to amplify them and speakers to activate them. Special attention will be paid to discussing what each noise ‘sounds like,’ in an attempt to loosely categorize them. At the end of the session, students will choose their favorite sound and demonstrate it to the class. Students will be encouraged to find and bring in potentially interesting sound sources they’d like to amplify or activate.

Day 2: Listening, Processing, and Playing

The second workshop will begin with demonstrations of analog signal processing techniques. If the students are advanced enough and there is interest, it would be possible to introduce digital signal processing as well. Each student will create an instrument or palette they are especially interested in. The focus will be on allowing each student to find his or her unique voice. After a few listening exercises and discussions, the students will create a ‘dictionary’ for their emergent sound language. There will be a brief consensus about how to represent these sound types with drawings. We will then rehearse structured improvisations, conducted by one or several teachers.

Day 3: Final Concert!

Students will perform a collective structured improvisation using their hand-made instruments, loosely guided by the instructors. Depending on the group, this performance should last around fifteen minutes.

age range is flexible, generally between 6-16 years old.

Hooray!! You will probably notice some familiar faces if you witnessed our previous workshops, or the final performance. This was a life-changingly awesome experience for all involved last time, and we’re utterly psyched to do it again! I am honored and very thankful that ICMC will have us this year. If you know someone who might be interested in this, please spread the word! <3<3<3 XD

the_interval_sessions

May 3rd, 2010

interval ylem:

chonyid bardo:

IMG_0489

i played these two sets livecoding in supercollider on my eeepc running pure:dyne, played through two homemade amp / speaker circuits left over from the project steve and i just worked on.

the material is inspired by some meditation and late-night internet research into vajrapani cosmology, specifically surrounding the bardo thodol. i actually have a copy of the translation (not the robert thurman) somewhere around here. the titles reflect this. “ylem” is a term first used by cosmologists george gamow and ralph alpher to describe the primordial substance. in tibetan cosmology and linguistics this relates to the chikhai bardo (first interval), or the clear lights; an experience of complete merging with blissful liberation. after this, the bardo thodol describes lesser lights, or the chonyid bardo (second interval), a highway through various inner realms, riddled with possible exits into liberation or eventual rebirth.

i have clearly been listening to a lot of eliane radigue’s beautiful electronic compositions– and a healthy amount of gabber. most of the sounds are produced by fm and waveshaping. the material is largely simple and repetitive, not just because it’s the result of livecoding, but also as a choice. i generally go for a more granular approach to sound, so the sound of smooth oscillators is kind of a treat for me. the warm tone of the amps is really what pushed me in that direction. to record this, i used a pair of binaurals clipped to the little 8ohm speakers you see in the picture above. in these sets i’m particularly fond of waveshaping by phase-indexing a sinewave or set of sinewaves with very low frequencies (1-24 hz). this technique adds a throbbing nonlinear distortion that can be both timbral and rhythmic.

crudspades ginormous thing at bent 2010!

May 2nd, 2010

Left_SideCenterRight_Side

the crudspades ginormous thing went up at bent last week! i had to restrain myself from putting documentation online too early, because i didn’t want to spoil any surprises. steve litt and i had a great time working on this project, and i look forward to working with him in the future… we have been talking about recording an album of crudbox music. i’ll post updates here, of course.

here is a link to the concept art and proposal. the installation consisted of a small ensemble of self-amplified trash sculptures, with steve’s crudbox as the conductor. we ended up making 6 pieces and finding 2 prefab appliances. they were:

  • a large metal slinky with several metal beaters hanging inside it, shaken with a solenoid
  • a metal grate, previously used as a gong with mike clemow for our performance at the silent barn a few weeks ago (as the todd walker tabernacle choir), hit with a solenoid
  • two amplified cans hit with solenoids
  • a piezo-speaker feedback synth, activated with a relay
  • an electro acoustic sculpture we came to call “richard.” richard was made from a flat ribbon speaker i pulled out of the trash over a year and half ago. on either side hangs a small electret microphone. the mics are ring-moded together, using the jar, and the amplified signal is fed back into the speaker. crudbox sequenced richard by turning a small, hidden led on and off, which was paired with a photoresistor to pulse the feedback on and off. when used in this way, richard mainly provided a low end “wump!” sound. however, running in stand-alone mode, independently from crudbox, richard could generate a huge array of tones, and was immediately playable. furthermore, the no-frills interface provided an opportunity for meaningful collaboration with others. i am curious to build out the other flat speaker i found and make a second richard. i feel like i could play an entire set on this instrument alone. if i made a second one, it could be interesting to have three people interacting with the system onstage. i will post video of richard running solo in a later post.
  • an old vhf analog tv, activated by a relay. steve and i were amazed at the beautiful shapes and patterns one could get simply by turning the television on and off. we even got it to change stations sometimes! steve is now obsessed with tvs.
  • an old turntable, activated by a relay. steve had tried this approach before during the mmix festival last fall. we used an lp of 500 lock grooves.

Some video, taken in my kitchen just before we installed in dumbo, may be seen here.

the return of ®

March 28th, 2010

r_tri

® is a duo project between guitarist devin drew connelly and me, which has been going on in the background for the past several years, although you probably haven’t noticed yet. we are interested in accessing the trans-personal space through free improvisation and other occult practices. we often incorporate sigils, mantras, and cards into our performances. we borrow from many traditions, depending on the outcome we’re going for.

following a brief hiatus, ® has reemerged with the following artifact. it has only been marginally edited, and is completely uncut from start to finish.

personnel:
devin drew connelly- guitar
joe mariglio- livecoding
kapow- parakeet

hello midi

February 21st, 2010

i haven’t used midi to do anything other than play an outboard hardware synth with a keyboard since 2006.

that being said, it certainly has its advantages as a protocol. actually, it only has one that i can think of: that everyone uses it. so far a few clients have asked me to make them things that use midi, so they can interface with other music software. the above track is a proof of concept working toward that project; yet another example of how projects i do for other people push me out of my comfort zone.

the code in supercollider is embarrassingly simple. like i said, it’s a proof of concept. all it does is randomly plays midi notes. the timing is scaled so that lower notes last longer. that’s it.

slightly more complex was the process of setting up an IAC bus in OSX, and getting logic to listen to that bus.

in “audio midi setup,” select the “midi devices,” pane. from there, you should see your “IAC driver”. double click it and turn it on by checking the “device is online” box. you can add ports in the menu on the bottom left. each port has 16 channels. i have never been able to get the bottom right number boxes to say anything other than “1″ and it doesn’t seem like this matters much at all. that’s it for setting up the IAC; supercollider and whatever other audio software you might want to use will now recognize these ports and treat them as physical midi connections.

in “logic,” go to the “environment” window. from the top left of that window, you should select “all objects,” and under the “view” menu, de-select “by text”. then make a new “physical input” object and connect the little triangle next to your IAC port to the “sequencer input” box.

(an aside, do you see why i hate graphical interfaces?? this could have all been done with a few lines of code and there would be way fewer opportunities for error. i spent most of my night tooling around ambiguously titled menus and windows… rawr)

anyhoo, i used a bass sound from garage band– the only instrument from garage band i have on my computer. also, the only software synth on my computer. while i was in logic, i decided to practice my spectral compression chops, and give the sound some depth. there is also a touch of reverb.

so there! you don’t need max for live, you can just do this and use a free program like pd or supercollider to check your email with your daw. because that’s so useful.

glib, numb, smile

February 18th, 2010

this may or may not be finished. i submit it to you anyway, reader, because feedback would potentially be cool.

it began as a patch to keep my bird company while i was out at work. it uses brownian motion (random walk behavior) for several of the controls. it’s a stream of sawtooth grains, each one no more than a few cycles long. each grain’s frequency is an exponential curve, so each grain is a little glissando. i also passed the signal through a vintage spring reverb i pulled out of a weird old mixer. i left this patch running for about 3 days to keep kapow company. a lot of the textures remind me of analog stuff, a good thing in my book. also, he seems to enjoy it. mission accomplished. (the first one, anyway, read on…)

you can grab the code here.

so that explains the patch, but the recording you’re listening to is a different thing altogether. i had two main goals with this, although i didn’t originally set out with them in mind. the first one was to use only the algorithm as a base material, with no realtime gestural control at all –that will come later, be patient– but to make it sound gestural with subtle mixing techniques. the other goal was to limit my palette to only those two textures (dry vs wet), while keeping the listeners’ attention through, again, subtle mixing techniques. no “plug-ins” were used except eq and dynamics processing. i’m realizing now that these two goals are actually related. so what started as an exercise in algorithmic music turned into an exercise in mixing.

next steps are to turn this patch into an instrument, complete with realtime implementations of the mastering-like stuff (eg, eq + dyn processing), and some kind of an interface. there are a lot of different possible controls for this beast, but i’d love to have it be an intuitive, gestural sort of thing. my two options as i see them are buying a playstation style usb controller, with two joysticks, which is higher on ye olde $$$ / time metric, or to build one from all these linear faders i have lying around and an arduino, which is lower on the $$$ / time metric. i have to decide which is more of a priority. currently i have neither, so it’s moot.

video of kids’ noise workshops!

February 17th, 2010

as promised, here’s some more documentation of this workshop’s final concert. it happened as part of the unsound festival’s “silence and noise” concert, featuring mountains, tape, radian, and tim hecker. there will probably be more video coming soon from various parties. enjoy!! ^_^

Kids Noise Concert at Le Poisson Rouge from Tedb0t on Vimeo.

kids’ music workshops at unsound festival!

February 14th, 2010

(related post)

right off, i want to apologize for the terrible quality of the video footage. it was taken from my phone during one of the practice sessions we had at harvestworks. more footage is coming, and as soon as it does, it will be posted to this blog and distributed to all involved.

from last sunday, february 7th, to tuesday, february 9th, a small but amazing group of kids, aged 6-12, built electro-mechanical instruments and talked about sound / music in ways even some educated adults might have problems comprehending. we didn’t talk about scales, notes, or staves. we explored the sounds you hear every day, like dishwashers, telephones, and traffic. we discussed the multiplicity of sounds– how each and every sound is different and how some are similar to others. we thought about where sounds come from and why they sound the way they do. most of all, we listened and played.

the students were really awesome! as one of the teachers (who were also totally sweet), i found myself spending much less time beating around the bush, and more time diving into, say, a discussion of the physics behind string tension, or a minute-long silent listening exercise. keep in mind our youngest was 6!

there was also absolutely no time spent discussing whether the sounds we encountered were “music” or “noise.” we just spent our time enjoying them. i can’t tell you how many art / music classes i’ve run into where the professor thinks it’s a good idea to have this conversation right off the bat. in my experience, this invariably breeds a contrarian, pedantic atmosphere and generally just wastes time. it’s always better to lead by example and field those kinds of questions, without hostility, as they come up. for many classes i’ve seen, this topic isn’t needed at all.

i was also impressed by how well the students listened to each other. i was expecting our rehearsals –and possibly the concert itself– to devolve into a number of simultaneous solos instead of one ensemble. (this happens regularly with adults, even ones who love to preach about improvisation and listening.) on their own, some of the students started tuning their instruments and techniques to fit their neighbors’. we teachers had wanted to suggest this at the outset, but as it turned out this guidance wasn’t needed. many times, we were only a few steps ahead of our students, due to the unexpected level of our students’ engagement. there was a lot of ad-hoc thinking involved. we had to learn fast.

this was one of my first experiences teaching this age group. most of the teaching jobs i had done until this point were one-on-one tutorials, usually with people near my own age. while i also find that form of teaching to be exciting and rewarding, i have never experienced something so invigorating as working with children. even the simplest discoveries can be inspiring. all of this activity came at a time when i was really starting to question the despite the fact that these workshops would immediately follow an 8+ hour work day, and i was getting fewer than 4 hours of sleep per night on the average, i felt renewed after each session. i would come in tired and angry and leave excited and inspired!

the workshops culminated in a performance on february 10th, where the kids opened a night of beautiful, challenging music by mountains, tape, radian and tim hecker. t3db0t conducted us brilliantly through a simple system of hand gestures (mostly pointing), and i knelt on the stage, helping the students manage their levels with our mixer.

when we had presented improvisation to the class, we borrowed an idea from Anthony Braxton he called the “language improvisation,” where sounds are categorized into general types like “long, sustained tones,” “pulses” or “tremolos.” the result was a marvelous, futuristic din, complete with two ovations from an enthusiastic crowd.

after we finished, before we struck the stage, our ensemble’s wonky-slinky-can player turned to me and said “i want to play more!” i told her i hoped she played much, much more, and that she would let me know when she did.

i am so very thankful to the belgrade kids’ patch worshops for providing the template, to kate for bringing these workshops to new york, and to lori for having me contribute! hopefully there will be many more! in the meantime, stay tuned for more documentation as it comes…

IMG_0453

lori and steve diligently preparing.

IMG_0452

building light theremins!

IMG_0458

…lots of them!!!!!!!!!!1

anamaria_violet_bey

our marble-pan-stick player, flangey-record-scrubber player, and wonky-spring-can player.

IMG_0463

on right: our one-stringed-can-guitar player, nommin’ out.

IMG_0470

our cranky-screw-can player… also t3db0t snappin more mugs. (& kate in bkgrnd!!)