├── karmaSoundAnalyser.png ├── km_osc_pack_native.pd ├── karmaDSP.pd ├── km_osc_pack_mrpeach.pd ├── utils ├── OSCDumpUtility.pd └── netsendOSCTester.pd ├── km_clean_signal.pd ├── km_alternate.pd ├── km_osc_format.pd ├── km_smooth.pd ├── License.md ├── km_counter.pd ├── km_sin_track_osc.pd ├── karmaBalance.pd ├── karmaAudioOut.pd ├── karmaMetronom.pd ├── OSCCleanFloat.pd ├── karmaNotes.pd ├── OSCRoutes.md ├── karmaOSCNative.pd ├── karmaOSCMrPeach.pd ├── README.md ├── km_resample_avg.pd ├── karmaSoundAnalyser-PdVanilla.pd ├── karmaAubio.pd ├── karmaFiddle.pd └── depreciated ├── karmaSoundAnalyser.pd └── OSCCleannFloat.pd /karmaSoundAnalyser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Daandelange/karmaSoundAnalyser/HEAD/karmaSoundAnalyser.png -------------------------------------------------------------------------------- /km_osc_pack_native.pd: -------------------------------------------------------------------------------- 1 | #N canvas 150 293 450 300 10; 2 | #X obj 29 94 list prepend send; 3 | #X obj 29 117 list trim; 4 | #X obj 29 71 oscformat /kmsa\$1; 5 | #X obj 29 42 inlet; 6 | #X obj 29 145 outlet; 7 | #X text 28 12 Packs OSC messages for karmaOSCNative.pd; 8 | #X connect 0 0 1 0; 9 | #X connect 1 0 4 0; 10 | #X connect 2 0 0 0; 11 | #X connect 3 0 2 0; 12 | -------------------------------------------------------------------------------- /karmaDSP.pd: -------------------------------------------------------------------------------- 1 | #N canvas 275 106 351 252 10; 2 | #X msg 93 109 \; pd dsp 1; 3 | #X msg 26 110 \; pd dsp 0; 4 | #X text 79 40 Turn On/Off Pd.DSP; 5 | #X obj 1 14 cnv 15 58 25 empty empty empty 20 12 0 14 -191407 -66577 6 | 0; 7 | #X obj 5 17 tgl 20 0 empty empty DSP 25 9 0 14 -262144 -1 -1 1 1; 8 | #X obj 1 48 sel 0 1; 9 | #X text 80 19 :: karmaDSP ::; 10 | #X text 77 55 aka. Audio processing; 11 | #X connect 4 0 5 0; 12 | #X connect 5 0 1 0; 13 | #X connect 5 1 0 0; 14 | #X coords 0 -1 1 1 60 40 1 0 0; 15 | -------------------------------------------------------------------------------- /km_osc_pack_mrpeach.pd: -------------------------------------------------------------------------------- 1 | #N canvas 657 318 450 300 10; 2 | #X obj 29 42 inlet; 3 | #X obj 29 215 outlet; 4 | #X text 28 12 Packs OSC messages for karmaOSCMrPeach.pd; 5 | #X obj 29 181 mrpeach/packOSC; 6 | #X obj 172 45 loadbang; 7 | #X obj 172 66 symbol \$1; 8 | #X text 271 88 Sets the OSC address; 9 | #X msg 172 87 prefix /kmsa\$1; 10 | #X obj 29 121 list prepend /kmsa\$1; 11 | #X obj 29 143 list trim; 12 | #X connect 0 0 8 0; 13 | #X connect 3 0 1 0; 14 | #X connect 4 0 5 0; 15 | #X connect 5 0 7 0; 16 | #X connect 8 0 9 0; 17 | #X connect 9 0 3 0; 18 | -------------------------------------------------------------------------------- /utils/OSCDumpUtility.pd: -------------------------------------------------------------------------------- 1 | #N canvas 253 103 465 300 10; 2 | #X obj 67 246 spigot; 3 | #X obj 137 204 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 4 | 1; 5 | #X obj 67 267 print; 6 | #X text 156 202 Enable / Disable; 7 | #X text 65 103 Simple utility for displaying incomming OSC data; 8 | #X msg 67 141 status; 9 | #X obj 67 179 netreceive 12000 localhost; 10 | #X obj 67 199 oscparse; 11 | #X obj 23 221 print; 12 | #X connect 0 0 2 0; 13 | #X connect 1 0 0 1; 14 | #X connect 5 0 6 0; 15 | #X connect 6 0 7 0; 16 | #X connect 6 0 8 0; 17 | #X connect 6 1 0 0; 18 | #X connect 7 0 0 0; 19 | -------------------------------------------------------------------------------- /km_clean_signal.pd: -------------------------------------------------------------------------------- 1 | #N canvas 796 337 450 300 10; 2 | #X obj 51 156 ==; 3 | #X obj 93 139 f; 4 | #X floatatom 102 162 5 0 0 0 - - -, f 5; 5 | #X text 24 10 SIGNAL CLEANER; 6 | #X obj 51 91 inlet float; 7 | #X obj 51 179 sel 0; 8 | #X obj 93 186 outlet float; 9 | #X text 25 27 Prevents resending bangs when the float value has not 10 | changed. (Sort of flood filter); 11 | #X text 25 57 Alterntively use the native [change]; 12 | #X connect 0 0 5 0; 13 | #X connect 1 0 0 1; 14 | #X connect 1 0 2 0; 15 | #X connect 1 0 6 0; 16 | #X connect 4 0 0 0; 17 | #X connect 4 0 1 1; 18 | #X connect 5 0 1 0; 19 | -------------------------------------------------------------------------------- /km_alternate.pd: -------------------------------------------------------------------------------- 1 | #N canvas 0 22 424 257 10; 2 | #X obj 36 41 inlet; 3 | #X obj 36 99 i 0; 4 | #X obj 68 100 + 1; 5 | #X obj 68 125 mod 2; 6 | #X obj 36 151 route 1, f 8; 7 | #X obj 36 175 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 8 | -1; 9 | #X obj 81 176 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 10 | -1; 11 | #X obj 36 202 outlet; 12 | #X obj 81 202 outlet; 13 | #X obj 36 71 t b; 14 | #X text 36 14 Simple abstraction to alternate bangs between 2 outlets 15 | ; 16 | #X connect 0 0 9 0; 17 | #X connect 1 0 2 0; 18 | #X connect 1 0 4 0; 19 | #X connect 2 0 3 0; 20 | #X connect 3 0 1 1; 21 | #X connect 4 0 5 0; 22 | #X connect 4 1 6 0; 23 | #X connect 5 0 7 0; 24 | #X connect 6 0 8 0; 25 | #X connect 9 0 1 0; 26 | -------------------------------------------------------------------------------- /km_osc_format.pd: -------------------------------------------------------------------------------- 1 | #N canvas 721 193 433 415 10; 2 | #X obj 28 166 spigot; 3 | #X obj 61 143 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 4 | 1; 5 | #X obj 111 126 r osc_status; 6 | #X text 77 145 Broadcasting; 7 | #X text 116 373 Receive this with your OSC sender; 8 | #X obj 28 372 s osc_out_raw; 9 | #X obj 89 99 inlet enabled; 10 | #X obj 28 46 inlet value; 11 | #X obj 61 99 i 1; 12 | #X obj 61 74 loadbang; 13 | #X obj 28 194 route bang; 14 | #X obj 28 230 i 1; 15 | #X text 29 8 FORMAT OSC MESSAGES; 16 | #X obj 28 291 km_osc_pack_mrpeach \$1; 17 | #X text 40 313 Use either km_osc_pack_native or km_osc_pack_mrpeach 18 | ; 19 | #X text 40 329 According to your OSC sender; 20 | #X connect 0 0 10 0; 21 | #X connect 1 0 0 1; 22 | #X connect 2 0 1 0; 23 | #X connect 6 0 1 0; 24 | #X connect 7 0 0 0; 25 | #X connect 8 0 1 0; 26 | #X connect 9 0 8 0; 27 | #X connect 10 0 11 0; 28 | #X connect 10 1 13 0; 29 | #X connect 11 0 13 0; 30 | #X connect 13 0 5 0; 31 | -------------------------------------------------------------------------------- /km_smooth.pd: -------------------------------------------------------------------------------- 1 | #N canvas 631 132 494 476 10; 2 | #X obj 29 391 outlet; 3 | #X obj 29 77 inlet; 4 | #X text 29 22 Smooths a value so its changes variate less.; 5 | #X text 29 35 Creation argument indicates the buffer size.; 6 | #X text 30 7 KM SMOOTH; 7 | #X obj 188 87 array define \$0-smooth \$1; 8 | #X obj 29 269 array sum \$0-smooth; 9 | #X obj 103 138 i 0; 10 | #X obj 48 191 array set \$0-smooth; 11 | #X obj 136 139 + 1; 12 | #X obj 136 163 mod \$1; 13 | #X obj 29 108 t b f b; 14 | #X text 188 108 Creates buffer (click to view); 15 | #X text 50 213 Write new value in array; 16 | #X obj 29 295 t a b; 17 | #X obj 56 324 array size \$0-smooth; 18 | #X obj 29 357 /; 19 | #X text 43 248 Sum all values; 20 | #X text 75 304 Divide to get average; 21 | #X connect 1 0 11 0; 22 | #X connect 6 0 14 0; 23 | #X connect 7 0 9 0; 24 | #X connect 7 0 8 1; 25 | #X connect 9 0 10 0; 26 | #X connect 10 0 7 1; 27 | #X connect 11 0 6 0; 28 | #X connect 11 1 8 0; 29 | #X connect 11 2 7 0; 30 | #X connect 14 0 16 0; 31 | #X connect 14 1 15 0; 32 | #X connect 15 0 16 1; 33 | #X connect 16 0 0 0; 34 | -------------------------------------------------------------------------------- /License.md: -------------------------------------------------------------------------------- 1 | Warning: This license has not been checked for compatibility with any of it's dependencies (Aubio, MrPeach, etc.). Please refer to their respective licenses if you use them. 2 | 3 | # MIT License 4 | 5 | Copyright (c) 2017 Daan de Lange 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | -------------------------------------------------------------------------------- /km_counter.pd: -------------------------------------------------------------------------------- 1 | #N canvas 263 259 455 328 10; 2 | #X obj 102 125 i 0; 3 | #X obj 138 125 + 1; 4 | #X obj 102 103 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 5 | -1 -1; 6 | #X obj 102 59 inlet dataStream; 7 | #X floatatom 104 166 5 0 0 1 Cnt - -, f 5; 8 | #X obj 13 250 outlet count; 9 | #X obj 243 60 inlet reset; 10 | #X obj 104 201 bng 15 250 50 0 empty empty Reset 17 7 0 10 -262144 11 | -1 -1; 12 | #X obj 243 99 i 0; 13 | #X obj 243 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 14 | -1; 15 | #X text 102 13 Simple utility to count messages; 16 | #X floatatom 104 184 4 0 0 0 - - -, f 4; 17 | #X obj 223 233 i 0; 18 | #X obj 270 135 loadbang; 19 | #X obj 270 162 metro 1000; 20 | #X obj 254 234 + 1; 21 | #X obj 270 184 i 0; 22 | #X obj 238 207 t f b; 23 | #X obj 239 261 i 0; 24 | #X obj 239 288 outlet countPerSec; 25 | #X text 102 30 Useful for regulating/debugging OSC messages.; 26 | #X text 132 184 /sec; 27 | #X connect 0 0 1 0; 28 | #X connect 0 0 4 0; 29 | #X connect 1 0 0 1; 30 | #X connect 2 0 0 0; 31 | #X connect 2 0 12 0; 32 | #X connect 3 0 2 0; 33 | #X connect 4 0 5 0; 34 | #X connect 6 0 9 0; 35 | #X connect 7 0 9 0; 36 | #X connect 8 0 4 0; 37 | #X connect 8 0 0 1; 38 | #X connect 9 0 8 0; 39 | #X connect 9 0 14 0; 40 | #X connect 12 0 15 0; 41 | #X connect 13 0 14 0; 42 | #X connect 14 0 16 0; 43 | #X connect 15 0 12 1; 44 | #X connect 15 0 18 1; 45 | #X connect 16 0 17 0; 46 | #X connect 17 0 18 1; 47 | #X connect 17 0 12 1; 48 | #X connect 17 1 18 0; 49 | #X connect 18 0 11 0; 50 | #X connect 18 0 19 0; 51 | #X coords 0 -1 1 1 60 70 1 100 150; 52 | -------------------------------------------------------------------------------- /km_sin_track_osc.pd: -------------------------------------------------------------------------------- 1 | #N canvas 713 258 541 391 10; 2 | #X obj 98 105 unpack 0 0 0; 3 | #X obj 80 143 / 2048; 4 | #X obj 80 212 t b f; 5 | #X text 276 282 expr [ -1-(B + (G * 256) + (R * 65536)) ]; 6 | #X obj 269 260 expr [-1-($f1*255+(0*256)+(0*65536))]; 7 | #X obj 269 198 min 1; 8 | #X obj 269 176 expr pow($f1*3 \, 2); 9 | #X obj 80 188 km_resample_avg 150; 10 | #X obj 103 236 min 1; 11 | #X obj 126 261 km_resample_avg 150; 12 | #X obj 98 79 inlet routed_track; 13 | #X text 28 29 Packed input are pairs of: Freq (Hz) \, Amplitude \, 14 | Flag; 15 | #X obj 427 104 f \$1; 16 | #X obj 427 79 loadbang; 17 | #X text 28 44 Creation argument indicates track ID; 18 | #X obj 80 283 pack 0 0 0 0; 19 | #X obj 80 259 f \$1; 20 | #X obj 269 300 pack 0 0; 21 | #X text 370 106 Track ID; 22 | #X text 22 260 Track ID; 23 | #X msg 269 322 \; fft_\$2 color \$1 4 22, f 23; 24 | #X obj 20 188 s fft_\$1; 25 | #X text 29 13 Abstraction to sample and pack sigmund sinus tracks. 26 | ; 27 | #X text 275 240 Colorize; 28 | #X msg 90 309 /notes/\$1 \$2 \$3 \$4; 29 | #X obj 80 337 outlet note_info; 30 | #X connect 0 0 1 0; 31 | #X connect 0 1 6 0; 32 | #X connect 0 2 15 3; 33 | #X connect 1 0 7 0; 34 | #X connect 1 0 21 0; 35 | #X connect 2 0 16 0; 36 | #X connect 2 1 8 0; 37 | #X connect 4 0 17 0; 38 | #X connect 5 0 4 0; 39 | #X connect 5 0 9 0; 40 | #X connect 6 0 5 0; 41 | #X connect 7 0 2 0; 42 | #X connect 8 0 15 1; 43 | #X connect 9 0 15 2; 44 | #X connect 10 0 0 0; 45 | #X connect 12 0 17 1; 46 | #X connect 13 0 12 0; 47 | #X connect 15 0 25 0; 48 | #X connect 16 0 15 0; 49 | #X connect 17 0 20 0; 50 | -------------------------------------------------------------------------------- /utils/netsendOSCTester.pd: -------------------------------------------------------------------------------- 1 | #N canvas 480 229 464 395 10; 2 | #X msg 10 145 disconnect; 3 | #X obj 87 235 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 4 | 1; 5 | #X obj 288 80 netreceive -u -b; 6 | #X msg 288 133; 7 | #X obj 130 139 list prepend send; 8 | #X obj 130 164 list trim; 9 | #X obj 288 105 oscparse; 10 | #X obj 130 113 oscformat /path; 11 | #X msg 130 89 bang; 12 | #X obj 288 165 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 13 | -1 -1; 14 | #X obj 345 141 print RECV; 15 | #X obj 209 272 oscformat /paaath; 16 | #X msg 288 43 listen 1200; 17 | #X msg 121 247 test; 18 | #X obj 207 297 list prepend send; 19 | #X obj 207 325 list trim; 20 | #X floatatom 146 225 5 0 0 0 - - -, f 5; 21 | #X obj 86 196 netsend -u -b; 22 | #X msg 86 33 connect localhost 9990; 23 | #X msg 204 226 bang; 24 | #X symbolatom 351 209 10 0 0 0 - - -, f 10; 25 | #X msg 256 198 test; 26 | #X obj 254 225 symbol; 27 | #X obj 12 234 list trim; 28 | #X obj 42 296 list prepend send; 29 | #X msg 42 272 oscformat /foo; 30 | #X msg 269 17 listen 9990; 31 | #X connect 0 0 17 0; 32 | #X connect 2 0 6 0; 33 | #X connect 3 0 9 0; 34 | #X connect 4 0 5 0; 35 | #X connect 5 0 17 0; 36 | #X connect 6 0 3 0; 37 | #X connect 6 0 10 0; 38 | #X connect 6 0 20 0; 39 | #X connect 7 0 4 0; 40 | #X connect 8 0 7 0; 41 | #X connect 11 0 14 0; 42 | #X connect 12 0 2 0; 43 | #X connect 13 0 25 0; 44 | #X connect 14 0 15 0; 45 | #X connect 15 0 17 0; 46 | #X connect 16 0 25 0; 47 | #X connect 17 0 1 0; 48 | #X connect 18 0 17 0; 49 | #X connect 19 0 11 0; 50 | #X connect 21 0 22 0; 51 | #X connect 22 0 11 0; 52 | #X connect 23 0 17 0; 53 | #X connect 24 0 23 0; 54 | #X connect 25 0 24 0; 55 | #X connect 26 0 2 0; 56 | -------------------------------------------------------------------------------- /karmaBalance.pd: -------------------------------------------------------------------------------- 1 | #N canvas 0 22 572 440 10; 2 | #X obj 154 131 env~; 3 | #X obj 327 132 env~; 4 | #X text 167 39 :: BALANCE ::; 5 | #X obj 154 153 dbtorms; 6 | #X obj 327 154 dbtorms; 7 | #X obj 154 109 inlet~ left; 8 | #X obj 327 109 inlet~ right; 9 | #X obj 327 356 outlet balance; 10 | #X text 169 55 Calculates the difference between left and right channel 11 | amplitude.; 12 | #X obj 1 14 cnv 15 83 74 empty empty empty 20 12 0 14 -191407 -66577 13 | 0; 14 | #X obj 17 30 vsl 10 40 0 1 0 0 empty \$0-b-right R 2 -9 0 10 -262144 15 | -1 -1 323 1; 16 | #X obj 4 30 vsl 10 40 0 1 0 0 empty \$0-b-left L 2 -9 0 10 -262144 17 | -1 -1 330 1; 18 | #X obj 36 62 hsl 40 10 -1 1 0 0 empty \$0-b-balance empty -2 -8 0 10 19 | -262144 -1 -1 2119 1; 20 | #X obj 166 179 s \$0-b-left; 21 | #X obj 343 179 s \$0-b-right; 22 | #X obj 336 309 s \$0-b-balance; 23 | #X obj 327 334 change; 24 | #X text 32 46 BALANCE; 25 | #X obj 327 204 /; 26 | #X obj 346 294 hsl 55 8 -1 1 0 0 empty empty empty -2 -8 0 10 -262144 27 | -1 -1 2934 1; 28 | #X obj 327 226 - 1; 29 | #X text 1 74 L; 30 | #X text 37 74 R; 31 | #X text 74 74 B; 32 | #X obj 154 203 outlet L_amp; 33 | #X obj 235 203 outlet R_amp; 34 | #X obj 327 254 km_resample_avg 50; 35 | #X obj 327 277 km_smooth 10; 36 | #X connect 0 0 3 0; 37 | #X connect 1 0 4 0; 38 | #X connect 3 0 13 0; 39 | #X connect 3 0 18 1; 40 | #X connect 3 0 24 0; 41 | #X connect 4 0 14 0; 42 | #X connect 4 0 18 0; 43 | #X connect 4 0 25 0; 44 | #X connect 5 0 0 0; 45 | #X connect 6 0 1 0; 46 | #X connect 16 0 7 0; 47 | #X connect 18 0 20 0; 48 | #X connect 20 0 26 0; 49 | #X connect 26 0 27 0; 50 | #X connect 27 0 19 0; 51 | #X connect 27 0 15 0; 52 | #X connect 27 0 16 0; 53 | #X coords 0 -1 1 1 85 90 1 0 0; 54 | -------------------------------------------------------------------------------- /karmaAudioOut.pd: -------------------------------------------------------------------------------- 1 | #N canvas 477 134 562 491 10; 2 | #X obj 178 437 dac~; 3 | #X obj 106 348 *~ 1; 4 | #X obj 199 349 *~ 1; 5 | #X text 106 12 :: SOUND OUTPUT WITH VOLUME CONTROL ::; 6 | #X obj 1 15 cnv 15 80 84 empty empty empty 20 12 0 14 -191407 -66577 7 | 0; 8 | #X obj 220 103 r \$0-ao-onoff; 9 | #X obj 220 253 f; 10 | #X obj 235 144 r \$0-ao-pan; 11 | #X obj 5 53 hsl 70 15 0 1 0 0 \$0-ao-volume \$0-ao-volume-set Volume 12 | 0 -8 0 10 -262144 -1 -1 1500 1; 13 | #X obj 3 21 tgl 15 0 \$0-ao-onoff \$0-ao-onoff-set On_Off 20 7 0 10 14 | -262144 -1 -1 1 1; 15 | #X obj 6 86 hsl 55 10 -1 1 0 0 \$0-ao-pan \$0-ao-pan-set Pan_Balance 16 | -2 -8 0 10 -262144 -1 -1 2700 1; 17 | #X obj 220 279 * 1; 18 | #X text 235 127 Pan; 19 | #X obj 127 294 f; 20 | #X obj 127 323 * 1; 21 | #X obj 235 170 + 1; 22 | #X obj 235 194 min 1; 23 | #X obj 235 221 t b f; 24 | #X obj 106 42 inlet~ audioL; 25 | #X obj 199 70 inlet~ audioR; 26 | #X text 249 280 RightVolumePanned; 27 | #X text 4 293 LeftVolumePanned; 28 | #X obj 366 67 loadbang; 29 | #X text 366 48 Set defaults; 30 | #X obj 66 86 bng 10 250 50 0 \$0-ao-pan-reset empty empty 17 7 0 10 31 | -1 -262144 -262144; 32 | #X obj 142 262 t b f; 33 | #X obj 127 102 r \$0-ao-volume; 34 | #X obj 142 239 min 1; 35 | #X obj 142 216 abs; 36 | #X obj 142 194 - 1; 37 | #X obj 387 116 s \$0-ao-volume-set; 38 | #X obj 378 92 i 1; 39 | #X obj 366 190 i 0; 40 | #X obj 366 214 s \$0-ao-pan-set; 41 | #X obj 378 163 r \$0-ao-pan-reset; 42 | #X obj 378 139 s \$0-ao-onoff-set; 43 | #X obj 370 403 != 0; 44 | #X obj 370 376 r \$0-ao-volume; 45 | #X obj 370 430 s \$0-ao-onoff-set; 46 | #X text 368 355 GUI logic; 47 | #X connect 1 0 0 0; 48 | #X connect 2 0 0 1; 49 | #X connect 5 0 6 0; 50 | #X connect 5 0 13 0; 51 | #X connect 6 0 11 0; 52 | #X connect 7 0 15 0; 53 | #X connect 7 0 29 0; 54 | #X connect 11 0 2 1; 55 | #X connect 13 0 14 0; 56 | #X connect 14 0 1 1; 57 | #X connect 15 0 16 0; 58 | #X connect 16 0 17 0; 59 | #X connect 17 0 6 0; 60 | #X connect 17 1 11 1; 61 | #X connect 18 0 1 0; 62 | #X connect 19 0 2 0; 63 | #X connect 22 0 31 0; 64 | #X connect 22 0 32 0; 65 | #X connect 25 0 13 0; 66 | #X connect 25 1 14 1; 67 | #X connect 26 0 6 0; 68 | #X connect 26 0 13 0; 69 | #X connect 27 0 25 0; 70 | #X connect 28 0 27 0; 71 | #X connect 29 0 28 0; 72 | #X connect 31 0 30 0; 73 | #X connect 31 0 35 0; 74 | #X connect 32 0 33 0; 75 | #X connect 34 0 32 0; 76 | #X connect 36 0 38 0; 77 | #X connect 37 0 36 0; 78 | #X coords 0 -1 1 1 80 100 1 0 0; 79 | -------------------------------------------------------------------------------- /karmaMetronom.pd: -------------------------------------------------------------------------------- 1 | #N canvas 640 248 721 420 10; 2 | #X text 125 16 METRONOM; 3 | #X text 124 45 To do: set the timing of thack rather then default. 4 | ; 5 | #X obj 129 82 inlet attack_bang; 6 | #X text 124 31 Track a bang event (attack/beats).; 7 | #X obj 129 109 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 8 | -1 -1; 9 | #X obj 155 132 + 1; 10 | #X msg 515 199 \; \$2-metronom-radio number \$1; 11 | #X text 516 233 Sets timings of metronom; 12 | #X text 551 107 Metronom accent; 13 | #X obj 515 61 loadbang; 14 | #X obj 129 346 outlet metronom; 15 | #X obj 235 346 outlet accent; 16 | #X obj 235 191 == 0; 17 | #X obj 129 159 mod 4; 18 | #X obj 392 182 timer; 19 | #X obj 392 157 t b b; 20 | #X obj 392 203 sel 0; 21 | #X obj 419 346 outlet bpm; 22 | #X obj 419 282 km_smooth 50; 23 | #X obj 419 261 expr (1000.0/$i1)*60; 24 | #X obj 129 132 i 0; 25 | #X obj 325 215 sel 1; 26 | #X obj 325 235 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 27 | -1 -1; 28 | #X obj 325 346 outlet cycles; 29 | #X obj 325 295 div 4; 30 | #X obj 325 267 i; 31 | #X obj 1 14 cnv 15 80 84 empty empty empty 20 12 0 14 -191407 -66577 32 | 0; 33 | #X obj 5 30 hradio 15 1 0 4 empty \$0-metronom-radio empty 0 -8 0 10 34 | -262144 -1 -1 0; 35 | #X obj 5 50 tgl 30 0 empty \$0-m-accent empty 17 7 0 10 -262144 -1 36 | -1 0 1; 37 | #X text 48 50 BPM; 38 | #X floatatom 50 65 4 0 0 0 - #0-m-bpm -, f 4; 39 | #X text 14 14 METRONOM; 40 | #X floatatom 50 82 4 0 0 0 Cycles #0-m-cycles -, f 4; 41 | #X obj 228 258 s \$0-m-accent; 42 | #X obj 331 318 s \$0-m-cycles; 43 | #X obj 104 258 s \$0-metronom-radio; 44 | #X obj 427 324 s \$0-m-bpm; 45 | #X obj 427 303 i 0; 46 | #X floatatom 515 106 5 0 0 0 - - -, f 5; 47 | #X obj 515 124 max 1; 48 | #X obj 515 84 i 4; 49 | #X text 541 85 Default value; 50 | #X obj 515 175 pack f \$0; 51 | #X connect 2 0 4 0; 52 | #X connect 4 0 15 0; 53 | #X connect 4 0 20 0; 54 | #X connect 5 0 20 1; 55 | #X connect 9 0 40 0; 56 | #X connect 12 0 21 0; 57 | #X connect 12 0 11 0; 58 | #X connect 12 0 33 0; 59 | #X connect 13 0 12 0; 60 | #X connect 13 0 10 0; 61 | #X connect 13 0 35 0; 62 | #X connect 14 0 16 0; 63 | #X connect 15 0 14 0; 64 | #X connect 15 1 14 1; 65 | #X connect 16 1 19 0; 66 | #X connect 18 0 37 0; 67 | #X connect 18 0 17 0; 68 | #X connect 19 0 18 0; 69 | #X connect 20 0 5 0; 70 | #X connect 20 0 13 0; 71 | #X connect 20 0 25 1; 72 | #X connect 21 0 22 0; 73 | #X connect 22 0 25 0; 74 | #X connect 24 0 23 0; 75 | #X connect 24 0 34 0; 76 | #X connect 25 0 24 0; 77 | #X connect 37 0 36 0; 78 | #X connect 38 0 39 0; 79 | #X connect 39 0 13 1; 80 | #X connect 39 0 24 1; 81 | #X connect 39 0 42 0; 82 | #X connect 40 0 38 0; 83 | #X connect 42 0 6 0; 84 | #X coords 0 -1 1 1 80 100 1 0 0; 85 | -------------------------------------------------------------------------------- /OSCCleanFloat.pd: -------------------------------------------------------------------------------- 1 | #N canvas 646 22 650 610 10; 2 | #X obj 378 248 metro \$1; 3 | #X obj 168 124 inlet; 4 | #X obj 378 226 != 0; 5 | #X obj 388 151 \$1; 6 | #X obj 414 151 loadbang; 7 | #X text 409 174 Default Frequency (ms); 8 | #X obj 147 198 tgl 15 0 empty empty Frequency_Controll_[on/off] 17 9 | 7 0 10 -262144 -1 -1 0 1; 10 | #X obj 114 124 inlet; 11 | #X text 47 124 Data input; 12 | #X obj 147 243 != 1; 13 | #X floatatom 436 249 5 0 0 1 Raw_input - -, f 5; 14 | #X floatatom 520 319 5 0 0 0 Summed_Values - -, f 5; 15 | #X obj 387 347 + 1; 16 | #X text 256 446 See also resample \, sendmany-osc.pd and lop; 17 | #X obj 204 283 ==; 18 | #X obj 99 343 f; 19 | #X floatatom 111 369 5 0 0 0 - - -, f 5; 20 | #X obj 204 326 sel 0; 21 | #X obj 99 394 outlet float; 22 | #X obj 414 326 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 23 | -1 -1; 24 | #X obj 436 213 spigot; 25 | #X obj 385 303 i; 26 | #X floatatom 453 389 5 0 0 0 Num_Values - -, f 5; 27 | #X obj 387 325 i; 28 | #X obj 360 402 /; 29 | #X floatatom 360 425 5 0 0 0 Averaged_Value - -, f 5; 30 | #X obj 114 267 spigot; 31 | #X text 45 28 Cleans data flow for OSC output.; 32 | #X text 45 43 Unchanged values are not re-sent.; 33 | #X text 343 28 (Tested only for ints and floats); 34 | #X text 46 57 Too frequent values are sent less frequent and averaged. 35 | ; 36 | #X text 207 123 Freq.Cont. [on/off]; 37 | #X obj 378 130 inlet; 38 | #X text 417 129 Set frequency (ms); 39 | #X text 46 72 Set frequency with \$1 creation argument or 3rd inlet. 40 | ; 41 | #X obj 325 141 sel 1; 42 | #X obj 378 372 i; 43 | #X obj 414 303 +; 44 | #X obj 401 273 i 0; 45 | #X obj 378 174 i 16; 46 | #X text 412 187 16.6666ms for 60FPS; 47 | #X text 439 268 Todo: disable metro when flow goes slower ?; 48 | #X connect 0 0 36 0; 49 | #X connect 0 0 38 0; 50 | #X connect 1 0 6 0; 51 | #X connect 1 0 35 0; 52 | #X connect 2 0 0 0; 53 | #X connect 3 0 39 0; 54 | #X connect 4 0 3 0; 55 | #X connect 6 0 9 0; 56 | #X connect 6 0 20 1; 57 | #X connect 7 0 20 0; 58 | #X connect 7 0 26 0; 59 | #X connect 9 0 26 1; 60 | #X connect 10 0 37 0; 61 | #X connect 11 0 24 1; 62 | #X connect 12 0 36 1; 63 | #X connect 12 0 23 1; 64 | #X connect 14 0 17 0; 65 | #X connect 15 0 14 1; 66 | #X connect 15 0 16 0; 67 | #X connect 15 0 18 0; 68 | #X connect 17 0 15 0; 69 | #X connect 19 0 23 0; 70 | #X connect 20 0 10 0; 71 | #X connect 21 0 11 0; 72 | #X connect 21 0 37 1; 73 | #X connect 23 0 12 0; 74 | #X connect 24 0 25 0; 75 | #X connect 25 0 14 0; 76 | #X connect 25 0 15 1; 77 | #X connect 26 0 15 1; 78 | #X connect 26 0 14 0; 79 | #X connect 32 0 39 0; 80 | #X connect 35 0 39 0; 81 | #X connect 35 1 0 0; 82 | #X connect 36 0 24 0; 83 | #X connect 36 0 22 0; 84 | #X connect 37 0 19 0; 85 | #X connect 37 0 21 0; 86 | #X connect 38 0 21 1; 87 | #X connect 38 0 37 1; 88 | #X connect 39 0 2 0; 89 | #X connect 39 0 0 1; 90 | -------------------------------------------------------------------------------- /karmaNotes.pd: -------------------------------------------------------------------------------- 1 | #N canvas 72 22 1102 607 10; 2 | #X floatatom 295 219 5 0 0 0 - - -, f 5; 3 | #X obj 216 170 sigmund~ -npeak 7 pitch notes env tracks; 4 | #X obj 216 80 inlet~ audioL; 5 | #X obj 319 80 inlet~ audioR; 6 | #X obj 453 212 route 6 5 4 3 2 1 0, f 40; 7 | #X obj 61 28 cnv 15 108 60 empty empty Notes 12 8 0 12 -191407 -66577 8 | 0; 9 | #X obj 64 45 vsl 8 40 0 1 0 0 empty fft_1 empty 0 -9 0 10 -1 -261681 10 | -1 575 1; 11 | #X obj 80 45 vsl 8 40 0 1 0 0 empty fft_2 empty 0 -9 0 10 -1 -261681 12 | -1 964 1; 13 | #X obj 96 45 vsl 8 40 0 1 0 0 empty fft_3 empty 0 -9 0 10 -1 -261681 14 | -1 1246 1; 15 | #X obj 112 45 vsl 8 40 0 1 0 0 empty fft_4 empty 0 -9 0 10 -64 -261681 16 | -1 89 1; 17 | #X obj 127 45 vsl 8 40 0 1 0 0 empty fft_5 empty 0 -9 0 10 -3 -261681 18 | -1 3900 1; 19 | #X obj 143 45 vsl 8 40 0 1 0 0 empty fft_6 empty 0 -9 0 10 -1 -261681 20 | -1 3900 1; 21 | #X obj 159 45 vsl 8 40 0 1 0 0 empty fft_7 empty 0 -9 0 10 -1 -261681 22 | -1 3900 1; 23 | #X obj 18 412 i 2048; 24 | #X text 26 393 FFT Amp scale; 25 | #X obj 18 373 loadbang; 26 | #X text 720 213 Each sine track: ID \, Freq (Hz) \, Amplitude \, Flag 27 | ; 28 | #X text 585 137 Packs 7 detected notes; 29 | #X text 583 156 Also adapts their value \, scale and resamples them. 30 | ; 31 | #X obj 216 287 outlet pitch; 32 | #X obj 295 287 outlet note; 33 | #X obj 374 287 outlet amp; 34 | #X obj 453 81 inlet on_off; 35 | #X obj 656 234 km_sin_track_osc 1; 36 | #X obj 453 430 outlet note1; 37 | #X obj 539 430 outlet note2; 38 | #X obj 624 430 outlet note3; 39 | #X obj 707 430 outlet note4; 40 | #X obj 794 430 outlet note5; 41 | #X obj 880 430 outlet note6; 42 | #X obj 972 430 outlet note7; 43 | #X obj 554 300 km_sin_track_osc 4; 44 | #X obj 453 277 km_sin_track_osc 7; 45 | #X obj 486 256 km_sin_track_osc 6; 46 | #X obj 520 234 km_sin_track_osc 5; 47 | #X obj 622 256 km_sin_track_osc 2; 48 | #X obj 588 278 km_sin_track_osc 3; 49 | #X obj 12 44 nbx 2 14 -1e+37 1e+37 0 0 empty empty Pitch 0 -8 0 10 50 | -262144 -1 -1 30 256; 51 | #X obj 216 198 max 0; 52 | #X obj 42 40 vsl 15 45 0 1 0 0 empty empty Amp 0 -9 0 10 -262144 -1 53 | -1 1062 1; 54 | #X obj 12 74 nbx 2 14 -1e+37 1e+37 0 0 empty empty Note 0 -8 0 10 -262144 55 | -1 -1 34 256; 56 | #X obj 374 197 dbtorms; 57 | #X obj 374 222 max 0; 58 | #X obj 374 245 min 1; 59 | #X obj 295 254 i; 60 | #X obj 216 229 i; 61 | #X connect 0 0 44 0; 62 | #X connect 1 0 38 0; 63 | #X connect 1 1 0 0; 64 | #X connect 1 2 41 0; 65 | #X connect 1 3 4 0; 66 | #X connect 2 0 1 0; 67 | #X connect 3 0 1 0; 68 | #X connect 4 0 32 0; 69 | #X connect 4 1 33 0; 70 | #X connect 4 2 34 0; 71 | #X connect 4 3 31 0; 72 | #X connect 4 4 36 0; 73 | #X connect 4 5 35 0; 74 | #X connect 4 6 23 0; 75 | #X connect 15 0 13 0; 76 | #X connect 23 0 24 0; 77 | #X connect 31 0 27 0; 78 | #X connect 32 0 30 0; 79 | #X connect 33 0 29 0; 80 | #X connect 34 0 28 0; 81 | #X connect 35 0 25 0; 82 | #X connect 36 0 26 0; 83 | #X connect 38 0 45 0; 84 | #X connect 41 0 42 0; 85 | #X connect 42 0 43 0; 86 | #X connect 43 0 21 0; 87 | #X connect 43 0 39 0; 88 | #X connect 44 0 20 0; 89 | #X connect 44 0 40 0; 90 | #X connect 45 0 19 0; 91 | #X connect 45 0 37 0; 92 | #X coords 0 -1 1 1 160 80 1 10 10; 93 | -------------------------------------------------------------------------------- /OSCRoutes.md: -------------------------------------------------------------------------------- 1 | # karmaSoundAnalyser 2 | 3 | ## OSC addresses 4 | All OSC addresses are prepended with `/kmsa`. 5 | 6 | ### Output 7 | The following MIR variables are streamed over OSC. 8 | 9 | | Address | Type | Range | MIR Description | 10 | | :--- | :--- | :--- | :--- | 11 | | __Balance__ |||| 12 | | /balance/pan | float | -1.0 to 1.0 | Balance between left and right audio channels. | 13 | | /balance/ampL | float | 0.0 to 1.0 | Amplitude of the left audio channel.| 14 | | /balance/ampR | float | 0.0 to 1.0 | Amplitude of the right audio channel. | 15 | | __Aubio__ | 16 | | /aubio/isPlaying | bool | true / false | Indicates if there's audio playing. | 17 | | /aubio/isQuiet | bool | true / false | Indicates if there's silence. | 18 | | /aubio/attack | bang | | Onset / attack event notifier. | 19 | | /aubio/tempo | bang | | Tempo detection. Sends beat events. | 20 | | /aubio/tempoAlt | bang | | Detects an alternative tempo. | 21 | | /aubio/pitch | int | 0 to ∞ | Tries to detect a dominating pitch, sends it's value (in Hz) if found, otherwise 0. | 22 | | /aubio/zcr | float | 0.0 to 1.0 | Zero crossings rate. | 23 | | /aubio/transients | float | 0.0 to 1.0 | Transients treshold. Transients indicate unstable sound signals or newly introduced sound signals. | 24 | | /aubio/steadyState | float | 0.0 to 1.0 | Steady-state treshold. Indicates stable sounds that remain over time. | 25 | | __Metronom__ | 26 | | /metronom/tick | bang | | A notification on every tick. | 27 | | /metronom/tickNum | int | 0 to 3 _*_ | Tick number. 0 is the accented tick.
_*_ The metronom's accent defines the number of ticks. | 28 | | /metronom/accentTick | bang | | A notification on the metronom accent tick (Same as tick #1). | 29 | | /metronom/cycles | int | 0 to ∞| Number of cycles detected, increments every 4 _*_ ticks.
_*_ Based on `accent` default value: 4. | 30 | | /metronom/BPM | int | 0 to ±200 | Currently estimated BPM. | 31 | | __Fiddle__ | 32 | | /fiddle/attack | bang | | A notification on every beat. | 33 | | /fiddle/pitch | int | 0 to ∞ | Tries to detect a dominating pitch, sends it's value (in Hz) if found, otherwise 0. | 34 | | /fiddle/pitchRaw | int | 0 to ∞ | Same as above but updated more frequently. (_update rate 150Hz max_) | 35 | | /fiddle/amp | float | 0.0 to 1.0 | Amplitude of audio signal. | 36 | | /fiddle/ampRaw | float | 0.0 to 1.0 | Same as above but updated more frequently. (_update rate 150Hz max_) | 37 | | /fiddle/silence | bang | true / false | Turns true after 2 secs of silence. | 38 | | __Notes__ | 39 | | /notes/1 (to 7) | array | | Frequently detected notes. Sends an array of: [ID, amplitude, frequency, change flag] | -------------------------------------------------------------------------------- /karmaOSCNative.pd: -------------------------------------------------------------------------------- 1 | #N canvas 215 134 944 509 10; 2 | #X text 378 249 OSC SERVER CONFIGURATION; 3 | #X text 201 258 - - - - - - - - - - - - - - - - - - - - - - - - - - 4 | ; 5 | #X obj 203 418 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 6 | 1; 7 | #X obj 203 363 spigot; 8 | #X obj 298 301 spigot; 9 | #X obj 298 324 print; 10 | #X obj 203 396 netsend -u -b; 11 | #X obj 211 439 s osc_status; 12 | #X obj 203 275 r osc_out_raw; 13 | #X msg 387 355 connect 192.168.0.11 12000; 14 | #X text 202 249 :: OSC ROUTING ::; 15 | #X text 664 265 Listen for re-connection..; 16 | #X obj 656 325 oscparse; 17 | #X msg 656 282 listen 12001; 18 | #X obj 656 304 netreceive -u -b 12001; 19 | #X obj 716 368 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 20 | -1 -1; 21 | #X msg 387 378 disconnect; 22 | #X msg 852 287 listen 0; 23 | #X obj 656 416 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 24 | -1 -1; 25 | #X obj 656 367 route km; 26 | #X obj 656 346 list trim; 27 | #X text 738 368 Unrecognized command received; 28 | #X text 754 284 Disconnects -->; 29 | #X obj 656 392 route reconnectKMSA; 30 | #X obj 788 392 route ping; 31 | #X obj 788 414 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 32 | -1 -1; 33 | #X text 207 62 karmaOSCNative can be replaced with karmaOSCMrPeach 34 | for better performance \, but requires to install the Mr Peach library. 35 | ; 36 | #X text 207 23 :: karmaOSCNative ::; 37 | #X obj 1 125 cnv 15 178 104 empty empty empty 20 12 0 14 -191407 -66577 38 | 0; 39 | #X obj 8 206 tgl 15 0 \$0-kon-debug \$0-kon-debug-set empty 17 7 0 40 | 10 -262144 -1 -1 0 1; 41 | #X text 27 206 Print Output to Console; 42 | #X obj 331 275 r \$0-kon-debug; 43 | #X text 4 146 IP; 44 | #X text 22 128 Configuration; 45 | #X obj 24 167 tgl 15 1 empty \$0-kon-status OSC_out_status 17 7 0 10 46 | -262144 -1 -1 0 1; 47 | #X obj 788 435 km_osc_format /pong; 48 | #X msg 24 146 connect localhost 12000; 49 | #X obj 203 461 s \$0-kon-status; 50 | #X text 293 396 -u = UDP \, -b = binary; 51 | #X text 224 417 UDP Status; 52 | #X obj 206 129 loadbang; 53 | #X obj 207 163 s \$0-kon-netsend; 54 | #X obj 387 330 r \$0-kon-netsend; 55 | #X text 754 26 SET DEFAULTS; 56 | #X obj 758 49 loadbang; 57 | #X obj 758 97 s \$0-kon-debug-set; 58 | #X obj 758 73 i 0; 59 | #X text 294 440 Global notifier; 60 | #X obj 656 438 s \$0-kon-reconnect; 61 | #X obj 262 129 r \$0-kon-reconnect; 62 | #X obj 236 317 loadbang; 63 | #X obj 236 340 i 0; 64 | #X obj 656 244 loadbang; 65 | #X obj 208 202 s \$0-kon-netreceive; 66 | #X obj 592 223 r \$0-kon-netreceive; 67 | #X msg 24 185 listen 12001; 68 | #X msg 115 185 listen 0; 69 | #X text 207 39 Lets other Pd patches send data to osc_out_raw; 70 | #X text 690 456 Other routes have yet to be defined.; 71 | #X connect 2 0 3 1; 72 | #X connect 2 0 7 0; 73 | #X connect 2 0 37 0; 74 | #X connect 3 0 6 0; 75 | #X connect 4 0 5 0; 76 | #X connect 6 0 2 0; 77 | #X connect 8 0 4 0; 78 | #X connect 8 0 3 0; 79 | #X connect 9 0 6 0; 80 | #X connect 12 0 20 0; 81 | #X connect 13 0 14 0; 82 | #X connect 14 0 12 0; 83 | #X connect 16 0 6 0; 84 | #X connect 17 0 14 0; 85 | #X connect 18 0 48 0; 86 | #X connect 19 0 23 0; 87 | #X connect 19 0 24 0; 88 | #X connect 19 1 15 0; 89 | #X connect 20 0 19 0; 90 | #X connect 23 0 18 0; 91 | #X connect 24 0 25 0; 92 | #X connect 25 0 35 0; 93 | #X connect 31 0 4 1; 94 | #X connect 36 0 41 0; 95 | #X connect 40 0 36 0; 96 | #X connect 42 0 6 0; 97 | #X connect 44 0 46 0; 98 | #X connect 46 0 45 0; 99 | #X connect 49 0 36 0; 100 | #X connect 50 0 51 0; 101 | #X connect 51 0 3 1; 102 | #X connect 52 0 13 0; 103 | #X connect 54 0 14 0; 104 | #X connect 55 0 53 0; 105 | #X connect 56 0 53 0; 106 | #X coords 0 -1 1 1 180 120 1 0 110; 107 | -------------------------------------------------------------------------------- /karmaOSCMrPeach.pd: -------------------------------------------------------------------------------- 1 | #N canvas 366 196 944 509 10; 2 | #X declare -stdpath mrpeach; 3 | #X text 378 249 OSC SERVER CONFIGURATION; 4 | #X text 201 258 - - - - - - - - - - - - - - - - - - - - - - - - - - 5 | ; 6 | #X obj 203 418 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 7 | 1; 8 | #X obj 203 363 spigot; 9 | #X obj 298 301 spigot; 10 | #X obj 298 324 print; 11 | #X obj 211 439 s osc_status; 12 | #X obj 203 275 r osc_out_raw; 13 | #X msg 387 356 connect 192.168.0.11 12000; 14 | #X text 202 249 :: OSC ROUTING ::; 15 | #X text 664 265 Listen for re-connection..; 16 | #X obj 766 368 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 17 | -1 -1; 18 | #X msg 387 379 disconnect; 19 | #X obj 656 416 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 20 | -1 -1; 21 | #X text 788 368 Unrecognized command received; 22 | #X text 754 284 Disconnects -->; 23 | #X obj 808 414 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 24 | -1 -1; 25 | #X text 207 62 karmaOSCNative can be replaced with karmaOSCMrPeach 26 | for better performance \, but requires to install the Mr Peach library. 27 | ; 28 | #X text 207 23 :: karmaOSCNative ::; 29 | #X obj 1 125 cnv 15 178 104 empty empty empty 20 12 0 14 -191407 -66577 30 | 0; 31 | #X obj 8 206 tgl 15 0 \$0-kop-debug \$0-kop-debug-set empty 17 7 0 32 | 10 -262144 -1 -1 0 1; 33 | #X text 27 206 Print Output to Console; 34 | #X obj 331 275 r \$0-kop-debug; 35 | #X text 4 146 IP; 36 | #X text 22 128 Configuration; 37 | #X obj 24 167 tgl 15 1 empty \$0-kop-status OSC_out_status 17 7 0 10 38 | -262144 -1 -1 1 1; 39 | #X obj 808 435 km_osc_format /pong; 40 | #X msg 24 146 connect localhost 12000; 41 | #X obj 203 461 s \$0-kop-status; 42 | #X text 224 417 UDP Status; 43 | #X obj 206 129 loadbang; 44 | #X obj 387 331 r \$0-kop-netsend; 45 | #X text 756 51 SET DEFAULTS; 46 | #X obj 760 74 loadbang; 47 | #X obj 760 122 s \$0-kop-debug-set; 48 | #X obj 760 98 i 0; 49 | #X text 294 440 Global notifier; 50 | #X obj 656 438 s \$0-kop-reconnect; 51 | #X obj 236 317 loadbang; 52 | #X obj 236 340 i 0; 53 | #X obj 656 244 loadbang; 54 | #X obj 592 223 r \$0-kop-netreceive; 55 | #X text 207 39 Lets other Pd patches send data to osc_out_raw; 56 | #X text 690 456 Other routes have yet to be defined.; 57 | #X obj 262 129 r \$0-kop-reconnect; 58 | #X obj 207 163 s \$0-kop-netsend; 59 | #X obj 208 202 s \$0-kop-netreceive; 60 | #X obj 506 9 declare -stdpath mrpeach; 61 | #X text 660 10 Make sure to load MrPeach; 62 | #X obj 203 396 mrpeach/udpsend; 63 | #X obj 656 304 mrpeach/unpackOSC 12001; 64 | #X msg 852 287 port 0; 65 | #X msg 656 282 port 12001; 66 | #X obj 656 325 mrpeach/unpackOSC; 67 | #X obj 656 367 routeOSC /kmsa; 68 | #X obj 656 392 routeOSC /reconnectKMSA; 69 | #X obj 808 392 routeOSC /ping; 70 | #X msg 24 185 port 12001; 71 | #X msg 115 185 port 0; 72 | #X connect 2 0 3 1; 73 | #X connect 2 0 6 0; 74 | #X connect 2 0 28 0; 75 | #X connect 3 0 49 0; 76 | #X connect 4 0 5 0; 77 | #X connect 7 0 4 0; 78 | #X connect 7 0 3 0; 79 | #X connect 8 0 49 0; 80 | #X connect 12 0 49 0; 81 | #X connect 13 0 37 0; 82 | #X connect 16 0 26 0; 83 | #X connect 22 0 4 1; 84 | #X connect 27 0 45 0; 85 | #X connect 30 0 27 0; 86 | #X connect 31 0 49 0; 87 | #X connect 33 0 35 0; 88 | #X connect 35 0 34 0; 89 | #X connect 38 0 39 0; 90 | #X connect 39 0 3 1; 91 | #X connect 40 0 52 0; 92 | #X connect 41 0 50 0; 93 | #X connect 44 0 27 0; 94 | #X connect 49 0 2 0; 95 | #X connect 50 0 53 0; 96 | #X connect 51 0 50 0; 97 | #X connect 52 0 50 0; 98 | #X connect 53 0 54 0; 99 | #X connect 54 0 55 0; 100 | #X connect 54 0 56 0; 101 | #X connect 54 1 11 0; 102 | #X connect 55 0 13 0; 103 | #X connect 56 0 16 0; 104 | #X connect 57 0 46 0; 105 | #X connect 58 0 46 0; 106 | #X coords 0 -1 1 1 180 120 1 0 110; 107 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | karmaSoundAnalyser 2 | ================== 3 | 4 | A Puredata real-time music analysis patch retrieving humanly sensitive information from a live audio stream by using various methods. 5 | Streams [Music Information Retrieval](https://en.wikipedia.org/wiki/Music_information_retrieval) data over a LAN using [OSC](https://en.wikipedia.org/wiki/Open_Sound_Control). 6 | Pure Data is multiplatform, as is this patch: Linux, Mac & Windows. 7 | 8 | ![Preview](https://raw.githubusercontent.com/Karma-Kusala/karmaSoundAnalyser/master/karmaSoundAnalyser.png) 9 | _Note:_ [Click here to watch an older demo video](https://vimeo.com/84516862) 10 | 11 | ## License 12 | For the moment karmaSoundAnalyser's license is not clear. Particularly if you use it in a commercial project, please make sure to double-check the respective licenses of it's dependencies and their compatibility with the MIT license. 13 | 14 | ## Details 15 | karmaSoundAnalyser is divided into several `.pd` abstractions, each one handling the analysis of a particular musical aspect. 16 | This Pure Data patch uses the excellent lib Aubio for onset and tempo detection. Alternatively you can use karmaFiddle using the native `fiddle` object for onset detection. 17 | Other features include an alternative onSet detection, pitch detection, silence detection, a 5-band equaliser, note detection, etc. 18 | 19 | ### OSC Routing 20 | For a full list of MIR data, please refer to the [OSC addresses table](https://github.com/Karma-Kusala/karmaSoundAnalyser/blob/master/OSCRoutes.md). 21 | 22 | __Note__: _Not all collected data is yet forwarded trough OSC._ 23 | 24 | __Note__: _Configure Pd to load Aubio on launch or you'll have to open the pd patch twice._ 25 | 26 | ## Dependencies 27 | 28 | - [Pure Data](http://puredata.info/) `v0.47-1-64bit` - The host app for this patch. 29 | - [Lib Aubio Pd plugin](http://aubio.org/pd-aubio/) `v0.4` - A Pd plugin for detecting tempo and more. (Warning: GNU/GPL licensed) 30 | - Recomended: A __wired__ LAN for better performance. 31 | - Optional: MrPeach Pd externals. 32 | 33 | ---- 34 | ## Installation 35 | 36 | ### Linux 37 | `sudo apt-get install puredata pd-aubio pd-cyclone pd-mrpeach` 38 | add /usr/lib/pg/extra/cyclone to your pb library search paths (from pd preferences) 39 | Start Pd with `/usr/bin/pd -rt -oss -audiooutdev "2,3,4,5,6" -outchannels "2,2,2,2,2"`. 40 | 41 | Installing Jack on linux can also be useful for routing audio. 42 | `sudo-apt-get install jackd qjackctl` 43 | 44 | ### Rpi 45 | Follow the Linux installation notes. 46 | Feel free to add additional setup notes in a pull request. :-) 47 | 48 | ### Mac OSX 49 | On mac you need [Pd-vanilla 0.47-1-64bit](https://puredata.info/downloads/pure-data) and [Aubio 0.4](http://aubio.org/pd-aubio/), then it should work out of the box. Later versions should also work. 50 | 51 | __Optional__: You can install the MrPeach externals via: Pd < Help < Find Externals, then type `mr peach` and install it. 52 | 53 | __Hint__: _To get started quickly, use [VLC](http://www.videolan.org/) to play a track and output it trough [SoundFlower](https://github.com/mattingalls/Soundflower) (2ch), then set the Pd sound input to Soundflower accordingly. Alternatively use [Jack OSX](http://www.jackaudio.org/) to route audio._ 54 | 55 | ### Windows 56 | Sorry, windows is yet untested but there's no reason it won't work. 57 | Feel free to add setup notes in a pull request. :-) 58 | 59 | ---- 60 | ## Run 61 | Simply open `karmaSoundAnalyser-PdVanilla.pd` with Pure Data. 62 | You can _right click_ < _open_ each abstraction to see what's happening within. 63 | I recommend reading [the Pd Floss Manuals](http://write.flossmanuals.net/pure-data/introduction2/) if you're not familiar with Pd. ( [French version here](https://www.flossmanualsfr.net/puredata/) ) 64 | 65 | ---- 66 | ## Thanks 67 | - Julien Rancoeur ([Fx23](https://soundcloud.com/fx23) / [ADN](http://artdistorsionsnumeriques.com/) ) 68 | - [François Parra](http://www.autotune.eu/) 69 | - Clément Sablé( [Nëru](https://neru.io/) ) 70 | 71 | ---- 72 | Brewed by [Daan de Lange](http://daandelange.com/) within the [Karma Kusala](http://karma-kusala.com/) lab. 73 | -------------------------------------------------------------------------------- /km_resample_avg.pd: -------------------------------------------------------------------------------- 1 | #N canvas 111 98 875 573 10; 2 | #X obj 230 32 inlet; 3 | #X obj 226 434 outlet; 4 | #X obj 230 253 list append; 5 | #X obj 325 284 metro \$1; 6 | #X obj 262 57 bng 15 250 50 0 empty empty start_emitting 17 7 0 10 7 | -262144 -1 -1; 8 | #X text 39 6 Creation argument sets the maximum sample rate in ms. 9 | ; 10 | #X msg 278 435 stop; 11 | #X obj 226 406 nbx 5 14 -1e+37 1e+37 0 0 empty empty Last_sent_number 12 | 0 -8 0 10 -262144 -1 -1 0.91716 256; 13 | #X obj 388 181 loadbang; 14 | #X obj 388 201 i \$1; 15 | #X floatatom 370 262 5 0 0 1 Current_sample_rate_(ms) - -, f 5; 16 | #X obj 230 329 list length; 17 | #X floatatom 230 357 5 0 0 1 buffer_size - -, f 5; 18 | #X obj 325 307 bng 15 250 50 0 empty empty trigger_output_flush 17 19 | 7 0 10 -262144 -1 -1; 20 | #X obj 325 230 i 1, f 4; 21 | #X obj 341 124 i 0; 22 | #X obj 341 100 bng 15 250 50 0 empty empty stop_emitting 17 7 0 10 23 | -262144 -1 -1; 24 | #X obj 4 283 until; 25 | #X obj 4 338 list split 1; 26 | #X obj 73 362 bang; 27 | #X obj 5 187 i; 28 | #X obj 4 311 list append; 29 | #X obj 4 372 +; 30 | #X obj 256 278 t l; 31 | #X obj 166 182 list; 32 | #X obj 127 314 list length; 33 | #X floatatom 17 214 5 0 0 0 - - -, f 5; 34 | #X obj 4 399 f 0; 35 | #X obj 26 456 /; 36 | #X obj 127 158 t b b; 37 | #X obj 5 426 f 0; 38 | #X obj 262 79 i 1; 39 | #X obj 262 149 spigot 1; 40 | #X obj 307 104 != 1; 41 | #X obj 307 128 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 42 | 1; 43 | #X obj 341 151 spigot 1; 44 | #X obj 29 242 sel 0; 45 | #X obj 46 263 + 1; 46 | #X obj 166 210 t l b; 47 | #X obj 52 433 i; 48 | #X obj 176 246 i 0; 49 | #X obj 5 104 loadbang; 50 | #X obj 88 215 t b; 51 | #X text 207 468 TODO: add max buffer size to trigger flush; 52 | #X obj 5 152 i 1; 53 | #X obj 341 76 loadbang; 54 | #X obj 388 222 sel 0; 55 | #X obj 388 242 i 50; 56 | #X text 419 239 Default sampling rate (ms); 57 | #X obj 379 415 i; 58 | #X obj 417 416 + 1; 59 | #X floatatom 379 438 5 0 0 0 - - -, f 5; 60 | #X obj 336 414 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 61 | -1 -1; 62 | #X floatatom 389 386 5 0 0 0 - - -, f 5; 63 | #X obj 391 366 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 64 | -1 -1; 65 | #X obj 512 403 km_clean_signal; 66 | #X obj 162 386 change 0; 67 | #X obj 396 339 metro 1000; 68 | #X obj 407 318 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 69 | -1 -1; 70 | #X connect 0 0 2 0; 71 | #X connect 0 0 4 0; 72 | #X connect 2 0 11 0; 73 | #X connect 2 0 23 0; 74 | #X connect 2 0 24 1; 75 | #X connect 3 0 13 0; 76 | #X connect 4 0 31 0; 77 | #X connect 7 0 1 0; 78 | #X connect 7 0 6 0; 79 | #X connect 7 0 52 0; 80 | #X connect 8 0 9 0; 81 | #X connect 9 0 46 0; 82 | #X connect 10 0 3 1; 83 | #X connect 11 0 12 0; 84 | #X connect 13 0 29 0; 85 | #X connect 14 0 3 0; 86 | #X connect 14 0 33 0; 87 | #X connect 14 0 35 1; 88 | #X connect 15 0 35 0; 89 | #X connect 16 0 15 0; 90 | #X connect 17 0 21 0; 91 | #X connect 18 0 22 0; 92 | #X connect 18 1 21 1; 93 | #X connect 18 2 19 0; 94 | #X connect 19 0 17 1; 95 | #X connect 19 0 30 0; 96 | #X connect 19 0 39 0; 97 | #X connect 20 0 26 0; 98 | #X connect 20 0 28 1; 99 | #X connect 20 0 36 0; 100 | #X connect 20 0 39 1; 101 | #X connect 21 0 18 0; 102 | #X connect 22 0 27 0; 103 | #X connect 23 0 2 1; 104 | #X connect 24 0 38 0; 105 | #X connect 25 0 20 1; 106 | #X connect 27 0 22 1; 107 | #X connect 27 0 30 1; 108 | #X connect 28 0 56 0; 109 | #X connect 29 0 20 0; 110 | #X connect 29 1 24 0; 111 | #X connect 30 0 28 0; 112 | #X connect 31 0 32 0; 113 | #X connect 32 0 14 0; 114 | #X connect 33 0 34 0; 115 | #X connect 34 0 32 1; 116 | #X connect 35 0 14 0; 117 | #X connect 36 0 42 0; 118 | #X connect 36 1 37 0; 119 | #X connect 37 0 17 0; 120 | #X connect 38 0 25 0; 121 | #X connect 38 0 21 1; 122 | #X connect 38 1 2 1; 123 | #X connect 38 1 15 0; 124 | #X connect 38 1 40 0; 125 | #X connect 40 0 22 1; 126 | #X connect 41 0 44 0; 127 | #X connect 42 0 56 0; 128 | #X connect 42 0 17 1; 129 | #X connect 44 0 20 0; 130 | #X connect 45 0 16 0; 131 | #X connect 46 0 47 0; 132 | #X connect 46 1 10 0; 133 | #X connect 47 0 10 0; 134 | #X connect 49 0 51 0; 135 | #X connect 49 0 50 0; 136 | #X connect 50 0 49 1; 137 | #X connect 52 0 49 0; 138 | #X connect 53 0 49 0; 139 | #X connect 54 0 53 0; 140 | #X connect 56 0 7 0; 141 | #X connect 57 0 54 0; 142 | #X connect 58 0 57 0; 143 | -------------------------------------------------------------------------------- /karmaSoundAnalyser-PdVanilla.pd: -------------------------------------------------------------------------------- 1 | #N canvas 17 22 1299 682 10; 2 | #X obj 245 365 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 3 | 1; 4 | #X text 190 363 (on/off); 5 | #X obj 611 134 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 6 | 1; 7 | #X text 630 133 (on/off); 8 | #X obj 183 348 loadbang; 9 | #X obj 611 111 loadbang; 10 | #X obj 52 392 karmaFiddle; 11 | #X obj 368 160 karmaAubio; 12 | #X obj 54 163 karmaBalance; 13 | #X obj 190 153 karmaAudioOut; 14 | #X obj 826 292 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 15 | -1 -1; 16 | #X obj 291 22 karmaDSP; 17 | #X obj 54 20 cnv 15 220 80 empty empty empty 20 12 0 14 -191407 -66577 18 | 0; 19 | #X text 65 45 Make sure to run this with; 20 | #X text 64 77 Needs pd-Aubio 0.3 or later.; 21 | #X text 64 27 :: karmaSoundAnalyser ::; 22 | #X text 64 61 Pd-Vanilla 0.47-0-64bit or later.; 23 | #X text 936 154 Use either [karmaOSCNative] or [karmaOSCMrPeach]; 24 | #X text 935 183 karmaOSCMrPeach performs better but needs MrPeach libs. 25 | ; 26 | #X obj 822 407 karmaNotes; 27 | #X obj 819 133 karmaMetronom; 28 | #X obj 368 454 km_osc_format /aubio/attack; 29 | #X text 935 169 Note: Also open km_osc_format.pd and change accordingly. 30 | ; 31 | #X obj 93 279 km_osc_format /balance/ampR; 32 | #X obj 54 300 km_osc_format /balance/ampL; 33 | #X obj 132 258 km_osc_format /balance/pan; 34 | #X obj 489 366 km_osc_format /aubio/isQuiet; 35 | #X obj 459 388 km_osc_format /aubio/isPlaying; 36 | #X obj 398 432 km_osc_format /aubio/tempo; 37 | #X obj 428 410 km_osc_format /aubio/tempoAlt; 38 | #X obj 519 345 km_osc_format /aubio/pitch; 39 | #X obj 550 324 km_osc_format /aubio/zcr; 40 | #X obj 611 284 km_osc_format /aubio/steadyState; 41 | #X obj 580 304 km_osc_format /aubio/transients; 42 | #X obj 245 518 km_osc_format /fiddle/silence; 43 | #X obj 206 539 km_osc_format /fiddle/rawAmp; 44 | #X obj 167 561 km_osc_format /fiddle/amp; 45 | #X obj 129 582 km_osc_format /fiddle/rawPitch; 46 | #X obj 90 603 km_osc_format /fiddle/pitch; 47 | #X obj 52 624 km_osc_format /fiddle/attack; 48 | #X obj 894 243 km_osc_format /metronom/BPM; 49 | #X obj 869 267 km_osc_format /metronom/cycles; 50 | #X obj 844 291 km_osc_format /metronom/accent; 51 | #X obj 826 314 km_osc_format /metronom/tick; 52 | #X obj 819 337 km_osc_format /metronom/tickNum; 53 | #X obj 935 28 karmaOSCMrPeach; 54 | #X obj 873 627 km_osc_format /notes/1 \$2 \$3 \$4; 55 | #X obj 54 140 r~ L; 56 | #X obj 132 140 r~ R; 57 | #X obj 190 129 r~ L; 58 | #X obj 265 129 r~ R; 59 | #X obj 367 22 cnv 15 140 80 empty empty empty 20 12 0 14 -191407 -66577 60 | 0; 61 | #X obj 376 47 adc~, f 5; 62 | #X text 376 26 :: AUDIO SOURCE ::; 63 | #X obj 376 78 s~ L; 64 | #X obj 410 78 s~ R; 65 | #X obj 368 137 r~ L; 66 | #X obj 489 137 r~ R; 67 | #X obj 381 324 s aubioTempo; 68 | #X obj 819 106 r aubioTempo; 69 | #X obj 52 364 r~ L; 70 | #X obj 148 365 r~ R; 71 | #X obj 822 380 r~ L; 72 | #X obj 898 381 r~ R; 73 | #X obj 890 605 km_osc_format /notes/2 \$2 \$3 \$4; 74 | #X obj 907 583 km_osc_format /notes/3 \$2 \$3 \$4; 75 | #X obj 924 561 km_osc_format /notes/4 \$2 \$3 \$4; 76 | #X obj 941 539 km_osc_format /notes/5 \$2 \$3 \$4; 77 | #X obj 975 495 km_osc_format /notes/7 \$2 \$3 \$4; 78 | #X obj 958 517 km_osc_format /notes/6 \$2 \$3 \$4; 79 | #X connect 0 0 6 2; 80 | #X connect 2 0 7 2; 81 | #X connect 4 0 0 0; 82 | #X connect 5 0 2 0; 83 | #X connect 6 0 39 0; 84 | #X connect 6 1 38 0; 85 | #X connect 6 2 37 0; 86 | #X connect 6 3 36 0; 87 | #X connect 6 4 35 0; 88 | #X connect 6 5 34 0; 89 | #X connect 7 0 21 0; 90 | #X connect 7 1 28 0; 91 | #X connect 7 1 58 0; 92 | #X connect 7 2 29 0; 93 | #X connect 7 3 27 0; 94 | #X connect 7 4 26 0; 95 | #X connect 7 5 30 0; 96 | #X connect 7 6 31 0; 97 | #X connect 7 7 33 0; 98 | #X connect 7 8 32 0; 99 | #X connect 8 0 24 0; 100 | #X connect 8 1 23 0; 101 | #X connect 8 2 25 0; 102 | #X connect 10 0 43 0; 103 | #X connect 19 3 46 0; 104 | #X connect 19 4 64 0; 105 | #X connect 19 5 65 0; 106 | #X connect 19 6 66 0; 107 | #X connect 19 7 67 0; 108 | #X connect 19 8 69 0; 109 | #X connect 19 9 68 0; 110 | #X connect 20 0 10 0; 111 | #X connect 20 0 44 0; 112 | #X connect 20 1 42 0; 113 | #X connect 20 2 41 0; 114 | #X connect 20 3 40 0; 115 | #X connect 47 0 8 0; 116 | #X connect 48 0 8 1; 117 | #X connect 49 0 9 0; 118 | #X connect 50 0 9 1; 119 | #X connect 52 0 54 0; 120 | #X connect 52 1 55 0; 121 | #X connect 56 0 7 0; 122 | #X connect 57 0 7 1; 123 | #X connect 59 0 20 0; 124 | #X connect 60 0 6 0; 125 | #X connect 61 0 6 1; 126 | #X connect 62 0 19 0; 127 | #X connect 63 0 19 1; 128 | -------------------------------------------------------------------------------- /karmaAubio.pd: -------------------------------------------------------------------------------- 1 | #N canvas 74 22 1248 659 10; 2 | #X obj 39 329 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 3 | -1; 4 | #X obj 555 286 aubiopitch~; 5 | #X obj 555 353 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 6 | -262144 -1 -1 3126 256; 7 | #X obj 128 330 bng 15 50 10 0 empty empty empty 17 7 0 10 -262144 -1 8 | -1; 9 | #X obj 215 331 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 10 | -1 -1; 11 | #X obj 128 286 aubiotempo~ 0.5; 12 | #X text 286 31 Uses lib Aubio to get several MIR information; 13 | #X obj 409 64 inlet~ LeftAudio; 14 | #X obj 521 64 inlet~ RightAudio; 15 | #X obj 324 287 aubioquiet~; 16 | #X obj 686 71 inlet on_off_switch; 17 | #X obj 536 88 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 18 | 1; 19 | #X obj 917 174 aubiotss~; 20 | #X obj 917 259 vsl 15 100 0 1 0 0 empty empty empty 0 -9 0 10 -262144 21 | -1 -1 370 1; 22 | #X obj 917 198 env~; 23 | #X obj 968 259 vsl 15 100 0 1 0 0 empty empty empty 0 -9 0 10 -262144 24 | -1 -1 226 1; 25 | #X obj 968 199 env~; 26 | #X obj 917 151 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 27 | -1 -1 0 0; 28 | #X floatatom 988 166 5 0 0 0 - - -, f 5; 29 | #X text 914 133 Variation Threshold; 30 | #X obj 768 186 aubiozcr~; 31 | #X floatatom 768 238 5 0 0 0 - - -, f 5; 32 | #X obj 40 551 i 0; 33 | #X text 40 463 Reset all values; 34 | #X obj 50 505 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 35 | -1; 36 | #X obj 50 525 delay 1000; 37 | #X obj 40 480 r aubio-off; 38 | #X obj 40 578 s aubio_reset; 39 | #X floatatom 768 309 5 0 0 0 - - -, f 5; 40 | #X obj 734 325 -; 41 | #X obj 734 347 abs; 42 | #X obj 713 431 sqrt; 43 | #X text 12 172 Treshold Tempo; 44 | #X text 13 195 Treshold OnSet; 45 | #X text 775 221 Zcr; 46 | #X text 804 310 Smoothed; 47 | #X obj 771 427 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 48 | -1 -1 967 1; 49 | #X obj 771 448 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 50 | -1 -1 792 1; 51 | #X obj 687 325 hsl 40 15 -0.1 0.1 0 0 empty empty empty -2 -8 0 10 52 | -262144 -1 -1 0 1; 53 | #X floatatom 153 175 5 0 0 0 - - -, f 5; 54 | #X obj 106 175 hsl 40 15 0 4 0 0 empty empty empty -2 -8 0 10 -262144 55 | -1 -1 0 1; 56 | #X floatatom 153 195 5 0 0 0 - - -, f 5; 57 | #X obj 106 196 hsl 40 15 0 2 0 0 empty empty empty -2 -8 0 10 -262144 58 | -1 -1 0 1; 59 | #X floatatom 697 344 5 0 0 0 - - -, f 5; 60 | #X text 101 153 PARAMETERS; 61 | #X text 682 308 Treshold; 62 | #X obj 917 397 -, f 2; 63 | #X obj 768 350 * 5; 64 | #X obj 669 364 -; 65 | #X text 766 463 ZeroCross Variation; 66 | #X obj 713 408 * 2; 67 | #X obj 324 339 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 68 | 1; 69 | #X obj 917 449 sqrt; 70 | #X text 766 477 (~cymbal detection); 71 | #X obj 858 16 aubio; 72 | #X obj 39 284 aubioonset~; 73 | #X obj 409 103 *~; 74 | #X obj 521 110 *~; 75 | #X obj 917 472 sqrt; 76 | #X text 898 13 Loads Aubio lib on misconfigured Pd installations; 77 | #X obj 768 258 km_smooth 10; 78 | #X obj 917 426 km_smooth 30; 79 | #X obj 669 386 km_smooth 3; 80 | #X obj 968 226 dbtorms; 81 | #X text 910 96 Transients are new sounds and unstable ones; 82 | #X obj 917 225 dbtorms; 83 | #X obj 920 541 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 84 | -1 -1 8176 1; 85 | #X obj 564 375 vsl 15 60 0 1200 0 0 empty empty empty 0 -9 0 10 -262144 86 | -1 -1 5900 1; 87 | #X obj 387 309 i 1; 88 | #X obj 324 309 i 0; 89 | #X obj 440 363 == 0; 90 | #X text 900 27 (not to reload the sketch); 91 | #X obj 1 15 cnv 15 248 53 empty empty Settings 18 8 0 14 -191407 -66577 92 | 0; 93 | #X obj 138 382 outlet tempo; 94 | #X obj 221 382 outlet tempoAlt; 95 | #X obj 215 405 s \$0-a-tempoAlt; 96 | #X obj 39 405 s \$0-a-attack; 97 | #X obj 45 383 outlet attack; 98 | #X obj 333 383 outlet isPlaying; 99 | #X text 264 581 Todo: make a list of detected frequencies from aubiopitch? 100 | ; 101 | #X obj 568 472 outlet pitch; 102 | #X obj 555 494 s \$0-a-pitch; 103 | #X obj 555 449 change; 104 | #X obj 128 405 s \$0-a-tempo; 105 | #X obj 325 406 s \$0-a-isPlaying; 106 | #X obj 440 407 s \$0-a-isQuiet; 107 | #X obj 450 384 outlet isQuiet; 108 | #X text 555 518 Max 43 Hz update rate; 109 | #X text 285 16 :: karmaAubio ::; 110 | #X obj 774 395 s \$0-a-zcr; 111 | #X obj 783 372 outlet zcr; 112 | #X obj 768 328 change; 113 | #X text 923 559 (~Sound variation indicator); 114 | #X obj 917 494 max 0; 115 | #X obj 917 517 min 1; 116 | #X obj 917 579 change; 117 | #X obj 1016 396 outlet transients; 118 | #X obj 1052 297 outlet steadyState; 119 | #X obj 1042 275 change; 120 | #X obj 1 68 cnv 15 248 50 empty empty Outlets 18 8 0 14 -162280 -66577 121 | 0; 122 | #X obj 26 103 bng 15 250 50 0 empty \$0-a-tempo Tempo 0 -15 0 8 -262144 123 | -1 -1; 124 | #X obj 56 103 bng 15 250 50 0 empty \$0-a-tempoAlt TempoAlt 0 -7 0 125 | 8 -262144 -1 -1; 126 | #X obj 0 103 bng 15 250 50 0 empty \$0-a-attack Attack 2 -7 0 8 -262144 127 | -1 -1; 128 | #X obj 88 103 tgl 15 0 empty \$0-a-isPlaying isPlaying 0 -15 0 8 -262144 129 | -1 -1 1 1; 130 | #X obj 118 103 tgl 15 0 empty \$0-a-isQuiet isQuiet 0 -7 0 8 -262144 131 | -1 -1 0 1; 132 | #X obj 181 85 vsl 10 30 0 1 0 0 empty \$0-a-zcr Zcr 0 -9 0 8 -262144 133 | -1 -1 283 1; 134 | #X obj 208 85 vsl 10 30 0 1 0 0 empty \$0-a-transients Transients -10 135 | -9 0 8 -262144 -1 -1 1031 1; 136 | #X obj 237 85 vsl 10 30 0 1 0 0 empty \$0-a-steadyState SteadyState 137 | -43 -16 0 8 -262144 -1 -1 382 1; 138 | #X obj 1003 370 change; 139 | #X obj 1003 416 s \$0-a-transients; 140 | #X obj 1042 319 s \$0-a-steadyState; 141 | #X obj 555 329 i; 142 | #X text 580 329 Round; 143 | #X obj 138 104 nbx 4 14 0 1e+37 0 0 empty \$0-a-pitch Pitch 10 -15 144 | 0 8 -262144 -1 -1 3126 256; 145 | #X text 911 116 Steady-state indicates continuous \, similar sounds 146 | ; 147 | #X obj 555 308 km_resample_avg 100; 148 | #X obj 768 284 km_resample_avg 100; 149 | #X obj 1003 347 km_resample_avg 100; 150 | #X obj 1042 253 km_resample_avg 100; 151 | #X connect 0 0 76 0; 152 | #X connect 0 0 77 0; 153 | #X connect 1 0 115 0; 154 | #X connect 2 0 67 0; 155 | #X connect 2 0 82 0; 156 | #X connect 3 0 73 0; 157 | #X connect 3 0 83 0; 158 | #X connect 4 0 74 0; 159 | #X connect 4 0 75 0; 160 | #X connect 5 0 3 0; 161 | #X connect 5 1 4 0; 162 | #X connect 7 0 56 0; 163 | #X connect 8 0 57 0; 164 | #X connect 9 0 69 0; 165 | #X connect 9 1 68 0; 166 | #X connect 10 0 11 0; 167 | #X connect 11 0 56 1; 168 | #X connect 11 0 57 1; 169 | #X connect 12 0 14 0; 170 | #X connect 12 1 16 0; 171 | #X connect 13 0 46 0; 172 | #X connect 14 0 65 0; 173 | #X connect 15 0 46 1; 174 | #X connect 16 0 63 0; 175 | #X connect 17 0 12 1; 176 | #X connect 17 0 18 0; 177 | #X connect 20 0 21 0; 178 | #X connect 21 0 29 1; 179 | #X connect 21 0 60 0; 180 | #X connect 22 0 27 0; 181 | #X connect 24 0 25 0; 182 | #X connect 25 0 22 0; 183 | #X connect 26 0 22 0; 184 | #X connect 26 0 24 0; 185 | #X connect 28 0 29 0; 186 | #X connect 28 0 91 0; 187 | #X connect 29 0 30 0; 188 | #X connect 30 0 48 0; 189 | #X connect 31 0 37 0; 190 | #X connect 38 0 43 0; 191 | #X connect 38 0 48 1; 192 | #X connect 40 0 39 0; 193 | #X connect 40 0 5 1; 194 | #X connect 42 0 41 0; 195 | #X connect 42 0 55 1; 196 | #X connect 46 0 61 0; 197 | #X connect 47 0 36 0; 198 | #X connect 47 0 89 0; 199 | #X connect 47 0 90 0; 200 | #X connect 48 0 62 0; 201 | #X connect 50 0 31 0; 202 | #X connect 51 0 70 0; 203 | #X connect 51 0 78 0; 204 | #X connect 51 0 84 0; 205 | #X connect 52 0 58 0; 206 | #X connect 55 0 0 0; 207 | #X connect 56 0 55 0; 208 | #X connect 56 0 5 0; 209 | #X connect 56 0 9 0; 210 | #X connect 56 0 20 0; 211 | #X connect 56 0 12 0; 212 | #X connect 56 0 1 0; 213 | #X connect 57 0 55 0; 214 | #X connect 57 0 5 0; 215 | #X connect 57 0 1 0; 216 | #X connect 57 0 20 0; 217 | #X connect 57 0 12 0; 218 | #X connect 57 0 9 0; 219 | #X connect 58 0 93 0; 220 | #X connect 60 0 116 0; 221 | #X connect 61 0 52 0; 222 | #X connect 62 0 50 0; 223 | #X connect 63 0 15 0; 224 | #X connect 63 0 118 0; 225 | #X connect 65 0 13 0; 226 | #X connect 65 0 117 0; 227 | #X connect 66 0 95 0; 228 | #X connect 68 0 51 0; 229 | #X connect 69 0 51 0; 230 | #X connect 70 0 85 0; 231 | #X connect 70 0 86 0; 232 | #X connect 82 0 81 0; 233 | #X connect 82 0 80 0; 234 | #X connect 91 0 47 0; 235 | #X connect 93 0 94 0; 236 | #X connect 94 0 66 0; 237 | #X connect 98 0 97 0; 238 | #X connect 98 0 110 0; 239 | #X connect 108 0 96 0; 240 | #X connect 108 0 109 0; 241 | #X connect 111 0 2 0; 242 | #X connect 115 0 111 0; 243 | #X connect 116 0 28 0; 244 | #X connect 117 0 108 0; 245 | #X connect 118 0 98 0; 246 | #X coords 0 -1 1 1 250 120 1 0 0; 247 | -------------------------------------------------------------------------------- /karmaFiddle.pd: -------------------------------------------------------------------------------- 1 | #N canvas 0 22 1223 669 10; 2 | #X obj 367 252 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 3 | -262144 -1 -1 0 256; 4 | #X obj 422 402 unpack; 5 | #X obj 422 437 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 6 | -262144 -1 -1 0 256; 7 | #X obj 555 419 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 8 | -262144 -1 -1 0 256; 9 | #X obj 422 461 route 0; 10 | #X obj 450 241 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 11 | -262144 -1 -1 0 256; 12 | #X obj 691 433 > 50; 13 | #X obj 691 456 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 14 | 1; 15 | #X obj 691 476 sel 1 0; 16 | #X obj 691 501 timer; 17 | #X floatatom 691 527 5 0 0 0 - - -, f 5; 18 | #X obj 691 593 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 19 | 1; 20 | #X text 352 302 Attack; 21 | #X text 479 438 Raw Pitch; 22 | #X text 554 402 Raw Amplitude; 23 | #X text 105 199 1024 = FFT window size; 24 | #X msg 108 221 npoints 1024; 25 | #X msg 108 247 npoints 2048; 26 | #X obj 691 549 > 2000; 27 | #X text 260 34 Uses the fiddle object to extract FFT and some other 28 | information.; 29 | #X obj 830 559 unpack; 30 | #X obj 830 582 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 31 | -262144 -1 -1 0 256; 32 | #X obj 863 582 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 33 | -262144 -1 -1 0 256; 34 | #X obj 845 480 unpack; 35 | #X text 827 43 5 EQUALIZER BANDS WITH THEIR PITCH (Hz) AND AMPLITUDE 36 | (rms); 37 | #X obj 845 500 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 38 | -262144 -1 -1 0 256; 39 | #X obj 878 500 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 40 | -262144 -1 -1 0 256; 41 | #X obj 861 401 unpack; 42 | #X obj 861 421 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 43 | -262144 -1 -1 0 256; 44 | #X obj 894 421 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 45 | -262144 -1 -1 0 256; 46 | #X obj 877 322 unpack; 47 | #X obj 877 342 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 48 | -262144 -1 -1 0 256; 49 | #X obj 910 342 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 50 | -262144 -1 -1 0 256; 51 | #X obj 893 244 unpack; 52 | #X obj 893 264 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 53 | -262144 -1 -1 0 256; 54 | #X obj 926 264 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 55 | -262144 -1 -1 0 256; 56 | #X obj 260 89 inlet~ LeftAudio; 57 | #X obj 367 89 inlet~ RightAudio; 58 | #X text 500 639 (potentially end of track/set); 59 | #X text 737 548 ms; 60 | #X obj 830 619 s fft1p; 61 | #X obj 863 599 s fft1a; 62 | #X obj 878 516 s fft2a; 63 | #X obj 861 457 s fft3p; 64 | #X obj 894 438 s fft3a; 65 | #X obj 877 378 s fft4p; 66 | #X obj 910 359 s fft4a; 67 | #X obj 893 300 s fft5p; 68 | #X obj 926 281 s fft5a; 69 | #X text 289 251 Cooked Pitch; 70 | #X text 507 241 Amplitude (db); 71 | #X obj 909 165 unpack; 72 | #X obj 909 185 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 73 | -262144 -1 -1 0 256; 74 | #X obj 942 185 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 75 | -262144 -1 -1 0 256; 76 | #X obj 942 202 s fft6a; 77 | #X obj 909 221 s fft6p; 78 | #X obj 925 87 unpack; 79 | #X obj 925 107 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 80 | -262144 -1 -1 0 256; 81 | #X obj 958 107 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 82 | -262144 -1 -1 0 256; 83 | #X obj 830 63 route 1 2 3 4 5 6 7; 84 | #X obj 367 218 fiddle~ 1024 1 50 7; 85 | #X obj 925 143 s fft7p; 86 | #X obj 958 124 s fft7a; 87 | #X obj 845 535 s fft2p; 88 | #X obj 480 89 inlet on_off_switch; 89 | #X obj 480 119 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 90 | 1; 91 | #X obj 394 302 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 92 | -1 -1; 93 | #X obj 25 437 r karma-fiddle-off; 94 | #X obj 480 147 s karma-fiddle-off; 95 | #X obj 25 503 i 0; 96 | #X text 25 420 Reset all values; 97 | #X obj 25 460 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 98 | -1; 99 | #X obj 25 528 s fiddler_reset; 100 | #X obj 1017 90 r fiddler_reset; 101 | #X obj 1002 168 r fiddler_reset; 102 | #X obj 989 247 r fiddler_reset; 103 | #X obj 974 325 r fiddler_reset; 104 | #X obj 956 404 r fiddler_reset; 105 | #X obj 941 483 r fiddler_reset; 106 | #X obj 932 565 r fiddler_reset; 107 | #X msg 439 171 auto \$1; 108 | #X obj 25 480 delay 50; 109 | #X text 27 551 TODO; 110 | #X text 25 565 http://stackoverflow.com/questions/20408388/how-to-filter-fft-data-for-audio-visualisation 111 | , f 41; 112 | #X obj 260 164 *~ 1; 113 | #X obj 367 164 *~ 1; 114 | #X text 260 13 :: karmaFiddle ::; 115 | #X text 726 434 Treshold; 116 | #X obj 21 95 cnv 15 198 88 empty empty empty 20 12 0 14 -191407 -66577 117 | 0; 118 | #X obj 422 488 km_resample_avg 150; 119 | #X text 470 625 Silence detects 2 sec non-variation; 120 | #X obj 326 341 s \$0-f-attack; 121 | #X obj 326 364 outlet attack; 122 | #X obj 21 168 bng 15 250 50 0 empty \$0-f-attack Attack 0 -7 0 8 -262144 123 | -1 -1; 124 | #X obj 56 169 nbx 4 14 0 1e+37 0 0 empty \$0-f-pitch Pitch 0 -8 0 8 125 | -262144 -1 -1 0 256; 126 | #X text 486 514 Round INT; 127 | #X obj 422 536 change; 128 | #X obj 555 509 change; 129 | #X obj 248 311 s \$0-f-pitch; 130 | #X obj 241 334 outlet pitch; 131 | #X obj 241 288 change; 132 | #X obj 429 559 s \$0-f-pitchRaw; 133 | #X obj 422 582 outlet pitchRaw; 134 | #X obj 555 440 km_resample_avg 150; 135 | #X obj 140 155 vsl 8 25 0 1 0 0 empty \$0-f-amp Amplitude 0 -7 0 8 136 | -262144 -1 -1 0 1; 137 | #X obj 555 464 dbtorms; 138 | #X obj 555 486 min 1; 139 | #X text 693 413 Silence; 140 | #X obj 96 169 nbx 4 14 0 1e+37 0 0 empty \$0-f-pitchRaw RawPitch 0 141 | -8 0 8 -262144 -1 -1 0 256; 142 | #X obj 422 513 expr $i1; 143 | #X obj 241 266 expr $i1; 144 | #X obj 699 614 s \$0-f-silence; 145 | #X obj 203 168 tgl 15 0 empty \$0-f-silence Silence -17 -7 0 8 -262144 146 | -1 -1 0 1; 147 | #X obj 691 636 outlet silence; 148 | #X obj 691 571 change; 149 | #X obj 450 280 dbtorms; 150 | #X obj 450 259 km_resample_avg 150; 151 | #X obj 450 323 change; 152 | #X obj 458 345 s \$0-f-amp; 153 | #X obj 450 302 min 1; 154 | #X obj 450 367 outlet amplitude; 155 | #X obj 555 552 outlet amplitudeRaw; 156 | #X obj 562 530 s \$0-f-ampRaw; 157 | #X obj 172 155 vsl 8 25 0 1 0 0 empty \$0-f-ampRaw RawAmplitude 0 -15 158 | 0 8 -262144 -1 -1 0 1; 159 | #X connect 0 0 110 0; 160 | #X connect 1 0 2 0; 161 | #X connect 1 1 3 0; 162 | #X connect 2 0 4 0; 163 | #X connect 3 0 103 0; 164 | #X connect 3 0 6 0; 165 | #X connect 4 1 89 0; 166 | #X connect 5 0 116 0; 167 | #X connect 6 0 7 0; 168 | #X connect 7 0 8 0; 169 | #X connect 8 0 9 0; 170 | #X connect 8 1 9 1; 171 | #X connect 9 0 10 0; 172 | #X connect 10 0 18 0; 173 | #X connect 11 0 111 0; 174 | #X connect 11 0 113 0; 175 | #X connect 16 0 60 0; 176 | #X connect 17 0 60 0; 177 | #X connect 18 0 114 0; 178 | #X connect 20 0 21 0; 179 | #X connect 20 1 22 0; 180 | #X connect 21 0 40 0; 181 | #X connect 22 0 41 0; 182 | #X connect 23 0 25 0; 183 | #X connect 23 1 26 0; 184 | #X connect 25 0 63 0; 185 | #X connect 26 0 42 0; 186 | #X connect 27 0 28 0; 187 | #X connect 27 1 29 0; 188 | #X connect 28 0 43 0; 189 | #X connect 29 0 44 0; 190 | #X connect 30 0 31 0; 191 | #X connect 30 1 32 0; 192 | #X connect 31 0 45 0; 193 | #X connect 32 0 46 0; 194 | #X connect 33 0 34 0; 195 | #X connect 33 1 35 0; 196 | #X connect 34 0 47 0; 197 | #X connect 35 0 48 0; 198 | #X connect 36 0 84 0; 199 | #X connect 37 0 85 0; 200 | #X connect 51 0 52 0; 201 | #X connect 51 1 53 0; 202 | #X connect 52 0 55 0; 203 | #X connect 53 0 54 0; 204 | #X connect 56 0 57 0; 205 | #X connect 56 1 58 0; 206 | #X connect 57 0 61 0; 207 | #X connect 58 0 62 0; 208 | #X connect 59 0 20 0; 209 | #X connect 59 1 23 0; 210 | #X connect 59 2 27 0; 211 | #X connect 59 3 30 0; 212 | #X connect 59 4 33 0; 213 | #X connect 59 5 51 0; 214 | #X connect 59 6 56 0; 215 | #X connect 60 0 0 0; 216 | #X connect 60 1 66 0; 217 | #X connect 60 2 1 0; 218 | #X connect 60 3 5 0; 219 | #X connect 60 4 59 0; 220 | #X connect 64 0 65 0; 221 | #X connect 65 0 68 0; 222 | #X connect 65 0 80 0; 223 | #X connect 65 0 84 1; 224 | #X connect 65 0 85 1; 225 | #X connect 66 0 91 0; 226 | #X connect 66 0 92 0; 227 | #X connect 67 0 71 0; 228 | #X connect 69 0 72 0; 229 | #X connect 71 0 81 0; 230 | #X connect 73 0 58 0; 231 | #X connect 73 0 57 0; 232 | #X connect 74 0 53 0; 233 | #X connect 74 0 52 0; 234 | #X connect 75 0 35 0; 235 | #X connect 75 0 34 0; 236 | #X connect 76 0 32 0; 237 | #X connect 76 0 31 0; 238 | #X connect 77 0 29 0; 239 | #X connect 77 0 28 0; 240 | #X connect 78 0 26 0; 241 | #X connect 78 0 25 0; 242 | #X connect 79 0 22 0; 243 | #X connect 79 0 21 0; 244 | #X connect 80 0 60 0; 245 | #X connect 81 0 69 0; 246 | #X connect 84 0 60 0; 247 | #X connect 85 0 60 0; 248 | #X connect 89 0 109 0; 249 | #X connect 96 0 101 0; 250 | #X connect 96 0 102 0; 251 | #X connect 97 0 121 0; 252 | #X connect 97 0 122 0; 253 | #X connect 100 0 99 0; 254 | #X connect 100 0 98 0; 255 | #X connect 103 0 105 0; 256 | #X connect 105 0 106 0; 257 | #X connect 106 0 97 0; 258 | #X connect 109 0 96 0; 259 | #X connect 110 0 100 0; 260 | #X connect 114 0 11 0; 261 | #X connect 115 0 119 0; 262 | #X connect 116 0 115 0; 263 | #X connect 117 0 118 0; 264 | #X connect 117 0 120 0; 265 | #X connect 119 0 117 0; 266 | #X coords 0 -1 1 1 200 105 1 20 80; 267 | -------------------------------------------------------------------------------- /depreciated/karmaSoundAnalyser.pd: -------------------------------------------------------------------------------- 1 | #N canvas -1219 -10 1254 676 10; 2 | #X declare -lib mrpeach; 3 | #X obj 17 272 adc~; 4 | #X msg 159 566 disconnect; 5 | #X msg 159 489 typetags 1; 6 | #X msg 159 513 typetags 0; 7 | #X obj -48 152 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 8 | 1; 9 | #X obj -63 289 *~; 10 | #X obj -63 337 dac~; 11 | #X obj 88 484 loadbang; 12 | #X obj 18 25 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 13 | -1; 14 | #X msg 18 63 \; pd dsp 1; 15 | #X msg -49 64 \; pd dsp 0; 16 | #X obj -49 27 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 17 | -1; 18 | #X text -51 -6 Turn On/Off Pd.DSP; 19 | #N canvas 295 23 898 653 karmaFiddle 0; 20 | #X obj -1170 289 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 21 | 10 -262144 -1 -1 0 256; 22 | #X obj -1115 319 unpack; 23 | #X obj -1115 354 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 24 | 10 -262144 -1 -1 0 256; 25 | #X obj -1042 336 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 26 | 10 -262144 -1 -1 0 256; 27 | #X obj -1115 378 route 0; 28 | #X obj -1087 278 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 29 | 10 -262144 -1 -1 0 256; 30 | #X obj -1042 391 > 50; 31 | #X obj -1042 421 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 32 | 0 1; 33 | #X obj -1042 441 sel 1 0; 34 | #X obj -1042 471 timer; 35 | #X floatatom -1041 502 5 0 0 0 - - -; 36 | #X obj -1041 554 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 37 | 1 1; 38 | #X text -1185 339 Attack; 39 | #X obj -1114 409 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 40 | 10 -262144 -1 -1 0 256; 41 | #X text -1173 408 Raw Pitch; 42 | #X text -1043 319 Raw Amplitude; 43 | #X text -1093 107 1024 = FFT window size; 44 | #X msg -1090 129 npoints 1024; 45 | #X msg -1090 155 npoints 2048; 46 | #X obj -1041 524 > 2000; 47 | #X obj -1041 580 s silence; 48 | #X text -1306 34 Uses the fiddle object to extract FFT and some other 49 | information.; 50 | #X obj -897 556 unpack; 51 | #X obj -897 579 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 52 | 10 -262144 -1 -1 0 256; 53 | #X obj -864 579 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 54 | 10 -262144 -1 -1 0 256; 55 | #X obj -882 477 unpack; 56 | #X text -899 34 5 EQUALIZER BANDS WITH THEIR PITCH (Hz) AND AMPLITUDE 57 | (rms); 58 | #X obj -882 497 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 59 | 10 -262144 -1 -1 0 256; 60 | #X obj -849 497 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 61 | 10 -262144 -1 -1 0 256; 62 | #X obj -866 398 unpack; 63 | #X obj -866 418 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 64 | 10 -262144 -1 -1 0 256; 65 | #X obj -833 418 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 66 | 10 -262144 -1 -1 0 256; 67 | #X obj -850 319 unpack; 68 | #X obj -850 339 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 69 | 10 -262144 -1 -1 0 256; 70 | #X obj -817 339 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 71 | 10 -262144 -1 -1 0 256; 72 | #X obj -834 241 unpack; 73 | #X obj -834 261 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 74 | 10 -262144 -1 -1 0 256; 75 | #X obj -801 261 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 76 | 10 -262144 -1 -1 0 256; 77 | #X obj -1307 214 inlet~ LeftAudio; 78 | #X obj -1300 238 inlet~ RightAudio; 79 | #X text -1250 524 Bang Detects 2 sec non-variation; 80 | #X text -1252 538 (potentially end of track/set); 81 | #X text -996 523 ms; 82 | #X obj -1241 307 s fiddle_pitch; 83 | #X obj -897 616 s fft1p; 84 | #X obj -864 596 s fft1a; 85 | #X obj -849 513 s fft2a; 86 | #X obj -866 454 s fft3p; 87 | #X obj -833 435 s fft3a; 88 | #X obj -850 375 s fft4p; 89 | #X obj -817 356 s fft4a; 90 | #X obj -834 297 s fft5p; 91 | #X obj -801 278 s fft5a; 92 | #X text -1247 288 Cooked Pitch; 93 | #X text -1030 278 Amplitude (db); 94 | #X obj -818 162 unpack; 95 | #X obj -818 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 96 | 10 -262144 -1 -1 0 256; 97 | #X obj -785 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 98 | 10 -262144 -1 -1 0 256; 99 | #X obj -785 199 s fft6a; 100 | #X obj -818 218 s fft6p; 101 | #X obj -802 84 unpack; 102 | #X obj -802 104 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 103 | 10 -262144 -1 -1 0 256; 104 | #X obj -769 104 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 105 | 10 -262144 -1 -1 0 256; 106 | #X obj -897 60 route 1 2 3 4 5 6 7; 107 | #X obj -1170 255 fiddle~ 1024 1 50 7; 108 | #X obj -802 140 s fft7p; 109 | #X obj -769 121 s fft7a; 110 | #X obj -882 532 s fft2p; 111 | #X obj -1031 358 s fiddle_raw_amp; 112 | #X obj -1087 296 s fiddle_amp; 113 | #X obj -1282 109 inlet on_off_switch; 114 | #X obj -1303 114 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 115 | 1 1; 116 | #X obj -1300 266 spigot~; 117 | #X obj -1171 231 spigot~; 118 | #X obj -1171 430 s fiddle_raw_pitch; 119 | #X obj -1222 361 s fiddle_attack; 120 | #X obj -1143 339 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 121 | -1 -1; 122 | #X obj -1260 173 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 123 | -1 -1; 124 | #X obj -1257 129 route 0 1; 125 | #X obj -1235 173 i 1; 126 | #X obj -646 479 r karma-fiddle-off; 127 | #X obj -1365 188 s karma-fiddle-off; 128 | #X obj -646 545 i 0; 129 | #X text -646 462 Reset all values; 130 | #X obj -639 502 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 131 | -1 -1; 132 | #X obj -1188 166 i 0; 133 | #X obj -646 570 s fiddler_reset; 134 | #X obj -710 87 r fiddler_reset; 135 | #X obj -725 165 r fiddler_reset; 136 | #X obj -738 244 r fiddler_reset; 137 | #X obj -753 322 r fiddler_reset; 138 | #X obj -771 401 r fiddler_reset; 139 | #X obj -786 480 r fiddler_reset; 140 | #X obj -795 562 r fiddler_reset; 141 | #X obj -1029 261 r fiddler_reset; 142 | #X obj -1283 393 r fiddler_reset; 143 | #X msg -1188 191 auto \$1; 144 | #X obj -639 522 delay 50; 145 | #X floatatom -581 62 5 0 0 0 Sending_Freq_(ms) - -; 146 | #X obj -558 111 loadbang; 147 | #X obj -558 131 i 1; 148 | #X obj -605 200 i; 149 | #X obj -567 201 + 1; 150 | #X floatatom -605 223 5 0 0 0 - - -; 151 | #X obj -604 152 OSCCleanFloat 100; 152 | #X obj -590 177 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 153 | -1 -1; 154 | #X connect 0 0 43 0; 155 | #X connect 1 0 2 0; 156 | #X connect 1 1 3 0; 157 | #X connect 2 0 4 0; 158 | #X connect 3 0 6 0; 159 | #X connect 3 0 68 0; 160 | #X connect 4 1 13 0; 161 | #X connect 5 0 69 0; 162 | #X connect 6 0 7 0; 163 | #X connect 7 0 8 0; 164 | #X connect 8 0 9 0; 165 | #X connect 8 1 9 1; 166 | #X connect 9 0 10 0; 167 | #X connect 10 0 19 0; 168 | #X connect 11 0 20 0; 169 | #X connect 13 0 74 0; 170 | #X connect 17 0 64 0; 171 | #X connect 18 0 64 0; 172 | #X connect 19 0 11 0; 173 | #X connect 22 0 23 0; 174 | #X connect 22 1 24 0; 175 | #X connect 23 0 44 0; 176 | #X connect 24 0 45 0; 177 | #X connect 25 0 27 0; 178 | #X connect 25 1 28 0; 179 | #X connect 27 0 67 0; 180 | #X connect 28 0 46 0; 181 | #X connect 29 0 30 0; 182 | #X connect 29 1 31 0; 183 | #X connect 30 0 47 0; 184 | #X connect 31 0 48 0; 185 | #X connect 32 0 33 0; 186 | #X connect 32 1 34 0; 187 | #X connect 33 0 49 0; 188 | #X connect 34 0 50 0; 189 | #X connect 35 0 36 0; 190 | #X connect 35 1 37 0; 191 | #X connect 36 0 51 0; 192 | #X connect 37 0 52 0; 193 | #X connect 38 0 73 0; 194 | #X connect 39 0 72 0; 195 | #X connect 55 0 56 0; 196 | #X connect 55 1 57 0; 197 | #X connect 56 0 59 0; 198 | #X connect 57 0 58 0; 199 | #X connect 60 0 61 0; 200 | #X connect 60 1 62 0; 201 | #X connect 61 0 65 0; 202 | #X connect 61 0 104 0; 203 | #X connect 62 0 66 0; 204 | #X connect 63 0 22 0; 205 | #X connect 63 1 25 0; 206 | #X connect 63 2 29 0; 207 | #X connect 63 3 32 0; 208 | #X connect 63 4 35 0; 209 | #X connect 63 5 55 0; 210 | #X connect 63 6 60 0; 211 | #X connect 64 0 0 0; 212 | #X connect 64 1 75 0; 213 | #X connect 64 1 76 0; 214 | #X connect 64 2 1 0; 215 | #X connect 64 3 5 0; 216 | #X connect 64 4 63 0; 217 | #X connect 70 0 71 0; 218 | #X connect 71 0 78 0; 219 | #X connect 72 1 64 0; 220 | #X connect 73 1 64 0; 221 | #X connect 77 0 81 0; 222 | #X connect 78 0 77 0; 223 | #X connect 78 0 85 0; 224 | #X connect 78 1 79 0; 225 | #X connect 79 0 73 1; 226 | #X connect 79 0 72 1; 227 | #X connect 79 0 96 0; 228 | #X connect 80 0 82 0; 229 | #X connect 80 0 84 0; 230 | #X connect 82 0 86 0; 231 | #X connect 84 0 97 0; 232 | #X connect 85 0 73 1; 233 | #X connect 85 0 72 1; 234 | #X connect 85 0 96 0; 235 | #X connect 87 0 62 0; 236 | #X connect 87 0 61 0; 237 | #X connect 88 0 57 0; 238 | #X connect 88 0 56 0; 239 | #X connect 89 0 37 0; 240 | #X connect 89 0 36 0; 241 | #X connect 90 0 34 0; 242 | #X connect 90 0 33 0; 243 | #X connect 91 0 31 0; 244 | #X connect 91 0 30 0; 245 | #X connect 92 0 28 0; 246 | #X connect 92 0 27 0; 247 | #X connect 93 0 24 0; 248 | #X connect 93 0 23 0; 249 | #X connect 94 0 5 0; 250 | #X connect 94 0 3 0; 251 | #X connect 95 0 13 0; 252 | #X connect 95 0 0 0; 253 | #X connect 96 0 64 0; 254 | #X connect 97 0 82 0; 255 | #X connect 99 0 100 0; 256 | #X connect 100 0 104 1; 257 | #X connect 101 0 103 0; 258 | #X connect 101 0 102 0; 259 | #X connect 102 0 101 1; 260 | #X connect 104 0 105 0; 261 | #X connect 105 0 101 0; 262 | #X restore 157 289 pd karmaFiddle; 263 | #X text 89 458 OSC SERVER CONFIGURATION; 264 | #X text -67 458 OSC ROUTING; 265 | #X obj 989 133 s osc_output; 266 | #X obj 989 154 s osc_output; 267 | #X obj 989 177 s osc_output; 268 | #X obj 988 222 s osc_output; 269 | #X obj 988 198 s osc_output; 270 | #X obj 989 243 s osc_output; 271 | #X obj 988 267 s osc_output; 272 | #X obj 988 288 s osc_output; 273 | #X obj 988 312 s osc_output; 274 | #X obj 988 333 s osc_output; 275 | #X floatatom 741 116 5 0 0 0 - - -; 276 | #X floatatom 740 137 5 0 0 0 - - -; 277 | #X floatatom 740 160 5 0 0 0 - - -; 278 | #X floatatom 740 181 5 0 0 0 - - -; 279 | #X floatatom 739 205 5 0 0 0 - - -; 280 | #X floatatom 739 226 5 0 0 0 - - -; 281 | #X floatatom 739 250 5 0 0 0 - - -; 282 | #X floatatom 739 271 5 0 0 0 - - -; 283 | #X floatatom 740 295 5 0 0 0 - - -; 284 | #X floatatom 741 316 5 0 0 0 - - -; 285 | #X msg 776 205 send /fiddle_fft/band3/pitch \$0; 286 | #X msg 776 226 send /fiddle_fft/band3/rms \$0; 287 | #X msg 776 250 send /fiddle_fft/band4/pitch \$0; 288 | #X msg 776 271 send /fiddle_fft/band4/rms \$0; 289 | #X msg 776 295 send /fiddle_fft/band5/rms \$0; 290 | #X msg 776 316 send /fiddle_fft/band5/pitch \$0; 291 | #X msg 777 160 send /fiddle_fft/band2/rms \$0; 292 | #X msg 776 181 send /fiddle_fft/band2/pitch \$0; 293 | #X msg 776 137 send /fiddle_fft/band1/rms \$0; 294 | #X msg 776 116 send /fiddle_fft/band1/pitch \$0; 295 | #X obj 689 581 s osc_output; 296 | #X obj -45 191 hsl 100 15 0 1 0 0 0 ¸áÿ¿» 0 0 0 0 4 -262144 -1 297 | -1 0 0; 298 | #X obj 689 407 r silence; 299 | #X obj 689 299 r fft5p; 300 | #X obj 689 278 r fft5a; 301 | #X obj 689 254 r fft4p; 302 | #X obj 689 233 r fft4a; 303 | #X obj 689 209 r fft3p; 304 | #X obj 689 188 r fft3a; 305 | #X obj 689 164 r fft2p; 306 | #X obj 689 143 r fft2a; 307 | #X obj 690 120 r fft1p; 308 | #X obj 690 99 r fft1a; 309 | #X text 296 2 ROUTING; 310 | #X text 297 17 - - - - - - - - - - - - - - - - - - - - - - - - - - 311 | - - - -; 312 | #X text -68 467 - - - - - - - - - - - - - - - - - - - - - - - - - - 313 | ; 314 | #X text 657 17 - - - - - - - - - - - - - - - - - - - - - - - - - - 315 | - - - -; 316 | #X obj 751 407 r fiddle_pitch; 317 | #X obj 958 407 r fiddle_attack; 318 | #X obj 958 494 r fiddle_amp; 319 | #X obj 238 251 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 320 | 1; 321 | #X text 183 249 (on/off); 322 | #X obj 697 429 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 323 | 1; 324 | #X floatatom 757 428 5 0 0 0 - - -; 325 | #X obj 842 407 r fiddle_raw_pitch; 326 | #X floatatom 849 428 5 0 0 0 - - -; 327 | #X floatatom 922 515 5 0 0 0 - - -; 328 | #X floatatom 919 562 5 0 0 0 - - -; 329 | #X obj 965 429 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 330 | -1 -1; 331 | #X obj 1058 429 i; 332 | #X obj 1089 429 + 1; 333 | #X floatatom 1023 446 5 0 0 0 - - -; 334 | #X msg 434 265 send /aubioOnSet; 335 | #X msg 434 219 send /aubioTempo; 336 | #X obj 298 109 r aubio_pitch; 337 | #X obj 298 132 r aubio_quiet; 338 | #X obj 957 542 r fiddle_raw_amp; 339 | #X msg 751 469 send /fiddlePitch \$0; 340 | #X obj 61 318 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 341 | 1; 342 | #X text 80 317 (on/off); 343 | #X obj 414 149 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 344 | 1; 345 | #X obj 298 179 r aubio_tempo_bis; 346 | #X obj 416 196 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 347 | -1 -1; 348 | #X obj 298 225 r aubio_bpm; 349 | #X floatatom 399 242 5 0 0 0 - - -; 350 | #X obj 298 202 r aubio_tempo; 351 | #X obj 416 219 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 352 | -1 -1; 353 | #X obj 298 248 r aubio_onset; 354 | #X obj 416 265 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 355 | -1 -1; 356 | #X floatatom -38 213 5 0 0 0 - - -; 357 | #X floatatom 398 287 5 0 0 0 - - -; 358 | #X obj 297 270 r aubio_zcr; 359 | #X text 296 28 All analysed data is routed to OSC messages in this 360 | section; 361 | #X text 688 77 FIDDLE FFT ROUTING; 362 | #X text 688 385 FIDDLE :: [pitch \, attack \, silence \, amplitude] 363 | ROUTING; 364 | #X text 296 81 :: LIB AUBIO ROUTING ::; 365 | #X text -51 132 SOUND OUTPUT; 366 | #X text -26 172 Volume; 367 | #X text -26 151 On/Off; 368 | #X text 17 251 AUDIO SOURCE; 369 | #X obj 583 166 s osc_output; 370 | #X obj 583 282 s osc_output; 371 | #X msg 434 196 send /aubioTempoBis; 372 | #X obj 583 236 s osc_output; 373 | #X msg 433 287 send /aubioZcr \$1; 374 | #X msg 433 149 send /aubioQuiet \$1; 375 | #X msg 433 126 send /aubioPitch \$1; 376 | #X msg 958 515 send /fiddleAmp \$1; 377 | #X msg 957 562 send /fiddleRawAmp \$1; 378 | #X msg 842 448 send /fiddleRawPitch \$1; 379 | #X msg 689 448 send /fiddleSilence \$1; 380 | #X obj 176 234 loadbang; 381 | #X obj -67 628 import mrpeach; 382 | #X msg 88 540 connect localhost 12000; 383 | #X msg 958 468 send /fiddleAttack; 384 | #X obj -67 605 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 385 | 1; 386 | #X obj -67 540 spigot; 387 | #X text 25 601 Alternatively \, you can use UDPsend; 388 | #X text 26 617 with packOSC instead of sendOSC; 389 | #X text -46 604 UDP State; 390 | #X text 82 336 LIB AUBIO ANALYSIS; 391 | #X text 116 269 FFT & MORE ANALYSIS; 392 | #X obj 61 295 loadbang; 393 | #X text 25 632 http://en.flossmanuals.net/pure-data/ch065_osc/; 394 | #N canvas 178 23 997 667 aubio 0; 395 | #X obj 41 161 aubioonset~; 396 | #X obj 41 196 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 397 | -1; 398 | #X obj 462 164 aubiopitch~; 399 | #X obj 462 211 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 400 | -262144 -1 -1 0 256; 401 | #X obj 130 197 bng 15 50 10 0 empty empty empty 17 7 0 10 -262144 -1 402 | -1; 403 | #X obj 217 198 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 404 | -1 -1; 405 | #X obj 130 163 aubiotempo~ 0.5; 406 | #X obj 322 348 i; 407 | #X obj 360 349 + 1; 408 | #X floatatom 322 378 5 0 0 0 - - -; 409 | #X obj 158 339 alternate; 410 | #X obj 158 369 timer; 411 | #X floatatom 158 395 5 0 0 0 - - -; 412 | #X floatatom 158 520 5 0 0 0 - - -; 413 | #X obj 158 422 expr ($i1 / 6) * 2; 414 | #X obj 158 479 hid/hid_average; 415 | #X floatatom 245 451 5 0 0 0 - - -; 416 | #X floatatom 158 451 5 0 0 0 - - -; 417 | #X floatatom 322 453 5 0 0 0 - - -; 418 | #X floatatom 345 474 5 0 0 0 - - -; 419 | #X floatatom 368 454 5 0 0 0 - - -; 420 | #N canvas 837 96 511 413 timer_utility 0; 421 | #X obj 101 28 inlet; 422 | #X obj 101 377 outlet; 423 | #X obj 160 28 inlet; 424 | #X obj 394 185 sel 0; 425 | #X obj 393 215 0; 426 | #X obj 356 239 metro 1000; 427 | #X obj 101 181 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 428 | -1 -1; 429 | #X obj 101 206 i; 430 | #X obj 143 207 + 1; 431 | #X obj 101 242 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 432 | -262144 -1 -1 0 256; 433 | #X obj 101 322 div 4; 434 | #X obj 101 348 + 1; 435 | #X obj 199 350 + 1; 436 | #X obj 191 376 outlet; 437 | #X obj 215 101 expr ($i1 * 60) / 1000; 438 | #X obj 215 29 inlet; 439 | #X obj 215 132 outlet; 440 | #X obj 237 233 inlet; 441 | #X obj 236 264 t t f; 442 | #X obj 192 322 mod 4; 443 | #X obj 275 378 outlet; 444 | #X obj 349 380 outlet; 445 | #X obj 276 324 div 60; 446 | #X obj 350 326 mod 60; 447 | #X obj 356 155 t f f; 448 | #X obj 355 124 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 449 | -1 -1; 450 | #X connect 0 0 6 0; 451 | #X connect 3 0 4 0; 452 | #X connect 5 0 22 0; 453 | #X connect 5 0 23 0; 454 | #X connect 6 0 7 0; 455 | #X connect 7 0 8 0; 456 | #X connect 7 0 9 0; 457 | #X connect 8 0 7 1; 458 | #X connect 9 0 10 0; 459 | #X connect 9 0 19 0; 460 | #X connect 10 0 11 0; 461 | #X connect 11 0 1 0; 462 | #X connect 14 0 16 0; 463 | #X connect 15 0 14 0; 464 | #X connect 17 0 18 0; 465 | #X connect 18 0 19 1; 466 | #X connect 18 1 10 1; 467 | #X connect 19 0 13 0; 468 | #X connect 22 0 20 0; 469 | #X connect 23 0 21 0; 470 | #X connect 24 0 5 0; 471 | #X connect 24 1 3 0; 472 | #X connect 25 0 24 0; 473 | #X restore 322 409 pd timer_utility; 474 | #X text 16 13 Uses lib Aubio to get several MIR information; 475 | #X obj 230 69 inlet~ LeftAudio; 476 | #X obj 351 69 inlet~ RightAudio; 477 | #X obj 291 164 aubioquiet~; 478 | #X obj 517 69 inlet on_off_switch; 479 | #X obj 285 90 spigot~; 480 | #X obj 351 90 spigot~; 481 | #X obj 345 496 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 482 | -1 -1 1; 483 | #X text 325 321 METRONOM; 484 | #X text 173 318 TEMPO // BPM; 485 | #X obj 496 71 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 486 | 1; 487 | #X obj 41 257 s aubio_onset; 488 | #X obj 130 257 s aubio_tempo; 489 | #X obj 217 257 s aubio_tempo_bis; 490 | #X obj 291 230 s aubio_quiet; 491 | #X obj 462 256 s aubio_pitch; 492 | #X obj 310 503 == 0; 493 | #X obj 345 520 tgl 60 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 494 | 1; 495 | #X obj 158 544 s aubio_bpm; 496 | #X obj 716 164 aubiotss~; 497 | #X obj 716 249 vsl 15 100 0 1 0 0 empty empty empty 0 -9 0 10 -262144 498 | -1 -1 0 1; 499 | #X obj 716 188 env~; 500 | #X obj 767 249 vsl 15 100 0 1 0 0 empty empty empty 0 -9 0 10 -262144 501 | -1 -1 0 1; 502 | #X obj 767 189 env~; 503 | #X obj 716 141 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 504 | -1 -1 0 0; 505 | #X floatatom 778 164 5 0 0 0 - - -; 506 | #X text 713 123 Variation Threshold; 507 | #X obj 577 166 aubiozcr~; 508 | #X floatatom 577 228 5 0 0 0 - - -; 509 | #X obj 577 356 s aubio_zcr; 510 | #X obj 19 526 i 0; 511 | #X text 19 443 Reset all values; 512 | #X obj 26 483 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 513 | -1; 514 | #X obj 26 503 delay 1000; 515 | #X obj 517 101 s aubio-off; 516 | #X obj 19 460 r aubio-off; 517 | #X obj 48 543 s aubio_reset; 518 | #X obj 804 230 r aubio_reset; 519 | #X obj 471 187 r aubio_reset; 520 | #X obj 196 503 r aubio_reset; 521 | #X obj 406 430 r aubio_reset; 522 | #N canvas 775 308 450 300 clean_signal 0; 523 | #X obj 51 133 ==; 524 | #X obj 93 116 f; 525 | #X floatatom 102 139 5 0 0 0 - - -; 526 | #X text 24 10 SIGNAL CLEANER; 527 | #X obj 51 68 inlet float; 528 | #X obj 51 156 sel 0; 529 | #X obj 93 163 outlet float; 530 | #X text 25 24 Prevents resending bangs when the float value has not 531 | changed. (Sort of flood filter); 532 | #X connect 0 0 5 0; 533 | #X connect 1 0 0 1; 534 | #X connect 1 0 2 0; 535 | #X connect 1 0 6 0; 536 | #X connect 4 0 1 1; 537 | #X connect 4 0 0 0; 538 | #X connect 5 0 1 0; 539 | #X restore 462 233 pd clean_signal; 540 | #X floatatom 577 289 5 0 0 0 - - -; 541 | #X obj 543 305 -; 542 | #X obj 543 327 abs; 543 | #X obj 526 396 sqrt; 544 | #X obj 577 248 average 10; 545 | #X text 13 65 Treshold Tempo; 546 | #X text 14 88 Treshold OnSet; 547 | #X obj 591 268 r aubio_reset; 548 | #X floatatom 634 227 5 0 20 2 - - -; 549 | #X text 584 211 Zcr; 550 | #X text 613 290 Smoothed; 551 | #N canvas 960 356 450 300 clean_signal 0; 552 | #X obj 51 133 ==; 553 | #X obj 93 116 f; 554 | #X floatatom 102 139 5 0 0 0 - - -; 555 | #X text 24 10 SIGNAL CLEANER; 556 | #X obj 51 68 inlet float; 557 | #X obj 51 156 sel 0; 558 | #X obj 93 163 outlet float; 559 | #X text 25 24 Prevents resending bangs when the float value has not 560 | changed. (Sort of flood filter); 561 | #X connect 0 0 5 0; 562 | #X connect 1 0 0 1; 563 | #X connect 1 0 2 0; 564 | #X connect 1 0 6 0; 565 | #X connect 4 0 1 1; 566 | #X connect 4 0 0 0; 567 | #X connect 5 0 1 0; 568 | #X restore 577 332 pd clean_signal; 569 | #X obj 560 378 r aubio_reset; 570 | #X obj 580 400 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 571 | -1 -1 0 1; 572 | #X obj 580 418 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 573 | -1 -1 0 1; 574 | #X obj 496 305 hsl 40 15 -0.1 0.1 0 0 empty empty empty -2 -8 0 10 575 | -262144 -1 -1 0 1; 576 | #X floatatom 154 68 5 0 0 0 - - -; 577 | #X text 629 198 Smoothing; 578 | #X text 630 209 Treshold; 579 | #X obj 107 68 hsl 40 15 0 10 0 0 empty empty empty -2 -8 0 10 -262144 580 | -1 -1 0 1; 581 | #X floatatom 154 88 5 0 0 0 - - -; 582 | #X obj 107 89 hsl 40 15 0 15 0 0 empty empty empty -2 -8 0 10 -262144 583 | -1 -1 0 1; 584 | #X floatatom 506 324 5 0 0 0 - - -; 585 | #X text 102 46 PARAMETERS; 586 | #X text 491 288 Treshold; 587 | #X obj 716 440 <; 588 | #X obj 722 414 f 0.005; 589 | #X obj 767 210 / 127; 590 | #X obj 716 210 / 127; 591 | #X obj 722 393 loadbang; 592 | #X obj 787 251 vsl 15 100 -1 1 0 0 empty empty empty 0 -9 0 10 -262144 593 | -1 -1 4950 1; 594 | #X obj 846 324 -; 595 | #X obj 577 310 * 5; 596 | #X obj 478 344 -; 597 | #X text 575 433 ZeroCross Variation; 598 | #X obj 529 379 * 2; 599 | #X obj 497 361 average 3; 600 | #X text 384 579 comment; 601 | #X obj 767 440 <; 602 | #X obj 722 376 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 603 | -1 -1; 604 | #X obj 752 466 == 0; 605 | #X obj 716 491 &; 606 | #N canvas 775 308 450 300 clean_signal 0; 607 | #X obj 51 133 ==; 608 | #X obj 93 116 f; 609 | #X floatatom 102 139 5 0 0 0 - - -; 610 | #X text 24 10 SIGNAL CLEANER; 611 | #X obj 51 68 inlet float; 612 | #X obj 51 156 sel 0; 613 | #X obj 93 163 outlet float; 614 | #X text 25 24 Prevents resending bangs when the float value has not 615 | changed. (Sort of flood filter); 616 | #X connect 0 0 5 0; 617 | #X connect 1 0 0 1; 618 | #X connect 1 0 2 0; 619 | #X connect 1 0 6 0; 620 | #X connect 4 0 1 1; 621 | #X connect 4 0 0 0; 622 | #X connect 5 0 1 0; 623 | #X restore 716 512 pd clean_signal; 624 | #X obj 291 209 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 625 | 1; 626 | #X obj 291 188 i 1; 627 | #X obj 716 535 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 628 | 1; 629 | #X obj 716 467 == 0; 630 | #X text 737 533 isPlaying; 631 | #X obj 716 556 s aubio_is_playing; 632 | #X obj 320 188 r aubio_is_playing; 633 | #X obj 343 208 sel 1; 634 | #X obj 311 209 i 0; 635 | #X obj 846 347 average 30; 636 | #X obj 846 370 sqrt; 637 | #X text 810 277 (~Sound similarity indicator); 638 | #X text 575 447 (~cymbal detection); 639 | #X floatatom 623 312 5 0 0 0 - - -; 640 | #X connect 0 0 1 0; 641 | #X connect 1 0 33 0; 642 | #X connect 2 0 3 0; 643 | #X connect 3 0 63 0; 644 | #X connect 4 0 7 0; 645 | #X connect 4 0 10 0; 646 | #X connect 4 0 34 0; 647 | #X connect 5 0 35 0; 648 | #X connect 6 0 4 0; 649 | #X connect 6 1 5 0; 650 | #X connect 7 0 9 0; 651 | #X connect 7 0 8 0; 652 | #X connect 8 0 7 1; 653 | #X connect 9 0 21 0; 654 | #X connect 10 0 11 0; 655 | #X connect 10 1 11 1; 656 | #X connect 11 0 12 0; 657 | #X connect 12 0 14 0; 658 | #X connect 13 0 40 0; 659 | #X connect 14 0 17 0; 660 | #X connect 15 0 13 0; 661 | #X connect 16 0 15 1; 662 | #X connect 17 0 15 0; 663 | #X connect 19 0 29 0; 664 | #X connect 19 0 38 0; 665 | #X connect 21 0 18 0; 666 | #X connect 21 1 19 0; 667 | #X connect 21 2 20 0; 668 | #X connect 23 0 27 0; 669 | #X connect 24 0 28 0; 670 | #X connect 25 0 108 0; 671 | #X connect 26 0 32 0; 672 | #X connect 27 1 6 0; 673 | #X connect 27 1 0 0; 674 | #X connect 27 1 25 0; 675 | #X connect 27 1 2 0; 676 | #X connect 27 1 41 0; 677 | #X connect 27 1 49 0; 678 | #X connect 28 1 2 0; 679 | #X connect 28 1 25 0; 680 | #X connect 28 1 6 0; 681 | #X connect 28 1 0 0; 682 | #X connect 28 1 41 0; 683 | #X connect 28 1 49 0; 684 | #X connect 32 0 28 1; 685 | #X connect 32 0 27 1; 686 | #X connect 32 0 56 0; 687 | #X connect 38 0 39 0; 688 | #X connect 41 0 43 0; 689 | #X connect 41 1 45 0; 690 | #X connect 42 0 95 0; 691 | #X connect 42 0 89 0; 692 | #X connect 43 0 92 0; 693 | #X connect 44 0 95 1; 694 | #X connect 44 0 102 0; 695 | #X connect 45 0 91 0; 696 | #X connect 46 0 41 1; 697 | #X connect 46 0 47 0; 698 | #X connect 49 0 50 0; 699 | #X connect 50 0 68 0; 700 | #X connect 50 0 65 1; 701 | #X connect 52 0 58 0; 702 | #X connect 54 0 55 0; 703 | #X connect 55 0 52 0; 704 | #X connect 57 0 52 0; 705 | #X connect 57 0 54 0; 706 | #X connect 59 0 42 0; 707 | #X connect 59 0 44 0; 708 | #X connect 60 0 3 0; 709 | #X connect 61 0 13 0; 710 | #X connect 62 0 18 0; 711 | #X connect 62 0 19 0; 712 | #X connect 63 0 37 0; 713 | #X connect 64 0 65 0; 714 | #X connect 64 0 96 0; 715 | #X connect 65 0 66 0; 716 | #X connect 66 0 97 0; 717 | #X connect 67 0 78 0; 718 | #X connect 68 0 64 0; 719 | #X connect 71 0 64 0; 720 | #X connect 72 0 68 1; 721 | #X connect 75 0 51 0; 722 | #X connect 75 0 120 0; 723 | #X connect 76 0 78 0; 724 | #X connect 76 0 96 0; 725 | #X connect 79 0 86 0; 726 | #X connect 79 0 97 1; 727 | #X connect 83 0 80 0; 728 | #X connect 83 0 6 1; 729 | #X connect 85 0 84 0; 730 | #X connect 85 0 0 1; 731 | #X connect 89 0 104 0; 732 | #X connect 89 0 110 0; 733 | #X connect 90 0 89 1; 734 | #X connect 90 0 102 1; 735 | #X connect 91 0 44 0; 736 | #X connect 92 0 42 0; 737 | #X connect 93 0 90 0; 738 | #X connect 95 0 116 0; 739 | #X connect 96 0 77 0; 740 | #X connect 96 0 75 0; 741 | #X connect 97 0 100 0; 742 | #X connect 99 0 67 0; 743 | #X connect 100 0 99 0; 744 | #X connect 102 0 104 0; 745 | #X connect 104 0 105 1; 746 | #X connect 105 0 106 0; 747 | #X connect 106 0 109 0; 748 | #X connect 107 0 36 0; 749 | #X connect 108 0 107 0; 750 | #X connect 109 0 112 0; 751 | #X connect 110 0 105 0; 752 | #X connect 113 0 114 0; 753 | #X connect 114 0 115 0; 754 | #X connect 115 0 107 0; 755 | #X connect 116 0 117 0; 756 | #X connect 117 0 94 0; 757 | #X restore 16 337 pd aubio; 758 | #X obj -11 517 spigot; 759 | #X obj 22 443 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 760 | 1; 761 | #X obj -11 540 print; 762 | #X floatatom 398 126 5 0 0 0 - - -; 763 | #X text 40 442 Print Output to Console; 764 | #X obj 583 143 s osc_output; 765 | #X obj 584 213 s osc_output; 766 | #X msg 434 242 send /aubioBpm \$1; 767 | #X obj 583 259 s osc_output; 768 | #X obj 583 190 s osc_output; 769 | #X obj 584 304 s osc_output; 770 | #X text 658 7 Todo: - http://forumnet.ircam.fr/product/antescofo/?lang=en 771 | ; 772 | #X obj 298 156 r aubio_is_playing; 773 | #X msg 433 173 send /aubioIsPlaying \$1; 774 | #X obj 415 173 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 775 | 1; 776 | #X obj 15 368 -~; 777 | #X floatatom 15 415 5 0 0 0 - - -; 778 | #X obj 56 414 sqrt; 779 | #X obj 93 369 vsl 15 60 -1 1 0 0 empty empty empty 0 -9 0 10 -262144 780 | -1 -1 0 1; 781 | #X text 43 371 Balance; 782 | #X obj 15 393 average~ 200; 783 | #X obj -67 484 r osc_output; 784 | #X obj 113 415 s osc_output; 785 | #N canvas 775 308 450 300 clean_signal 0; 786 | #X obj 51 133 ==; 787 | #X obj 93 116 f; 788 | #X floatatom 102 139 5 0 0 0 - - -; 789 | #X text 24 10 SIGNAL CLEANER; 790 | #X obj 51 68 inlet float; 791 | #X obj 51 156 sel 0; 792 | #X obj 93 163 outlet float; 793 | #X text 25 24 Prevents resending bangs when the float value has not 794 | changed. (Sort of flood filter); 795 | #X connect 0 0 5 0; 796 | #X connect 1 0 0 1; 797 | #X connect 1 0 2 0; 798 | #X connect 1 0 6 0; 799 | #X connect 4 0 1 1; 800 | #X connect 4 0 0 0; 801 | #X connect 5 0 1 0; 802 | #X restore 113 375 pd clean_signal; 803 | #X msg 113 395 send /balance \$1; 804 | #X text 275 383 Many OSC optimisation todo here \, frequency and packing 805 | stuff. See resample.pd and sendmany-osc.pd; 806 | #X text 102 21 Make sure to run this with; 807 | #X text 103 39 Pd-Extended 0.43.4; 808 | #X msg 247 541 connect 192.168.0.14 12000; 809 | #X obj -67 583 sendOSC; 810 | #X connect 0 0 5 0; 811 | #X connect 0 0 13 0; 812 | #X connect 0 0 130 0; 813 | #X connect 0 0 146 0; 814 | #X connect 0 1 5 0; 815 | #X connect 0 1 13 1; 816 | #X connect 0 1 130 1; 817 | #X connect 0 1 146 1; 818 | #X connect 1 0 160 0; 819 | #X connect 2 0 160 0; 820 | #X connect 3 0 160 0; 821 | #X connect 4 0 47 0; 822 | #X connect 5 0 6 0; 823 | #X connect 5 0 6 1; 824 | #X connect 7 0 119 0; 825 | #X connect 8 0 9 0; 826 | #X connect 11 0 10 0; 827 | #X connect 36 0 19 0; 828 | #X connect 37 0 21 0; 829 | #X connect 38 0 22 0; 830 | #X connect 39 0 23 0; 831 | #X connect 40 0 24 0; 832 | #X connect 41 0 25 0; 833 | #X connect 42 0 18 0; 834 | #X connect 43 0 20 0; 835 | #X connect 44 0 17 0; 836 | #X connect 45 0 16 0; 837 | #X connect 47 0 5 1; 838 | #X connect 47 0 95 0; 839 | #X connect 48 0 116 0; 840 | #X connect 48 0 68 0; 841 | #X connect 49 0 41 0; 842 | #X connect 49 0 35 0; 843 | #X connect 50 0 40 0; 844 | #X connect 50 0 34 0; 845 | #X connect 51 0 39 0; 846 | #X connect 51 0 33 0; 847 | #X connect 52 0 38 0; 848 | #X connect 52 0 32 0; 849 | #X connect 53 0 37 0; 850 | #X connect 53 0 31 0; 851 | #X connect 54 0 36 0; 852 | #X connect 54 0 30 0; 853 | #X connect 55 0 43 0; 854 | #X connect 55 0 29 0; 855 | #X connect 56 0 42 0; 856 | #X connect 56 0 28 0; 857 | #X connect 57 0 44 0; 858 | #X connect 57 0 27 0; 859 | #X connect 58 0 45 0; 860 | #X connect 58 0 26 0; 861 | #X connect 63 0 83 0; 862 | #X connect 63 0 69 0; 863 | #X connect 64 0 120 0; 864 | #X connect 64 0 74 0; 865 | #X connect 65 0 113 0; 866 | #X connect 65 0 72 0; 867 | #X connect 66 0 13 2; 868 | #X connect 70 0 115 0; 869 | #X connect 70 0 71 0; 870 | #X connect 74 0 75 0; 871 | #X connect 75 0 76 0; 872 | #X connect 75 0 77 0; 873 | #X connect 76 0 75 1; 874 | #X connect 78 0 107 0; 875 | #X connect 79 0 109 0; 876 | #X connect 80 0 134 0; 877 | #X connect 80 0 112 0; 878 | #X connect 81 0 111 0; 879 | #X connect 81 0 86 0; 880 | #X connect 82 0 114 0; 881 | #X connect 82 0 73 0; 882 | #X connect 83 0 46 0; 883 | #X connect 84 0 130 2; 884 | #X connect 87 0 108 0; 885 | #X connect 87 0 88 0; 886 | #X connect 89 0 90 0; 887 | #X connect 89 0 138 0; 888 | #X connect 91 0 92 0; 889 | #X connect 91 0 79 0; 890 | #X connect 93 0 78 0; 891 | #X connect 93 0 94 0; 892 | #X connect 97 0 96 0; 893 | #X connect 97 0 110 0; 894 | #X connect 108 0 137 0; 895 | #X connect 110 0 141 0; 896 | #X connect 111 0 106 0; 897 | #X connect 112 0 136 0; 898 | #X connect 113 0 46 0; 899 | #X connect 114 0 46 0; 900 | #X connect 115 0 46 0; 901 | #X connect 116 0 46 0; 902 | #X connect 117 0 66 0; 903 | #X connect 119 0 160 0; 904 | #X connect 120 0 46 0; 905 | #X connect 121 0 122 1; 906 | #X connect 122 0 131 0; 907 | #X connect 122 0 160 0; 908 | #X connect 128 0 84 0; 909 | #X connect 131 0 133 0; 910 | #X connect 132 0 131 1; 911 | #X connect 138 0 139 0; 912 | #X connect 143 0 144 0; 913 | #X connect 143 0 145 0; 914 | #X connect 144 0 140 0; 915 | #X connect 146 0 151 0; 916 | #X connect 147 0 148 0; 917 | #X connect 148 0 149 0; 918 | #X connect 149 0 154 0; 919 | #X connect 151 0 147 0; 920 | #X connect 152 0 122 0; 921 | #X connect 154 0 155 0; 922 | #X connect 155 0 153 0; 923 | #X connect 159 0 160 0; 924 | #X connect 160 0 121 0; 925 | -------------------------------------------------------------------------------- /depreciated/OSCCleannFloat.pd: -------------------------------------------------------------------------------- 1 | #N canvas 72 23 1254 676 10; 2 | #X declare -lib mrpeach; 3 | #X obj 17 272 adc~; 4 | #X msg 159 566 disconnect; 5 | #X msg 159 489 typetags 1; 6 | #X msg 159 513 typetags 0; 7 | #X obj -48 152 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 8 | 1; 9 | #X obj -63 289 *~; 10 | #X obj -63 337 dac~; 11 | #X obj 88 484 loadbang; 12 | #X obj 18 25 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 13 | -1; 14 | #X msg 18 63 \; pd dsp 1; 15 | #X msg -49 64 \; pd dsp 0; 16 | #X obj -49 27 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1 17 | -1; 18 | #X text -51 -6 Turn On/Off Pd.DSP; 19 | #N canvas 71 24 898 653 karmaFiddle 0; 20 | #X obj -1170 289 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 21 | 10 -262144 -1 -1 0 256; 22 | #X obj -1115 319 unpack; 23 | #X obj -1115 354 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 24 | 10 -262144 -1 -1 0 256; 25 | #X obj -1042 336 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 26 | 10 -262144 -1 -1 0 256; 27 | #X obj -1115 378 route 0; 28 | #X obj -1087 278 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 29 | 10 -262144 -1 -1 0 256; 30 | #X obj -1042 391 > 50; 31 | #X obj -1042 421 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 32 | 0 1; 33 | #X obj -1042 441 sel 1 0; 34 | #X obj -1042 471 timer; 35 | #X floatatom -1041 502 5 0 0 0 - - -; 36 | #X obj -1041 554 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 37 | 0 1; 38 | #X text -1185 339 Attack; 39 | #X obj -1114 409 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 40 | 10 -262144 -1 -1 0 256; 41 | #X text -1173 408 Raw Pitch; 42 | #X text -1043 319 Raw Amplitude; 43 | #X text -1093 107 1024 = FFT window size; 44 | #X msg -1090 129 npoints 1024; 45 | #X msg -1090 155 npoints 2048; 46 | #X obj -1041 524 > 2000; 47 | #X obj -1041 580 s silence; 48 | #X text -1306 34 Uses the fiddle object to extract FFT and some other 49 | information.; 50 | #X obj -897 556 unpack; 51 | #X obj -897 579 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 52 | 10 -262144 -1 -1 0 256; 53 | #X obj -864 579 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 54 | 10 -262144 -1 -1 0 256; 55 | #X obj -882 477 unpack; 56 | #X text -899 34 5 EQUALIZER BANDS WITH THEIR PITCH (Hz) AND AMPLITUDE 57 | (rms); 58 | #X obj -882 497 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 59 | 10 -262144 -1 -1 0 256; 60 | #X obj -849 497 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 61 | 10 -262144 -1 -1 0 256; 62 | #X obj -866 398 unpack; 63 | #X obj -866 418 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 64 | 10 -262144 -1 -1 0 256; 65 | #X obj -833 418 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 66 | 10 -262144 -1 -1 0 256; 67 | #X obj -850 319 unpack; 68 | #X obj -850 339 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 69 | 10 -262144 -1 -1 0 256; 70 | #X obj -817 339 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 71 | 10 -262144 -1 -1 0 256; 72 | #X obj -834 241 unpack; 73 | #X obj -834 261 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 74 | 10 -262144 -1 -1 0 256; 75 | #X obj -801 261 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 76 | 10 -262144 -1 -1 0 256; 77 | #X obj -1307 214 inlet~ LeftAudio; 78 | #X obj -1300 238 inlet~ RightAudio; 79 | #X text -1250 524 Bang Detects 2 sec non-variation; 80 | #X text -1252 538 (potentially end of track/set); 81 | #X text -996 523 ms; 82 | #X obj -1241 307 s fiddle_pitch; 83 | #X obj -897 616 s fft1p; 84 | #X obj -864 596 s fft1a; 85 | #X obj -849 513 s fft2a; 86 | #X obj -866 454 s fft3p; 87 | #X obj -833 435 s fft3a; 88 | #X obj -850 375 s fft4p; 89 | #X obj -817 356 s fft4a; 90 | #X obj -834 297 s fft5p; 91 | #X obj -801 278 s fft5a; 92 | #X text -1247 288 Cooked Pitch; 93 | #X text -1030 278 Amplitude (db); 94 | #X obj -818 162 unpack; 95 | #X obj -818 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 96 | 10 -262144 -1 -1 0 256; 97 | #X obj -785 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 98 | 10 -262144 -1 -1 0 256; 99 | #X obj -785 199 s fft6a; 100 | #X obj -818 218 s fft6p; 101 | #X obj -802 84 unpack; 102 | #X obj -802 104 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 103 | 10 -262144 -1 -1 0 256; 104 | #X obj -769 104 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 105 | 10 -262144 -1 -1 0 256; 106 | #X obj -897 60 route 1 2 3 4 5 6 7; 107 | #X obj -1170 255 fiddle~ 1024 1 50 7; 108 | #X obj -802 140 s fft7p; 109 | #X obj -769 121 s fft7a; 110 | #X obj -882 532 s fft2p; 111 | #X obj -1031 358 s fiddle_raw_amp; 112 | #X obj -1087 296 s fiddle_amp; 113 | #X obj -1282 109 inlet on_off_switch; 114 | #X obj -1303 114 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 115 | 1 1; 116 | #X obj -1300 266 spigot~; 117 | #X obj -1171 231 spigot~; 118 | #X obj -1171 430 s fiddle_raw_pitch; 119 | #X obj -1222 361 s fiddle_attack; 120 | #X obj -1143 339 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 121 | -1 -1; 122 | #X obj -1260 173 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 123 | -1 -1; 124 | #X obj -1257 129 route 0 1; 125 | #X obj -1235 173 i 1; 126 | #X obj -646 479 r karma-fiddle-off; 127 | #X obj -1365 188 s karma-fiddle-off; 128 | #X obj -646 545 i 0; 129 | #X text -646 462 Reset all values; 130 | #X obj -639 502 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 131 | -1 -1; 132 | #X obj -1188 166 i 0; 133 | #X obj -646 570 s fiddler_reset; 134 | #X obj -710 87 r fiddler_reset; 135 | #X obj -725 165 r fiddler_reset; 136 | #X obj -738 244 r fiddler_reset; 137 | #X obj -753 322 r fiddler_reset; 138 | #X obj -771 401 r fiddler_reset; 139 | #X obj -786 480 r fiddler_reset; 140 | #X obj -795 562 r fiddler_reset; 141 | #X obj -1029 261 r fiddler_reset; 142 | #X obj -1283 393 r fiddler_reset; 143 | #X msg -1188 191 auto \$1; 144 | #X obj -639 522 delay 50; 145 | #N canvas 348 204 544 468 resample 1; 146 | #X obj 143 237 metro \$1; 147 | #X obj -67 113 inlet; 148 | #X obj 143 211 != 0; 149 | #X obj 154 140 \$1; 150 | #X obj 180 140 loadbang; 151 | #X obj 144 163 i 50; 152 | #X text 173 165 Default Frequency (ms); 153 | #X obj -88 187 tgl 15 0 empty empty Frequency_Controll_[on/off] 17 154 | 7 0 10 -262144 -1 -1 0 1; 155 | #X obj -120 113 inlet; 156 | #X text -188 113 Data input; 157 | #X obj -88 232 != 1; 158 | #X floatatom 201 238 5 0 0 1 Raw_input - -; 159 | #X floatatom 97 279 5 0 0 0 Summed_Values - -; 160 | #X obj 173 306 i; 161 | #X obj 146 306 + 1; 162 | #X text 21 435 See also resample \, sendmany-osc.pd and lop; 163 | #X obj -51 343 ==; 164 | #X obj -96 363 f; 165 | #X floatatom -84 387 5 0 0 0 - - -; 166 | #X obj -51 366 sel 0; 167 | #X obj -96 407 outlet float; 168 | #X floatatom 173 328 5 0 0 0 - - -; 169 | #X obj 173 285 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 170 | -1 -1; 171 | #X obj 201 202 spigot; 172 | #X obj 173 262 +; 173 | #X obj 201 263 i; 174 | #X obj 144 262 i; 175 | #X floatatom 97 301 5 0 0 0 Num_Values - -; 176 | #X obj 146 284 i; 177 | #X obj 97 324 /; 178 | #X floatatom 97 347 5 0 0 0 Averaged_Value - -; 179 | #X obj -121 256 spigot; 180 | #X text -190 17 Cleans data flow for OSC output.; 181 | #X text -190 32 Unchanged values are not re-sent.; 182 | #X text 83 17 (Tested only for ints and floats); 183 | #X text -189 46 Too frequent values are sent less frequent and averaged. 184 | ; 185 | #X text -28 112 Freq.Cont. [on/off]; 186 | #X obj 144 119 inlet; 187 | #X text 183 118 Set frequency (ms); 188 | #X text -189 61 Set frequency with \$1 creation argument or 3rd inlet. 189 | ; 190 | #X obj 90 130 sel 1; 191 | #X connect 0 0 27 0; 192 | #X connect 1 0 7 0; 193 | #X connect 1 0 40 0; 194 | #X connect 2 0 0 0; 195 | #X connect 3 0 5 0; 196 | #X connect 4 0 3 0; 197 | #X connect 5 0 2 0; 198 | #X connect 7 0 10 0; 199 | #X connect 7 0 23 1; 200 | #X connect 8 0 23 0; 201 | #X connect 8 0 31 0; 202 | #X connect 10 0 31 1; 203 | #X connect 11 0 25 0; 204 | #X connect 12 0 29 1; 205 | #X connect 13 0 21 0; 206 | #X connect 14 0 28 1; 207 | #X connect 16 0 19 0; 208 | #X connect 17 0 16 1; 209 | #X connect 17 0 18 0; 210 | #X connect 17 0 20 0; 211 | #X connect 19 0 17 0; 212 | #X connect 22 0 28 0; 213 | #X connect 22 0 13 0; 214 | #X connect 23 0 11 0; 215 | #X connect 24 0 26 0; 216 | #X connect 24 0 22 0; 217 | #X connect 25 0 24 0; 218 | #X connect 26 0 24 1; 219 | #X connect 26 0 12 0; 220 | #X connect 27 0 29 0; 221 | #X connect 28 0 14 0; 222 | #X connect 28 0 27 0; 223 | #X connect 29 0 30 0; 224 | #X connect 30 0 16 0; 225 | #X connect 30 0 17 1; 226 | #X connect 31 0 16 0; 227 | #X connect 31 0 17 1; 228 | #X connect 37 0 5 0; 229 | #X connect 40 0 5 0; 230 | #X restore -667 119 pd resample 24; 231 | #X floatatom -581 62 5 0 0 0 Sending_Freq_(ms) - -; 232 | #X obj -567 171 resample; 233 | #X connect 0 0 43 0; 234 | #X connect 1 0 2 0; 235 | #X connect 1 1 3 0; 236 | #X connect 2 0 4 0; 237 | #X connect 3 0 6 0; 238 | #X connect 3 0 68 0; 239 | #X connect 4 1 13 0; 240 | #X connect 5 0 69 0; 241 | #X connect 6 0 7 0; 242 | #X connect 7 0 8 0; 243 | #X connect 8 0 9 0; 244 | #X connect 8 1 9 1; 245 | #X connect 9 0 10 0; 246 | #X connect 10 0 19 0; 247 | #X connect 11 0 20 0; 248 | #X connect 13 0 74 0; 249 | #X connect 17 0 64 0; 250 | #X connect 18 0 64 0; 251 | #X connect 19 0 11 0; 252 | #X connect 22 0 23 0; 253 | #X connect 22 1 24 0; 254 | #X connect 23 0 44 0; 255 | #X connect 24 0 45 0; 256 | #X connect 25 0 27 0; 257 | #X connect 25 1 28 0; 258 | #X connect 27 0 67 0; 259 | #X connect 28 0 46 0; 260 | #X connect 29 0 30 0; 261 | #X connect 29 1 31 0; 262 | #X connect 30 0 47 0; 263 | #X connect 31 0 48 0; 264 | #X connect 32 0 33 0; 265 | #X connect 32 1 34 0; 266 | #X connect 33 0 49 0; 267 | #X connect 34 0 50 0; 268 | #X connect 35 0 36 0; 269 | #X connect 35 1 37 0; 270 | #X connect 36 0 51 0; 271 | #X connect 37 0 52 0; 272 | #X connect 38 0 73 0; 273 | #X connect 39 0 72 0; 274 | #X connect 55 0 56 0; 275 | #X connect 55 1 57 0; 276 | #X connect 56 0 59 0; 277 | #X connect 57 0 58 0; 278 | #X connect 60 0 61 0; 279 | #X connect 60 1 62 0; 280 | #X connect 61 0 65 0; 281 | #X connect 62 0 66 0; 282 | #X connect 63 0 22 0; 283 | #X connect 63 1 25 0; 284 | #X connect 63 2 29 0; 285 | #X connect 63 3 32 0; 286 | #X connect 63 4 35 0; 287 | #X connect 63 5 55 0; 288 | #X connect 63 6 60 0; 289 | #X connect 64 0 0 0; 290 | #X connect 64 1 75 0; 291 | #X connect 64 1 76 0; 292 | #X connect 64 2 1 0; 293 | #X connect 64 3 5 0; 294 | #X connect 64 4 63 0; 295 | #X connect 70 0 71 0; 296 | #X connect 71 0 78 0; 297 | #X connect 72 1 64 0; 298 | #X connect 73 1 64 0; 299 | #X connect 77 0 81 0; 300 | #X connect 78 0 77 0; 301 | #X connect 78 0 85 0; 302 | #X connect 78 1 79 0; 303 | #X connect 79 0 73 1; 304 | #X connect 79 0 72 1; 305 | #X connect 79 0 96 0; 306 | #X connect 80 0 82 0; 307 | #X connect 80 0 84 0; 308 | #X connect 82 0 86 0; 309 | #X connect 84 0 97 0; 310 | #X connect 85 0 73 1; 311 | #X connect 85 0 72 1; 312 | #X connect 85 0 96 0; 313 | #X connect 87 0 62 0; 314 | #X connect 87 0 61 0; 315 | #X connect 88 0 57 0; 316 | #X connect 88 0 56 0; 317 | #X connect 89 0 37 0; 318 | #X connect 89 0 36 0; 319 | #X connect 90 0 34 0; 320 | #X connect 90 0 33 0; 321 | #X connect 91 0 31 0; 322 | #X connect 91 0 30 0; 323 | #X connect 92 0 28 0; 324 | #X connect 92 0 27 0; 325 | #X connect 93 0 24 0; 326 | #X connect 93 0 23 0; 327 | #X connect 94 0 5 0; 328 | #X connect 94 0 3 0; 329 | #X connect 95 0 13 0; 330 | #X connect 95 0 0 0; 331 | #X connect 96 0 64 0; 332 | #X connect 97 0 82 0; 333 | #X restore 157 289 pd karmaFiddle; 334 | #X text 89 458 OSC SERVER CONFIGURATION; 335 | #X text -67 458 OSC ROUTING; 336 | #X obj 989 133 s osc_output; 337 | #X obj 989 154 s osc_output; 338 | #X obj 989 177 s osc_output; 339 | #X obj 988 222 s osc_output; 340 | #X obj 988 198 s osc_output; 341 | #X obj 989 243 s osc_output; 342 | #X obj 988 267 s osc_output; 343 | #X obj 988 288 s osc_output; 344 | #X obj 988 312 s osc_output; 345 | #X obj 988 333 s osc_output; 346 | #X floatatom 741 116 5 0 0 0 - - -; 347 | #X floatatom 740 137 5 0 0 0 - - -; 348 | #X floatatom 740 160 5 0 0 0 - - -; 349 | #X floatatom 740 181 5 0 0 0 - - -; 350 | #X floatatom 739 205 5 0 0 0 - - -; 351 | #X floatatom 739 226 5 0 0 0 - - -; 352 | #X floatatom 739 250 5 0 0 0 - - -; 353 | #X floatatom 739 271 5 0 0 0 - - -; 354 | #X floatatom 740 295 5 0 0 0 - - -; 355 | #X floatatom 741 316 5 0 0 0 - - -; 356 | #X msg 776 205 send /fiddle_fft/band3/pitch \$0; 357 | #X msg 776 226 send /fiddle_fft/band3/rms \$0; 358 | #X msg 776 250 send /fiddle_fft/band4/pitch \$0; 359 | #X msg 776 271 send /fiddle_fft/band4/rms \$0; 360 | #X msg 776 295 send /fiddle_fft/band5/rms \$0; 361 | #X msg 776 316 send /fiddle_fft/band5/pitch \$0; 362 | #X msg 777 160 send /fiddle_fft/band2/rms \$0; 363 | #X msg 776 181 send /fiddle_fft/band2/pitch \$0; 364 | #X msg 776 137 send /fiddle_fft/band1/rms \$0; 365 | #X msg 776 116 send /fiddle_fft/band1/pitch \$0; 366 | #X obj 689 581 s osc_output; 367 | #X obj -45 191 hsl 100 15 0 1 0 0 0 ¸áÿ¿» 0 0 0 0 4 -262144 -1 368 | -1 0 0; 369 | #X obj 689 407 r silence; 370 | #X obj 689 299 r fft5p; 371 | #X obj 689 278 r fft5a; 372 | #X obj 689 254 r fft4p; 373 | #X obj 689 233 r fft4a; 374 | #X obj 689 209 r fft3p; 375 | #X obj 689 188 r fft3a; 376 | #X obj 689 164 r fft2p; 377 | #X obj 689 143 r fft2a; 378 | #X obj 690 120 r fft1p; 379 | #X obj 690 99 r fft1a; 380 | #X text 296 2 ROUTING; 381 | #X text 297 17 - - - - - - - - - - - - - - - - - - - - - - - - - - 382 | - - - -; 383 | #X text -68 467 - - - - - - - - - - - - - - - - - - - - - - - - - - 384 | ; 385 | #X text 657 17 - - - - - - - - - - - - - - - - - - - - - - - - - - 386 | - - - -; 387 | #X obj 751 407 r fiddle_pitch; 388 | #X obj 958 407 r fiddle_attack; 389 | #X obj 958 494 r fiddle_amp; 390 | #X obj 238 251 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 391 | 1; 392 | #X text 183 249 (on/off); 393 | #X obj 697 429 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 394 | 1; 395 | #X floatatom 757 428 5 0 0 0 - - -; 396 | #X obj 842 407 r fiddle_raw_pitch; 397 | #X floatatom 849 428 5 0 0 0 - - -; 398 | #X floatatom 922 515 5 0 0 0 - - -; 399 | #X floatatom 919 562 5 0 0 0 - - -; 400 | #X obj 965 429 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 401 | -1 -1; 402 | #X obj 1058 429 i; 403 | #X obj 1089 429 + 1; 404 | #X floatatom 1023 446 5 0 0 0 - - -; 405 | #X msg 434 265 send /aubioOnSet; 406 | #X msg 434 219 send /aubioTempo; 407 | #X obj 298 109 r aubio_pitch; 408 | #X obj 298 132 r aubio_quiet; 409 | #X obj 957 542 r fiddle_raw_amp; 410 | #X msg 751 469 send /fiddlePitch \$0; 411 | #X obj 61 318 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 412 | 1; 413 | #X text 80 317 (on/off); 414 | #X obj 414 149 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 415 | 1; 416 | #X obj 298 179 r aubio_tempo_bis; 417 | #X obj 416 196 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 418 | -1 -1; 419 | #X obj 298 225 r aubio_bpm; 420 | #X floatatom 399 242 5 0 0 0 - - -; 421 | #X obj 298 202 r aubio_tempo; 422 | #X obj 416 219 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 423 | -1 -1; 424 | #X obj 298 248 r aubio_onset; 425 | #X obj 416 265 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 426 | -1 -1; 427 | #X floatatom -38 213 5 0 0 0 - - -; 428 | #X floatatom 398 287 5 0 0 0 - - -; 429 | #X obj 297 270 r aubio_zcr; 430 | #X text 296 28 All analysed data is routed to OSC messages in this 431 | section; 432 | #X text 688 77 FIDDLE FFT ROUTING; 433 | #X text 688 385 FIDDLE :: [pitch \, attack \, silence \, amplitude] 434 | ROUTING; 435 | #X text 296 81 :: LIB AUBIO ROUTING ::; 436 | #X text -51 132 SOUND OUTPUT; 437 | #X text -26 172 Volume; 438 | #X text -26 151 On/Off; 439 | #X text 17 251 AUDIO SOURCE; 440 | #X obj 583 166 s osc_output; 441 | #X obj 583 282 s osc_output; 442 | #X msg 434 196 send /aubioTempoBis; 443 | #X obj 583 236 s osc_output; 444 | #X msg 433 287 send /aubioZcr \$1; 445 | #X msg 433 149 send /aubioQuiet \$1; 446 | #X msg 433 126 send /aubioPitch \$1; 447 | #X msg 958 515 send /fiddleAmp \$1; 448 | #X msg 957 562 send /fiddleRawAmp \$1; 449 | #X msg 842 448 send /fiddleRawPitch \$1; 450 | #X msg 689 448 send /fiddleSilence \$1; 451 | #X obj 176 234 loadbang; 452 | #X obj -67 628 import mrpeach; 453 | #X msg 88 540 connect localhost 12000; 454 | #X msg 958 468 send /fiddleAttack; 455 | #X obj -67 583 sendOSC; 456 | #X obj -67 605 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 457 | 1; 458 | #X obj -67 540 spigot; 459 | #X text 25 601 Alternatively \, you can use UDPsend; 460 | #X text 26 617 with packOSC instead of sendOSC; 461 | #X text -46 604 UDP State; 462 | #X text 82 336 LIB AUBIO ANALYSIS; 463 | #X text 116 269 FFT & MORE ANALYSIS; 464 | #X obj 61 295 loadbang; 465 | #X text 25 632 http://en.flossmanuals.net/pure-data/ch065_osc/; 466 | #N canvas 178 23 997 667 aubio 1; 467 | #X obj 41 161 aubioonset~; 468 | #X obj 41 196 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 469 | -1; 470 | #X obj 462 164 aubiopitch~; 471 | #X obj 462 211 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 472 | -262144 -1 -1 1 256; 473 | #X obj 130 197 bng 15 50 10 0 empty empty empty 17 7 0 10 -262144 -1 474 | -1; 475 | #X obj 217 198 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 476 | -1 -1; 477 | #X obj 130 163 aubiotempo~ 0.5; 478 | #X obj 322 348 i; 479 | #X obj 360 349 + 1; 480 | #X floatatom 322 378 5 0 0 0 - - -; 481 | #X obj 158 339 alternate; 482 | #X obj 158 369 timer; 483 | #X floatatom 158 395 5 0 0 0 - - -; 484 | #X floatatom 158 520 5 0 0 0 - - -; 485 | #X obj 158 422 expr ($i1 / 6) * 2; 486 | #X obj 158 479 hid/hid_average; 487 | #X floatatom 245 451 5 0 0 0 - - -; 488 | #X floatatom 158 451 5 0 0 0 - - -; 489 | #X floatatom 322 453 5 0 0 0 - - -; 490 | #X floatatom 345 474 5 0 0 0 - - -; 491 | #X floatatom 368 454 5 0 0 0 - - -; 492 | #N canvas 837 96 511 413 timer_utility 0; 493 | #X obj 101 28 inlet; 494 | #X obj 101 377 outlet; 495 | #X obj 160 28 inlet; 496 | #X obj 394 185 sel 0; 497 | #X obj 393 215 0; 498 | #X obj 356 239 metro 1000; 499 | #X obj 101 181 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 500 | -1 -1; 501 | #X obj 101 206 i; 502 | #X obj 143 207 + 1; 503 | #X obj 101 242 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 504 | -262144 -1 -1 0 256; 505 | #X obj 101 322 div 4; 506 | #X obj 101 348 + 1; 507 | #X obj 199 350 + 1; 508 | #X obj 191 376 outlet; 509 | #X obj 215 101 expr ($i1 * 60) / 1000; 510 | #X obj 215 29 inlet; 511 | #X obj 215 132 outlet; 512 | #X obj 237 233 inlet; 513 | #X obj 236 264 t t f; 514 | #X obj 192 322 mod 4; 515 | #X obj 275 378 outlet; 516 | #X obj 349 380 outlet; 517 | #X obj 276 324 div 60; 518 | #X obj 350 326 mod 60; 519 | #X obj 356 155 t f f; 520 | #X obj 355 124 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 521 | -1 -1; 522 | #X connect 0 0 6 0; 523 | #X connect 3 0 4 0; 524 | #X connect 5 0 22 0; 525 | #X connect 5 0 23 0; 526 | #X connect 6 0 7 0; 527 | #X connect 7 0 8 0; 528 | #X connect 7 0 9 0; 529 | #X connect 8 0 7 1; 530 | #X connect 9 0 10 0; 531 | #X connect 9 0 19 0; 532 | #X connect 10 0 11 0; 533 | #X connect 11 0 1 0; 534 | #X connect 14 0 16 0; 535 | #X connect 15 0 14 0; 536 | #X connect 17 0 18 0; 537 | #X connect 18 0 19 1; 538 | #X connect 18 1 10 1; 539 | #X connect 19 0 13 0; 540 | #X connect 22 0 20 0; 541 | #X connect 23 0 21 0; 542 | #X connect 24 0 5 0; 543 | #X connect 24 1 3 0; 544 | #X connect 25 0 24 0; 545 | #X restore 322 409 pd timer_utility; 546 | #X text 16 13 Uses lib Aubio to get several MIR information; 547 | #X obj 230 69 inlet~ LeftAudio; 548 | #X obj 351 69 inlet~ RightAudio; 549 | #X obj 291 164 aubioquiet~; 550 | #X obj 517 69 inlet on_off_switch; 551 | #X obj 285 90 spigot~; 552 | #X obj 351 90 spigot~; 553 | #X obj 345 496 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 554 | -1 -1 1; 555 | #X text 325 321 METRONOM; 556 | #X text 173 318 TEMPO // BPM; 557 | #X obj 496 71 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 558 | 1; 559 | #X obj 41 257 s aubio_onset; 560 | #X obj 130 257 s aubio_tempo; 561 | #X obj 217 257 s aubio_tempo_bis; 562 | #X obj 291 230 s aubio_quiet; 563 | #X obj 462 256 s aubio_pitch; 564 | #X obj 310 503 == 0; 565 | #X obj 345 520 tgl 60 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 566 | 1; 567 | #X obj 158 544 s aubio_bpm; 568 | #X obj 716 164 aubiotss~; 569 | #X obj 716 249 vsl 15 100 0 1 0 0 empty empty empty 0 -9 0 10 -262144 570 | -1 -1 9900 1; 571 | #X obj 716 188 env~; 572 | #X obj 767 249 vsl 15 100 0 1 0 0 empty empty empty 0 -9 0 10 -262144 573 | -1 -1 9900 1; 574 | #X obj 767 189 env~; 575 | #X obj 716 141 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 576 | -1 -1 0 0; 577 | #X floatatom 778 164 5 0 0 0 - - -; 578 | #X text 713 123 Variation Threshold; 579 | #X obj 577 166 aubiozcr~; 580 | #X floatatom 577 228 5 0 0 0 - - -; 581 | #X obj 577 356 s aubio_zcr; 582 | #X obj 19 526 i 0; 583 | #X text 19 443 Reset all values; 584 | #X obj 26 483 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 585 | -1; 586 | #X obj 26 503 delay 1000; 587 | #X obj 517 101 s aubio-off; 588 | #X obj 19 460 r aubio-off; 589 | #X obj 48 543 s aubio_reset; 590 | #X obj 804 230 r aubio_reset; 591 | #X obj 471 187 r aubio_reset; 592 | #X obj 196 503 r aubio_reset; 593 | #X obj 406 430 r aubio_reset; 594 | #N canvas 775 308 450 300 clean_signal 0; 595 | #X obj 51 133 ==; 596 | #X obj 93 116 f; 597 | #X floatatom 102 139 5 0 0 0 - - -; 598 | #X text 24 10 SIGNAL CLEANER; 599 | #X obj 51 68 inlet float; 600 | #X obj 51 156 sel 0; 601 | #X obj 93 163 outlet float; 602 | #X text 25 24 Prevents resending bangs when the float value has not 603 | changed. (Sort of flood filter); 604 | #X connect 0 0 5 0; 605 | #X connect 1 0 0 1; 606 | #X connect 1 0 2 0; 607 | #X connect 1 0 6 0; 608 | #X connect 4 0 1 1; 609 | #X connect 4 0 0 0; 610 | #X connect 5 0 1 0; 611 | #X restore 462 233 pd clean_signal; 612 | #X floatatom 577 289 5 0 0 0 - - -; 613 | #X obj 543 305 -; 614 | #X obj 543 327 abs; 615 | #X obj 526 396 sqrt; 616 | #X obj 577 248 average 10; 617 | #X text 13 65 Treshold Tempo; 618 | #X text 14 88 Treshold OnSet; 619 | #X obj 591 268 r aubio_reset; 620 | #X floatatom 634 227 5 0 20 2 - - -; 621 | #X text 584 211 Zcr; 622 | #X text 613 290 Smoothed; 623 | #N canvas 960 356 450 300 clean_signal 0; 624 | #X obj 51 133 ==; 625 | #X obj 93 116 f; 626 | #X floatatom 102 139 5 0 0 0 - - -; 627 | #X text 24 10 SIGNAL CLEANER; 628 | #X obj 51 68 inlet float; 629 | #X obj 51 156 sel 0; 630 | #X obj 93 163 outlet float; 631 | #X text 25 24 Prevents resending bangs when the float value has not 632 | changed. (Sort of flood filter); 633 | #X connect 0 0 5 0; 634 | #X connect 1 0 0 1; 635 | #X connect 1 0 2 0; 636 | #X connect 1 0 6 0; 637 | #X connect 4 0 1 1; 638 | #X connect 4 0 0 0; 639 | #X connect 5 0 1 0; 640 | #X restore 577 332 pd clean_signal; 641 | #X obj 560 378 r aubio_reset; 642 | #X obj 580 400 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 643 | -1 -1 9900 1; 644 | #X obj 580 418 hsl 100 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 645 | -1 -1 9900 1; 646 | #X obj 496 305 hsl 40 15 -0.1 0.1 0 0 empty empty empty -2 -8 0 10 647 | -262144 -1 -1 0 1; 648 | #X floatatom 154 68 5 0 0 0 - - -; 649 | #X text 629 198 Smoothing; 650 | #X text 630 209 Treshold; 651 | #X obj 107 68 hsl 40 15 0 10 0 0 empty empty empty -2 -8 0 10 -262144 652 | -1 -1 0 1; 653 | #X floatatom 154 88 5 0 0 0 - - -; 654 | #X obj 107 89 hsl 40 15 0 15 0 0 empty empty empty -2 -8 0 10 -262144 655 | -1 -1 0 1; 656 | #X floatatom 506 324 5 0 0 0 - - -; 657 | #X text 102 46 PARAMETERS; 658 | #X text 491 288 Treshold; 659 | #X obj 716 440 <; 660 | #X obj 722 414 f 0.005; 661 | #X obj 767 210 / 127; 662 | #X obj 716 210 / 127; 663 | #X obj 722 393 loadbang; 664 | #X obj 787 251 vsl 15 100 -1 1 0 0 empty empty empty 0 -9 0 10 -262144 665 | -1 -1 5854 1; 666 | #X obj 846 324 -; 667 | #X obj 577 310 * 5; 668 | #X obj 478 344 -; 669 | #X text 575 433 ZeroCross Variation; 670 | #X obj 529 379 * 2; 671 | #X obj 497 361 average 3; 672 | #X text 384 579 comment; 673 | #X obj 767 440 <; 674 | #X obj 722 376 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 675 | -1 -1; 676 | #X obj 752 466 == 0; 677 | #X obj 716 491 &; 678 | #N canvas 775 308 450 300 clean_signal 0; 679 | #X obj 51 133 ==; 680 | #X obj 93 116 f; 681 | #X floatatom 102 139 5 0 0 0 - - -; 682 | #X text 24 10 SIGNAL CLEANER; 683 | #X obj 51 68 inlet float; 684 | #X obj 51 156 sel 0; 685 | #X obj 93 163 outlet float; 686 | #X text 25 24 Prevents resending bangs when the float value has not 687 | changed. (Sort of flood filter); 688 | #X connect 0 0 5 0; 689 | #X connect 1 0 0 1; 690 | #X connect 1 0 2 0; 691 | #X connect 1 0 6 0; 692 | #X connect 4 0 1 1; 693 | #X connect 4 0 0 0; 694 | #X connect 5 0 1 0; 695 | #X restore 716 512 pd clean_signal; 696 | #X obj 291 209 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 697 | 1; 698 | #X obj 291 188 i 1; 699 | #X obj 716 535 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 700 | 1; 701 | #X obj 716 467 == 0; 702 | #X text 737 533 isPlaying; 703 | #X obj 716 556 s aubio_is_playing; 704 | #X obj 320 188 r aubio_is_playing; 705 | #X obj 343 208 sel 1; 706 | #X obj 311 209 i 0; 707 | #X obj 846 347 average 30; 708 | #X obj 846 370 sqrt; 709 | #X text 810 277 (~Sound similarity indicator); 710 | #X text 575 447 (~cymbal detection); 711 | #X floatatom 623 312 5 0 0 0 - - -; 712 | #X connect 0 0 1 0; 713 | #X connect 1 0 33 0; 714 | #X connect 2 0 3 0; 715 | #X connect 3 0 63 0; 716 | #X connect 4 0 7 0; 717 | #X connect 4 0 10 0; 718 | #X connect 4 0 34 0; 719 | #X connect 5 0 35 0; 720 | #X connect 6 0 4 0; 721 | #X connect 6 1 5 0; 722 | #X connect 7 0 9 0; 723 | #X connect 7 0 8 0; 724 | #X connect 8 0 7 1; 725 | #X connect 9 0 21 0; 726 | #X connect 10 0 11 0; 727 | #X connect 10 1 11 1; 728 | #X connect 11 0 12 0; 729 | #X connect 12 0 14 0; 730 | #X connect 13 0 40 0; 731 | #X connect 14 0 17 0; 732 | #X connect 15 0 13 0; 733 | #X connect 16 0 15 1; 734 | #X connect 17 0 15 0; 735 | #X connect 19 0 29 0; 736 | #X connect 19 0 38 0; 737 | #X connect 21 0 18 0; 738 | #X connect 21 1 19 0; 739 | #X connect 21 2 20 0; 740 | #X connect 23 0 27 0; 741 | #X connect 24 0 28 0; 742 | #X connect 25 0 108 0; 743 | #X connect 26 0 32 0; 744 | #X connect 27 1 6 0; 745 | #X connect 27 1 0 0; 746 | #X connect 27 1 25 0; 747 | #X connect 27 1 2 0; 748 | #X connect 27 1 41 0; 749 | #X connect 27 1 49 0; 750 | #X connect 28 1 2 0; 751 | #X connect 28 1 25 0; 752 | #X connect 28 1 6 0; 753 | #X connect 28 1 0 0; 754 | #X connect 28 1 41 0; 755 | #X connect 28 1 49 0; 756 | #X connect 32 0 28 1; 757 | #X connect 32 0 27 1; 758 | #X connect 32 0 56 0; 759 | #X connect 38 0 39 0; 760 | #X connect 41 0 43 0; 761 | #X connect 41 1 45 0; 762 | #X connect 42 0 95 0; 763 | #X connect 42 0 89 0; 764 | #X connect 43 0 92 0; 765 | #X connect 44 0 95 1; 766 | #X connect 44 0 102 0; 767 | #X connect 45 0 91 0; 768 | #X connect 46 0 41 1; 769 | #X connect 46 0 47 0; 770 | #X connect 49 0 50 0; 771 | #X connect 50 0 68 0; 772 | #X connect 50 0 65 1; 773 | #X connect 52 0 58 0; 774 | #X connect 54 0 55 0; 775 | #X connect 55 0 52 0; 776 | #X connect 57 0 52 0; 777 | #X connect 57 0 54 0; 778 | #X connect 59 0 42 0; 779 | #X connect 59 0 44 0; 780 | #X connect 60 0 3 0; 781 | #X connect 61 0 13 0; 782 | #X connect 62 0 18 0; 783 | #X connect 62 0 19 0; 784 | #X connect 63 0 37 0; 785 | #X connect 64 0 65 0; 786 | #X connect 64 0 96 0; 787 | #X connect 65 0 66 0; 788 | #X connect 66 0 97 0; 789 | #X connect 67 0 78 0; 790 | #X connect 68 0 64 0; 791 | #X connect 71 0 64 0; 792 | #X connect 72 0 68 1; 793 | #X connect 75 0 51 0; 794 | #X connect 75 0 120 0; 795 | #X connect 76 0 78 0; 796 | #X connect 76 0 96 0; 797 | #X connect 79 0 86 0; 798 | #X connect 79 0 97 1; 799 | #X connect 83 0 80 0; 800 | #X connect 83 0 6 1; 801 | #X connect 85 0 84 0; 802 | #X connect 85 0 0 1; 803 | #X connect 89 0 104 0; 804 | #X connect 89 0 110 0; 805 | #X connect 90 0 89 1; 806 | #X connect 90 0 102 1; 807 | #X connect 91 0 44 0; 808 | #X connect 92 0 42 0; 809 | #X connect 93 0 90 0; 810 | #X connect 95 0 116 0; 811 | #X connect 96 0 77 0; 812 | #X connect 96 0 75 0; 813 | #X connect 97 0 100 0; 814 | #X connect 99 0 67 0; 815 | #X connect 100 0 99 0; 816 | #X connect 102 0 104 0; 817 | #X connect 103 0 93 0; 818 | #X connect 104 0 105 1; 819 | #X connect 105 0 106 0; 820 | #X connect 106 0 109 0; 821 | #X connect 107 0 36 0; 822 | #X connect 108 0 107 0; 823 | #X connect 109 0 112 0; 824 | #X connect 110 0 105 0; 825 | #X connect 113 0 114 0; 826 | #X connect 114 0 115 0; 827 | #X connect 115 0 107 0; 828 | #X connect 116 0 117 0; 829 | #X connect 117 0 94 0; 830 | #X restore 16 337 pd aubio; 831 | #X obj -11 517 spigot; 832 | #X obj 22 443 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 833 | 1; 834 | #X obj -11 540 print; 835 | #X floatatom 398 126 5 0 0 0 - - -; 836 | #X text 40 442 Print Output to Console; 837 | #X obj 583 143 s osc_output; 838 | #X obj 584 213 s osc_output; 839 | #X msg 434 242 send /aubioBpm \$1; 840 | #X obj 583 259 s osc_output; 841 | #X obj 583 190 s osc_output; 842 | #X obj 584 304 s osc_output; 843 | #X text 658 7 Todo: - http://forumnet.ircam.fr/product/antescofo/?lang=en 844 | ; 845 | #X obj 298 156 r aubio_is_playing; 846 | #X msg 433 173 send /aubioIsPlaying \$1; 847 | #X obj 415 173 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 848 | 1; 849 | #X obj 15 368 -~; 850 | #X floatatom 15 415 5 0 0 0 - - -; 851 | #X obj 56 414 sqrt; 852 | #X obj 93 369 vsl 15 60 -1 1 0 0 empty empty empty 0 -9 0 10 -262144 853 | -1 -1 0 1; 854 | #X text 43 371 Balance; 855 | #X obj 15 393 average~ 200; 856 | #X obj -67 484 r osc_output; 857 | #X obj 113 415 s osc_output; 858 | #N canvas 775 308 450 300 clean_signal 0; 859 | #X obj 51 133 ==; 860 | #X obj 93 116 f; 861 | #X floatatom 102 139 5 0 0 0 - - -; 862 | #X text 24 10 SIGNAL CLEANER; 863 | #X obj 51 68 inlet float; 864 | #X obj 51 156 sel 0; 865 | #X obj 93 163 outlet float; 866 | #X text 25 24 Prevents resending bangs when the float value has not 867 | changed. (Sort of flood filter); 868 | #X connect 0 0 5 0; 869 | #X connect 1 0 0 1; 870 | #X connect 1 0 2 0; 871 | #X connect 1 0 6 0; 872 | #X connect 4 0 1 1; 873 | #X connect 4 0 0 0; 874 | #X connect 5 0 1 0; 875 | #X restore 113 375 pd clean_signal; 876 | #X msg 113 395 send /balance \$1; 877 | #X text 275 383 Many OSC optimisation todo here \, frequency and packing 878 | stuff. See resample.pd and sendmany-osc.pd; 879 | #X connect 0 0 5 0; 880 | #X connect 0 0 13 0; 881 | #X connect 0 0 131 0; 882 | #X connect 0 0 147 0; 883 | #X connect 0 1 5 0; 884 | #X connect 0 1 13 1; 885 | #X connect 0 1 131 1; 886 | #X connect 0 1 147 1; 887 | #X connect 1 0 121 0; 888 | #X connect 2 0 121 0; 889 | #X connect 3 0 121 0; 890 | #X connect 4 0 47 0; 891 | #X connect 5 0 6 0; 892 | #X connect 5 0 6 1; 893 | #X connect 7 0 119 0; 894 | #X connect 8 0 9 0; 895 | #X connect 11 0 10 0; 896 | #X connect 36 0 19 0; 897 | #X connect 37 0 21 0; 898 | #X connect 38 0 22 0; 899 | #X connect 39 0 23 0; 900 | #X connect 40 0 24 0; 901 | #X connect 41 0 25 0; 902 | #X connect 42 0 18 0; 903 | #X connect 43 0 20 0; 904 | #X connect 44 0 17 0; 905 | #X connect 45 0 16 0; 906 | #X connect 47 0 5 1; 907 | #X connect 47 0 95 0; 908 | #X connect 48 0 116 0; 909 | #X connect 48 0 68 0; 910 | #X connect 49 0 41 0; 911 | #X connect 49 0 35 0; 912 | #X connect 50 0 40 0; 913 | #X connect 50 0 34 0; 914 | #X connect 51 0 39 0; 915 | #X connect 51 0 33 0; 916 | #X connect 52 0 38 0; 917 | #X connect 52 0 32 0; 918 | #X connect 53 0 37 0; 919 | #X connect 53 0 31 0; 920 | #X connect 54 0 36 0; 921 | #X connect 54 0 30 0; 922 | #X connect 55 0 43 0; 923 | #X connect 55 0 29 0; 924 | #X connect 56 0 42 0; 925 | #X connect 56 0 28 0; 926 | #X connect 57 0 44 0; 927 | #X connect 57 0 27 0; 928 | #X connect 58 0 45 0; 929 | #X connect 58 0 26 0; 930 | #X connect 63 0 83 0; 931 | #X connect 63 0 69 0; 932 | #X connect 64 0 120 0; 933 | #X connect 64 0 74 0; 934 | #X connect 65 0 113 0; 935 | #X connect 65 0 72 0; 936 | #X connect 66 0 13 2; 937 | #X connect 70 0 115 0; 938 | #X connect 70 0 71 0; 939 | #X connect 74 0 75 0; 940 | #X connect 75 0 76 0; 941 | #X connect 75 0 77 0; 942 | #X connect 76 0 75 1; 943 | #X connect 78 0 107 0; 944 | #X connect 79 0 109 0; 945 | #X connect 80 0 135 0; 946 | #X connect 80 0 112 0; 947 | #X connect 81 0 111 0; 948 | #X connect 81 0 86 0; 949 | #X connect 82 0 114 0; 950 | #X connect 82 0 73 0; 951 | #X connect 83 0 46 0; 952 | #X connect 84 0 131 2; 953 | #X connect 87 0 108 0; 954 | #X connect 87 0 88 0; 955 | #X connect 89 0 90 0; 956 | #X connect 89 0 139 0; 957 | #X connect 91 0 92 0; 958 | #X connect 91 0 79 0; 959 | #X connect 93 0 78 0; 960 | #X connect 93 0 94 0; 961 | #X connect 97 0 96 0; 962 | #X connect 97 0 110 0; 963 | #X connect 108 0 138 0; 964 | #X connect 110 0 142 0; 965 | #X connect 111 0 106 0; 966 | #X connect 112 0 137 0; 967 | #X connect 113 0 46 0; 968 | #X connect 114 0 46 0; 969 | #X connect 115 0 46 0; 970 | #X connect 116 0 46 0; 971 | #X connect 117 0 66 0; 972 | #X connect 119 0 121 0; 973 | #X connect 120 0 46 0; 974 | #X connect 121 0 122 0; 975 | #X connect 122 0 123 1; 976 | #X connect 123 0 121 0; 977 | #X connect 123 0 132 0; 978 | #X connect 129 0 84 0; 979 | #X connect 132 0 134 0; 980 | #X connect 133 0 132 1; 981 | #X connect 139 0 140 0; 982 | #X connect 144 0 145 0; 983 | #X connect 144 0 146 0; 984 | #X connect 145 0 141 0; 985 | #X connect 147 0 152 0; 986 | #X connect 148 0 149 0; 987 | #X connect 149 0 150 0; 988 | #X connect 150 0 155 0; 989 | #X connect 152 0 148 0; 990 | #X connect 153 0 123 0; 991 | #X connect 155 0 156 0; 992 | #X connect 156 0 154 0; 993 | --------------------------------------------------------------------------------