RTcmix esoterica II/Android setup
We did three things (count 'em, 3!) in this class: 1. developed an
app showing the 'makeconnection("inlet", ...)' ability to modify parameters of
executing notes; 2. showed how to set up ofRTcmix for real-time
audio input and signal-processing; 3. a quick tour through how to set
up Eclipse for ofRTcmix android development. Along the way we hit
again some concepts like the 'bus_config()' capability to interconnect
RTcmix instruments and the (not really shown before) 'PFSCHED()'
method for creating dynamic PField envelopes and terminating
executing notes (useful for operations with indeterminate length).
Links
- scoralyzer.zip
-- once again, a zip archive of the executable "scoralyzer" program for OSX
- scoralyzer.c
-- and the C source-code for "scoralyzer"
- ofRTcmix-android setup directions
-- follow these (and use the links on that page) and you should be set
to create and build Anroid RTcmix apps. Note that the ofApp.m/ofApp.h
files are replaced by testApp.cpp/testApp.h. The method code we write,
however, is identical. I'll fix this in the future. Hey, this is
an experimental class!
- OpenFrameworks Android setup page
-- don't pay any attention to most of this page, it is completely out-of-date
and generally wrong (this is why I created my own setup directions in
the above link). I include it here because if you scroll down
to where it says "Creating new applications" there are instructions for
taking an existing app codebase (like the "basicRTcmix" app) and
renaming it to your own app. It's a bit more involved than what
we do in Xcode for an iOS app, but it's not too bad. And the directions
are correct for this.
Class Notes and Project Downloads
There are three parts to this section. The first is the Max/MSP patches
we developed to do the audio
for the 'touchglide' (meowing cats!) app. The second is
the series of ofApp files we developed into the final 'touchglide' app.
The third is a basic audio-input ofRTcmix app showing how to handle
real-time audio.
'touchglide' Max/MSP patches
week8-classpatches.zip
-- archive of the class patches:
- touchglide1.maxpat: basic control of a WAVETABLE using a 'makeconnection("inlet", ...)'
scorefile command, with data from a crude MaxMSP mock-up of an iOS
interface
- touchglide2.maxpat: control of both the WAVETABLE frequency and
MOOGVCF filter cutoff frequency from the crude iOS mockup; correction for
the positive y-axis graphics flip.
- touchglide3.maxpat: add dynamic pfield (PFSCHED) capability and
show how to terminate running notes.
- touchglide4.maxpat: add all the voices. Meow!
'touchglide' ofApp.m/ofApp.h code
- ofApp1.mm/ofApp1.h
-- draw a single red circle in response to touchDown, touchMoved,
touchUp
- ofApp2a.mm/ofApp2a.h
-- draw two red circles, showing multitouch capability
- ofApp2b.mm/ofApp2b.h
-- single red circle, but controlling the script from the 'touchglide2'
Max/MSP patch [note the addition of 'pfield_set()' for the
'makeconnection("inlet"...)' capability]
- ofApp3.mm/ofApp3.h
-- add dynamic pfield scheduling [PFSCHED()]
- ofApp4.mm/ofApp4.h
-- add multitouch audio capability (slight bug in this code, the
audio busses all get combined for all notes)
- ofApp5.mm/ofApp5.h
-- fix the slight audio bug, show how unique audio busses are used
for each WAVETABLE/MOOGVCF pair
- ofApp6.mm/ofApp6.h
-- add all the notes. fun fun fun!
'basicecho' ofRTcmix app
- basicecho.zip
-- the Xcode project (with code, of course) showing a very basic
ofRTcmix app that echoes audio from an iDevice default input source.
Assignment
+ project proposal ideas are due next week in class
+ remember that next week is spring break! Also, check out
the web page for
Andrea Agostini
and his
bach
and
cage
projects. Andrea will be our guest speaker next week.
Here is a fixed version of the "klausfun2" app (the "Assignment" from
last week was to find and fix the boundary bug):