Dev Log 20141121

The next update to TC-Data is done, and that means turning my attention back to TC-11. It looks like I’ll be pushing out a quick update just for 1.8.x Audiobus support for iOS 8. As a palate cleanser (post-testing monotony), I’m playing with camera brightness. Here are some thoughts about bringing a new sensor into an app.

The fun is definitely front-loaded. Research the video framework, load up a camera in a test app, and get some images to appear on screen. What part of the video are we going to use as a controller? I think there are two good candidates: brightness and motion.

I’m familiar with brightness calculating from Processing (all the way back to Scanner I). The challenge with iOS is, frankly, finding the least gunky way to get the data needed. So I Google some examples of brightness following and found one that works.

I start with low quality video to save on processing power, since we’re not going to see images from the camera. But that’s a bust because the frame rate is slow, and I do care about that.

Brightness following is go!

A quick look at Instruments shows I’m chugging as I create and destroy image data just to get the brightness. So all that code gets chucked. As it turns out (as some photographers may have known all along) that there is a BrightnessValue entry in the camera’s EXIF dictionary. Free data! I’ll take it when I can.

Like I mentioned, the fun is all at the beginning. Dropping this into the TC apps will take a lot of testing. Brightness values depend on the camera settings, and this should be able to react consistently in both high and low-light conditions. The stream has to start / stop at the correct times in the app lifecycle, the controller drawing needs to stick to the side of the screen that has the camera, etc.. But it’ll be there soon.

Dev Log 20141023

When TC-11 was first released, it didn’t have the floating touch preview view in the Patch area. That was the result of a common pitfall: what is obvious to you is not necessarily obvious to your users. I knew how adjusting parameters affected the patch, so there was little trial and error beyond flipping back and forth to the Performance view.

When users made the (in hindsight, obvious) request for a way to preview patches as they programmed them, the floating preview view was born. To implement it meant squeezing all of the functionality of the Performance view into the small subview, but there was one nagging issue: drawing.

The visuals drawn on the Performance view were updated in the same methods as the touch controller generation, i.e., the drawing code and touch code were intertwined. The correct thing to do was to decouple the two on the Performance screen. The easy thing to do was to duplicate the touch control code for the preview view and be done with it. Path of least resistance, ahoy!

Now a few years later I finally corrected my mistake. The touch control code and OpenGL code have been separated, and the main view and preview view are driven by the same code. This brings some nice portability: the touch control view can be dropped into any project and quickly connected. Even more interesting is that there could be two or more copies of the touch control view on the same screen. Split view mode?

ICMC-SMC in Athens

I was really excited to present my research on TC-Data at the ICMC-SMC conference in Athens, Greece. The conference was packed with music – five concerts a day. There was a really nice acousmatic setup in the main concert hall at the Onassis Cultural Center.

The keynote speakers were Jean-Claude Risset, John Chowning, Gerard Assayag, Peter Nelson, and Curtis Roads. It was amazing to hear them all over the course of the week. Chowning’s talk was particularly engaging: tracing his origins into computer music and the beginnings of all that we work with today.

TC-Data released!

TC-Data is the latest iteration of my touch control research. The goal was to unlock the touch screen controllers for generalized use.

Although based on TC-11, the interface and backend of TC-Data was completely rewritten to be as lightweight as possible. This meant redesigning the engine that ran the controller generation so that the iPad could be free to use its processor for the apps that need it – the synths that TC-Data can target.

I exhibited TC-Data at the ICMC-SMC conference in Athens, and was really happy to meet people that were excited about the project. So far it’s been a great launch!

Recording Minor Vices: Misdemeanors

On July 13th Minor Vices got together to record Misdemeanors, a structured improvisation by Chris Burns. The 26 short movements of the piece set rules for the ensemble to follow while they play. In addition to being great music, excellent performances, and absolute fun, we got to break in new recording equipment and fully use a space we’ve occupied for years.

Minor Vices is: Chris Burns, David Collins, Adam Murphy, Trevor Saint, Kevin Schlei, Amanda Schoofs, and Seth Warren-Crow. Steve Schlei was the recording engineer.

WWDC Pics and Update

WWDC has been incredible so far. Even waiting in line (not uncommon) means meeting tons of enthusiastic and friendly developers. The sessions have been fantastic. The upcoming API improvements are going to make things much easier, and there are some incredible new technologies I’ll be dropping into my apps.

I’ve met with Apple engineers in Core Audio, Cocoa Touch, and UI Designers to chat about my apps and approaches to improving interface development. It’s been great to ask the API designers how my interface approach can be better organized. I’ve learned a lot and there is still more to go!

Heading to WWDC

Next week I’ll be heading out to the Apple Worldwide Developers Conference in San Francisco. It looks to be an incredible opportunity to meet other developers, Apple engineers, and check out whatever new is announced. If you’d like to keep track of things, chances are I’ll be tweeting away (@BitShapeSoft).

wwdc-2013

Tabla Demo

On Tuesday I visited Adam Murphy’s composition studies class at Ronald Reagan College Preparatory High School to demonstrate the basics of tabla performance. Adam lectured on Indian classical music structure and I talked a bit on rhythmic theory. The students were all attentive and sharp, and had some great questions. Hopefully I’ll see them at the next Indian classical music concert here in town.

kevin-schlei-tabla-0 kevin-schlei-tabla-1

Trevor Saint + Alligator Char

minor-vices

Monday night (November 12), Trevor Saint will be performing at the UWM Recital Hall at 7:30 pm. The first half of the program is a set of works for solo glockenspiel, mostly with electronics — including works by Matthew Burtner, Jeff Herriott, and Eric Sheffield/Anna Weisling, as well as a performance of Chris Burns’ work “Opalescence”. The second half of the program is a reprise of my work “Alligator Char”, with David Collins, Adam Murphy, Kevin Schlei, Amanda Schoofs, and Seth Warren-Crow joining Trevor in a structured ensemble improvisation. Trevor is an incredibly dynamic performer, and this will be a terrific event.

Monday, November 12
7:30 pm
PSOA Music Building Recital Hall

3223 N. Downer Ave.

TORCH – LIVE November 7th

TORCH is set to play a concert of original and classic works on November 7th at the Peck School of the Arts Recital Hall, 7:30 pm. The concert is free and open to the public, and should be an exciting debut of the ensemble.

I’m really happy with the way the group has come along since our first rehearsals, and also with the energy that they bring each week when we get together. I hope you can join us for a great concert!

TORCH is the TC-11 Orchestra. The ensemble includes: Chris Burns, Mary Francis, Bill Heinrichs, Brian Lynch, Michelle McKenzie, Adam Murphy, Elliot Patros, Grant Richter, Kevin Schlei, Steve Schlei, Jim Schoenecker.

torch-poster
TORCH – Nov. 7th, 7:30, PSOA Recital Hall