A Mobile Music Environment Using a PD Compiler and Wireless Sensors Robert Jacobs, Mark Feldmeier, Joseph A. Paradiso Responsive Environments Group MIT Media Lab 20 Ames St., Cambridge MA 02139, USA
[email protected],
[email protected],
[email protected] ABSTRACT
! " #
$ % & &'(( Keywords
$% ) $% ) !") ) &'(( 1. INTRODUCTION
*+, - . / 0 1 2
*3(, 0
*34, % 5 6
/
$% $%# Æ 7 0 $%*38,
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. NIME08, Genoa, Italy Copyright 2008 Copyright remains with the author(s).
69 *3, *:, ; $%5 # ? > # *3+, *33 3: @ 3@,
0
A /
*34 B,
1 0 6 0C D ; A*4, E *3B,
/ 0 ; 5 $ $% 2 $% #*', > % F $% G F
383H
A I $% /
# 5
A F
2. COMPILER
$% $% J
$% J "
0 J Æ . / $% 2
J 0 Æ / . 0 7
:¾¼ !! " # $ %&'() !! * # %&'+)
$ $ $%5
2
/ J
$% J 0 $% J $% J# / A A # K < = / / # . / L?%
/ /5 J /
/ J
/ / 1 # J
/
Æ *H, 7 F #
G 2 # 3(BB ;0 $% +88 3+'
0 8(M ; . 3 9 # ½ ¾¼
3. PHYSICAL INSTANTIATION
& 5 &'(( :# :H+ +BB (+3 4:B # ?
'(:33 2N33 %7$ 9 ?
F 9 >
6 ? O7 &'(( *8, ;
, - . -/(( %) * .
%)
+ . 0 -/((
6 &'(( F
&'(( A Æ 9 .$L &'((5 :# &'((5 0 5 / 2 5 0
#
A
K # JJ:@83
?5 I 2%J !" 2 JJ:@83
0
G
# # K ?5 !" A ? # !7 !" :((B
; Æ # / 3:'"
loadbang
table GhPdR 352838
loadbang
loadbang t b b
read gpprog.txt read msprog.txt
table dl 423360
s gpprog s msprog table gpprog 64 table msprog 64
table SqBt 109189
read -raw 44 1 2 n SqBt.wav SqBt
table plain 607345
read -raw 44 1 2 n GhPdL.wav GhPdL
netreceive 9999 1
1.00003e+06 1.5e+06 22050
read -raw 44 1 2 n plain.wav plain
read asprog.txt
table SpDr 1.5e+06
s asprog
table GhPdL 352838
table asprog 128
table MjSt 7746
15
unpack f f f 1.00003e+06
tabread4~ SpDr
read -raw 0 1 2 n DL.raw dl read -raw 44 1 2 n SpDr.wav SpDr
1.5e+06 22050 / 1000 /
-
/
osc~ 0.04 osc~ 0.007 f
f
(2 sec)
f
read -raw 0 1 2 n majorstrings MjSt pack f f pack f f pack f f *~ *~ read -raw 44 1 2 n OilCans16.wav OCs dac~ spacedrone r current-rate soundfiler delay delay delay 0 0 45808 t f b / 2 f + 1 tabread asprog line~ * 1.9 delay sel 127 sel 0 mtof 0.6, 0.2 100 < / 2 0 osc~ line~ 0 spigot r asv tabread msprog f + 1 delay sel 0 / 2 tabread gpprog f t f f t f f clip 300 2000 *~ line~ sel 0 0 sel 0 0 * * / 1 30-200bpm input f mtof *~ mtof + t f b t b f dac~ error signal sel 0 t b f f r gpv 97600 10000, 607345 33147 line~ 3.7e+06 / stop t f f b b f line~ / 0, 352828 $1 0 *~ f delay 0 tabread~ plain line~ pad pattern f t f f f b dac~ * 0.3 0, 7746 $1 osc~ 0.017 tabread4~ GhPdL 0 summator line~ f prop * 0.99 osc~ 0.013 + f r current-rate * 0.05 tabread4~ MjSt * 0.01 *~ *~ t f b * 0.3 0 r msv loadbang + dac~ tonedrone first; * 2 + 1 backwards; + r current-rate *~ line~ r handacc spigot f abs + difference dac~ 0 t f b b * 0.99 t f b b 0 spigot t f f random 8 + 0.1 * 0.01 random 2 clip 200 4000 0 > 5 < -5 * 2 + 0 * 2 f sel 1 sel 1 + handrot +
route d796F kick d7970 X Y Z gX gY table OCs 49000 unpack 0 0 0 0 0 unpack 0 0 0 0 0 t b b footacc footrotate handacc handrotate timer t f bt f bt f bt f bt f bt f bt f bt f b t f f f f f f f f f f f -
-
-
-
-
-
t f ft f ft f ft f ft f ft f *
*
*
+
*
-
*
+
*
+
t f f b b f
+
t f f b b f
f
f
0 * 0.99
0 * 0.99 * 0.01
* 0.01 +
+
f
f
-
abs
+ 0.1
* 0.99
abs
* 0.99
/
* 0.01 +
0
* 0.01 s handacc +
/
0
s
+ 0.1 t b f f
/ 0 > 5
this area down here; attempts to enforce phase? 0
sel 1 timer
timer
delay 300
0 >
0 >
t b b loadbang
sel 1
sel 1
spigot 0
+
f
0
0
* 16384
s current-rate
f 1000
t f f
1
+ 16383 pack f 667
spigot 1
f
delay 0
stop t b b
t f b f f * 0.01 >
spigot spigot f
t f b f f
spigot spigot
f
f
* 0.99
t f b f f
spigot spigot
f
f
* 0.99
spigot spigot
f
f
* 0.99
8'H 2J $ :((4 *+, " & S $
:@ @#G8@8>8++ :((+ *B, 6 K " $ 7 G ? 48B>4@3 :((B *4, 9 6 N 0C 9K ; A 7 G ? 3(H>33+ :((8 *', 6 6 $% G N ? :((8 *H, N Q 2 5 ? KKJ7 % J 7 :((4 *3(, Q & 7 ? T 9 K G 2 ? !"# :H4>83@ :((B *33, Q 2 $ TU ; 2 U " ! %
$ % & 8H 8@#G+33>+:H :((( *3:, Q 2 $ 7 Q 2 U " K 2 ?
? ' 38@3>38@8 & U &U L72 :((@ 2J $ *38, $ $ ? ( :BH>:4: 7 . 3HHB *3@, 7 Q Q
G 2 "# &) :: @#G:H>@8 3HH' *3+, % $ 7 G $2?N ?7K2N ? * 4B>4H :((+ *3B, & E 2 G ; 5 ? 9 J :((4 *34, 6 / 7 $ . E ; 7 2 0
++ "# @ 8#G:B>8: :((+