|
Titolo: non realtime audio analisi Post di: mic su Marzo 02, 2006, 18:03:36 ecco quello che vorrei fare: dato un file audio usare jit.poke per scrivere in una matrice (sto parlando di oggetti di jitter) il segnale sottoforma di valori d amplitude per poi analizzarla, per esempio la posizione in ms degli attacks o dei picchi; il tutto non in real-time cioè a velocità moltiplicata..
maurizio hai mai fatto niente del genere.. Titolo: Re: non realtime audio analisi Post di: mauriziogiri su Marzo 02, 2006, 21:50:56 Ahimé no...
ma toglimi una curiosità, hai un motivo particolare usare jit.poke~? A occhio mi sembra che sia sufficiente poke~. Probabilmente ti servirà average~ per ricavare l'inviluppo e poi ti toccherà trovare un modo per calcolare la pendenza dei punti culminanti (per decidere se hai un attacco percussivo o un lento crescendo), etc... buona fortuna! ;) m Titolo: Re: non realtime audio analisi Post di: mic su Marzo 02, 2006, 22:21:57 si hai ragione poke~ è sufficente!..questa è un idea leafcutter john..via mail mi ha detto che lo usa gia questo metodo..che invidia! ;)
Titolo: Re: non realtime audio analisi Post di: mic su Marzo 02, 2006, 23:12:48 io avrei un idea piuttosto grossolana: usare peek per leggere i valori in un buffer a intevalli (abbastanza piccoli) e facendo la differenza tra i valori vedere dove c'è un incremento veloce del valore..se la differenza è grande di un certo valore (che determinerebbe una specie di sensibilità dell'analisi..) ci sono buone probabilità che in quell'intervallo ci sia un attacco..
spero di essermi spiegato.. Titolo: Re: non realtime audio analisi Post di: mauriziogiri su Marzo 02, 2006, 23:26:28 Sì, la procedura dovrebbe essere più o meno questa...
Quando ho un po' di tempo magari ci penso (se nel frattempo non hai trovato un buon metodo tu, nel qual caso rendici partecipi! :) ) Titolo: Re: non realtime audio analisi Post di: franz su Marzo 03, 2006, 13:33:16 perchè non utilizzare semplicemente un envelope follower come quelli della libreria di Trond Lossius o negli esempi di Java in max? Chiaro che dovrai lavorare in real-time ma nessuno ti impedisce appunto di registrare un buffer~ o un poke~ e riutilizzarlo in tempo differito e leggerlo come e quando vuoi tu. :P
Titolo: Re: non realtime audio analisi Post di: mic su Marzo 03, 2006, 14:14:18 si si hai ragione in realtime non è una cosa difficile, anzi ..però riuscire a farlo in non-realtime è diverso ;D ;D!..cioè è una mera questione un po da fanatici lo so!..riuscire a scrivere un algoritmo decente che faccia un detect di quel tipo offline (che poi non è altro che un beatslicing) sarebbe anche una bella soddisfazione ;D
Titolo: Re: non realtime audio analisi Post di: franz su Marzo 03, 2006, 14:58:13 si ma voglio dire...invece di sbatterti così tanto registri in un buffer~ tramite poke~ oppure utilizzi peek~ una porzione di segnale audio in RMS // sqrt(segnale*segnale) // e poi la fai suonare direttamente alla velocità che vuoi tu tramite un oggetto wave~, il "detecting" dei picchi degli attacchi e tutto il resto a questo punto viene da se...però si riduce all'utilizzo di un loop come envelope-follower...
Se poi vuoi fare una specie di beatslicing ti fai un calcolo dei ms suddivisi in parti uguali e li fai suonare come e quando vuoi:) In questo modo però tutto il senso di usare un envelope follower va a farsi benedire e forse non è questo il tuo scopo di utilizo a questo punto :D Titolo: Re: non realtime audio analisi Post di: mic su Marzo 03, 2006, 15:49:16 ..beh dunque, il beat-slicing che dici è come quello che si può fare con patches come modsquad e simili..a me interessava uno slicing che tenesse conto degli attacchi..lo so che per questo esiste già recycle, ma mi interessava capire come poter fare una cosa simile in max, tutto qua..comunque penso che per ora farò qualcosa che usi un metodo velocizzato di peak-following
Titolo: Re: non realtime audio analisi Post di: mic su Marzo 03, 2006, 16:50:54 ecco quà signori, questa è una patch fatta in fretta, sicuramente con dei difetti, che effettua in realtime (più o meno velocizzato) il detect degli attacchi...a me sembra confermare tutte le perplessità che avevo sul realtime..
max v2; #N vpatcher 74 44 767 745; #P origin 0 -5; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P hidden newex 203 99 68 196617 prepend open; #P hidden newex 510 138 81 196617 prepend replace; #P toggle 18 36 15 0; #P button 367 230 32 0; #P hidden message 566 229 51 196617 set boo 1; #P hidden newex 527 198 62 196617 buffer~ boo; #P user waveform~ 279 265 368 138 3 9; #W mode select; #W mouseoutput continuous; #W unit ms; #W grid 4040.; #W ticks 0; #W labels 0; #W vlabels 0; #W vticks 0; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 255 255 255; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 0 0 0; #W rgb7 100 100 100; #N counter; #X flags 0 0; #P newobj 182 298 66 196617 counter; #P message 17 546 33 196617 clear; #P number 238 272 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #N coll ; #P newobj 56 569 53 196617 coll; #P newex 56 544 51 196617 pack 1 1.; #P message 55 495 14 196617 0; #P newex 18 67 40 196617 t i b b; #N counter; #X flags 0 0; #P newobj 56 517 66 196617 counter; #P flonum 103 25 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P message 103 43 48 196617 speed \$1; #P newex 124 517 27 196617 f; #P flonum 259 151 73 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P user number~ 167 120 269 135 9 3 3 2 0. 0. 0 0. 20 0. 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 69 474 30 196617 t b b; #P newex 164 192 65 196617 loadmess -4; #P user multiSlider 3 403 12 82 -1. 1. 1 2681 15 0 0 2 0 0 0; #M frgb 0 0 0; #M brgb 255 255 255; #M rgb2 127 127 127; #M rgb3 0 0 0; #M rgb4 37 52 91; #M rgb5 74 105 182; #M rgb6 112 158 18; #M rgb7 149 211 110; #M rgb8 187 9 201; #M rgb9 224 62 37; #M rgb10 7 114 128; #P window linecount 2; #P newex 3 365 51 196617 peakamp~ 10; #P user ezdac~ 255 25 299 58 0; #P button 69 456 15 0; #P window linecount 1; #P newex 69 381 35 196617 edge~; #P newex 69 358 32 196617 >~ 0.; #P newex 69 336 35 196617 !-~ 1.; #P newex 69 313 33 196617 /~ 1.; #P flonum 164 226 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 111 169 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 69 274 85 196617 maximum~ -120.; #P newex 69 147 39 196617 atodb~; #P newex 69 114 30 196617 abs~; #N sfplay~ 1 60000 2 ; #P newobj 69 67 95 196617 sfplay~ 1 60000 2; #B color 5; #P newex 69 222 65 196617 minimum~ 0.; #P newex 69 182 33 196617 +~ 0.; #P comment 109 188 29 196617 gain; #P user dropfile 278 190 367 263 0; #P comment 282 195 77 196617 drop a file here; #P comment 34 38 49 196617 play once; #P user panel 280 190 84 74; #X brgb 191 191 191; #X frgb 0 0 0; #X border 1; #X rounded 0; #X shadow 0; #X done; #P window linecount 5; #P comment 55 590 115 196617 apri la coll per vedere la posizione in ms degli attacchi... non funziona proprio un granche bene; #P window linecount 4; #P comment 400 212 100 196617 cliccando il puntatore dovrebbe avanzare di attacco in attacco; #P window linecount 2; #P comment 199 226 54 196617 aggiusta la sensibilità; #P comment 152 32 87 196617 prova con diverse velocità..; #P fasten 18 0 23 0 74 355 8 355; #P connect 23 0 24 0; #P fasten 33 2 38 0 53 541 22 541; #P connect 44 0 33 0; #P fasten 33 1 34 0 38 490 60 490; #P connect 26 0 32 0; #P connect 32 0 35 0; #P fasten 39 0 36 0 187 564 61 564; #P connect 38 0 36 0; #P connect 35 0 36 0; #P hidden connect 46 0 11 0; #P connect 33 0 11 0; #P connect 30 0 11 0; #P connect 11 0 12 0; #P connect 12 0 13 0; #P connect 13 0 9 0; #P connect 9 0 10 0; #P connect 10 0 14 0; #P connect 14 0 17 0; #P connect 17 0 18 0; #P connect 18 0 19 0; #P connect 19 0 20 0; #P connect 20 0 21 0; #P connect 21 0 26 0; #P connect 34 0 32 2; #P connect 15 0 9 1; #P fasten 16 0 17 1 169 306 97 306; #P connect 29 0 35 1; #P connect 31 0 30 0; #P connect 26 1 29 0; #P fasten 28 0 29 1 264 513 146 513; #P fasten 16 0 14 1 169 267 149 267; #P connect 25 0 16 0; #P connect 11 1 27 0; #P fasten 43 0 39 0 372 264 187 264; #P hidden connect 7 0 46 0; #P fasten 32 0 37 0 61 539 243 539; #P connect 37 0 39 4; #P hidden fasten 11 0 22 0 74 93 260 93; #P connect 27 1 28 0; #P hidden fasten 42 0 40 0 571 264 284 264; #P hidden connect 36 0 40 2; #P hidden connect 7 0 45 0; #P hidden connect 45 0 41 0; #P hidden connect 36 0 40 3; #P hidden connect 41 1 42 0; #P pop; Titolo: Re: non realtime audio analisi Post di: mic su Marzo 03, 2006, 16:55:10 insomma non funziona proprio bene! :(..mi date una mano..
Titolo: Re: non realtime audio analisi Post di: mauriziogiri su Marzo 03, 2006, 18:11:56 Mi sembra che la prima cosa da fare sia un envelope follower, e usare quello per il detect degli attacchi.
Ho fatto un piccolo e.f. non-realtime, che lavora con i normali messaggi max (non c'è quindi bisogno di impostare l'opzione "nonreal time" nella finestra dsp status), e va più veloce del tempo reale (anche se non moltissimo). Ecco la patch che estrae l'inviluppo, prova a giocarci un po'... prima salva questo come vs.onepole (senza tilde) #P outlet 106 224 15 0; #P inlet 125 29 15 0; #P inlet 40 28 15 0; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 125 73 64 196617 unpack 0. 0.; #P newex 167 138 29 196617 * 0.; #P newex 106 171 71 196617 expr $f1-$f2; #P newex 106 129 29 196617 * 0.; #P connect 3 1 2 1; #P connect 2 0 1 1; #P connect 1 0 6 0; #P fasten 1 0 2 0 111 201 214 201 214 130 172 130; #P connect 3 0 0 1; #P connect 5 0 3 0; #P connect 0 0 1 0; #P connect 4 0 0 0; #P window clipboard copycount 7; e questa è la main patch: #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 299 286 49 196617 s coeffic; #P newex 299 259 54 196617 pack 0. 0.; #P message 837 90 14 196617 1; #P newex 519 74 66 196617 r loadbanged; #P newex 635 63 66 196617 s loadbanged; #P newex 635 36 48 196617 loadbang; #P message 519 100 40 196617 44100; #P window setfont "Sans Serif" 14.; #P comment 770 123 32 196622 5); #P window setfont "Sans Serif" 9.; #P comment 807 123 176 196617 usa l'inviluppo con un oscillatore; #P comment 257 56 248 196617 imposta una frequenza per envfollow 10/20 Hz; #P window setfont "Sans Serif" 14.; #P comment 256 73 32 196622 3); #P comment 606 98 32 196622 4); #P window setfont "Sans Serif" 9.; #P newex 837 68 66 196617 r loadbanged; #P comment 7 416 78 196617 buffer analisi; #P window setfont "Sans Serif" 14.; #P comment 17 114 32 196622 2); #P window setfont "Sans Serif" 9.; #P newex 874 294 61 196617 cycle~ 440; #P newex 857 316 27 196617 *~; #P comment 363 77 100 196617 Hz.; #P window linecount 2; #P comment 308 101 205 196617 si suppone una frequenza di campionamento di 44100 \, eventualmente cambiare; #P flonum 299 187 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 1; #P comment 327 208 19 196617 a0; #P comment 405 208 17 196617 b1; #P newex 299 133 212 196617 expr sin (2. * 3.141594 * $f1 * (1. / $f2)); #P flonum 377 187 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 377 164 27 196617 - 1.; #P flonum 299 75 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 748 328 49 196617 r coeffic; #N vpreset 1; #X append 1 2 25 344 857 gain~ list 111 10. \; 34 394 720 flonum float 4. \; 39 75 299 flonum float 10. \; 41 187 377 flonum float -0.998575 \; 45 187 299 flonum float 0.001425 \;; #P preset 837 172 47 27; #P newex 86 319 66 196617 r loadbanged; #P newex 701 328 37 196617 abs 0.; #P flonum 720 394 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 701 420 29 196617 * 2.; #P toggle 838 208 15 0; #P newex 838 231 29 196617 sig~; #P message 899 223 43 196617 loop \$1; #P newex 857 273 83 196617 groove~ filtrato; #P message 784 464 27 196617 stop; #P message 784 447 67 196617 startwindow; #P newex 857 464 29 196617 dac~; #P user gain~ 857 344 21 89 158 0 1.071519 7.94321 10.; #P button 604 141 39 0; #P newex 662 254 27 196617 t i i; #P newex 662 222 27 196617 - 1; #P newex 662 106 61 196617 r lunghezza; #P newex 198 216 61 196617 s lunghezza; #P newex 632 198 40 196617 uzi; #P newex 142 188 66 196617 mstosamps~; #P button 60 131 15 0; #P newex 663 445 72 196617 peek~ filtrato; #P message 61 190 43 196617 size \$1; #P newex 61 215 80 196617 buffer~ filtrato; #P newex 60 156 105 196617 info~ joe; #P newex 701 359 57 196617 vs.onepole; #P newex 701 296 53 196617 peek~ joe; #P message 86 350 69 196617 set filtrato 1; #P user waveform~ 86 382 277 113 3 9; #W mode select; #W mouseoutput continuous; #W unit ms; #W grid 1000.; #W ticks 0; #W labels 1; #W vlabels 0; #W vticks 1; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 60 178 173; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #P message 76 56 43 196617 replace; #P newex 76 80 61 196617 buffer~ joe; #P comment 78 35 100 196617 metti loop batteria; #P comment 54 114 176 196617 cambia dimensione buffer analisi; #P comment 601 123 46 196617 filtra!; #P window linecount 2; #P comment 607 325 99 196617 reso unipolare per envelope follower; #P window linecount 1; #P comment 183 363 45 196617 picchi; #P window setfont "Sans Serif" 14.; #P comment 40 32 32 196622 1); #P window setfont "Sans Serif" 9.; #P window linecount 2; #P comment 739 414 59 196617 RISCALA INVILUPPO; #P connect 17 0 13 0; #P connect 13 6 15 0; #P connect 15 0 14 0; #P connect 8 0 7 0; #P connect 36 0 10 0; #P connect 10 0 9 0; #P connect 13 6 18 0; #P connect 18 1 20 0; #P connect 39 0 42 0; #P connect 42 0 45 0; #P connect 45 0 63 0; #P connect 63 0 64 0; #P connect 41 0 63 1; #P fasten 42 0 40 0 304 158 382 158; #P connect 40 0 41 0; #P connect 58 0 42 1; #P connect 61 0 58 0; #P connect 24 0 19 0; #P connect 59 0 60 0; #P connect 21 0 19 1; #P connect 19 2 22 0; #P connect 22 0 23 0; #P connect 23 0 16 0; #P connect 33 0 16 1; #P connect 23 1 11 0; #P connect 11 0 35 0; #P connect 35 0 12 0; #P connect 12 0 33 0; #P connect 34 0 33 1; #P connect 38 0 12 1; #P connect 52 0 62 0; #P connect 62 0 37 0; #P connect 37 2 32 0; #P connect 32 0 31 0; #P connect 30 0 29 0; #P connect 31 0 29 0; #P connect 29 0 48 0; #P connect 48 0 25 0; #P connect 25 0 26 0; #P connect 28 0 26 0; #P connect 27 0 26 0; #P connect 49 0 48 1; #P connect 25 0 26 1; #P fasten 62 0 30 0 842 154 904 154; #P window clipboard copycount 65; Titolo: Re: non realtime audio analisi Post di: lorbi su Marzo 03, 2006, 19:09:14 ora provero' i vostri patch ma intanto vi dico le mie esperienze
io ho effettuato un peak detektor col peek e il poke..che ricerchero' e postero' volentieri, pero'...l'attacco, ahimè non è solo questione di volume. in un suono percussivo quello da riuscire a detectare é la parte enarmonica dello spettro. Recycle, questo lo fa benissimo. ho un amico che ha realizzato con gli oggetti Jit'poke e compagnia un detector molto piu' interessante. il bello di stoccare tutto in una matrice a due dimensioni è il fatto che poi pupoi facilmente effettuare delle operazioni..che in un buffer...sono difficili si chiama JeanFraçois Charles lo trovi sulla lista max. comunque..il motore da cui puoi partire è il motore dell'esempio dell'FFT con Jitter negli esempi audio di jitter. besos lorbi Titolo: Re: non realtime audio analisi Post di: mic su Marzo 03, 2006, 19:50:53 bella lorbi spero di poter dare un'occhiata presto alla tua patch allora!
Titolo: Re: non realtime audio analisi Post di: mauriziogiri su Marzo 04, 2006, 12:30:53 lorbi, molto interessante quello che dici. Queste patch del tuo amico JeanFraçois si trovano da qualche parte? Su maxobjects.com non le ho trovate.
m Titolo: Re: non realtime audio analisi Post di: lorbi su Marzo 08, 2006, 10:43:26 questo è un autocrop
il detector di peak non lo trovo piu' ...... qui decidi la soglia, detecta un attacco e ti taglia il file..il motore è simile.. è una cagatina, sia chiaro. per Jeanfrancois...gli scrivo, ora vive a Boston, e gli chiedo cosa si puo' rendere pubblico delle sue ricerche su jitter. besos lorbi max v2; #N vpatcher 10 59 1056 736; #P origin 0 35; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P hidden newex 311 496 48 196617 loadbang; #P comment 439 26 52 196617 autocrop!; #P comment 71 104 100 196617 registra nel buffer; #P message 361 479 72 196617 normalize 0.9; #P user meter~ 100 127 180 140 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3; #P hidden message 413 647 35 196617 set \$1; #P flonum 767 484 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P message 150 305 53 196617 size 5000; #P toggle 46 121 15 0; #P newex 66 125 29 196617 adc~; #P toggle 102 158 15 0; #P newex 71 201 92 196617 record~ pino 4000; #P newex 446 196 35 196617 del 50; #P flonum 572 367 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 572 343 95 196617 zmap 0 128 0.01 1.; #P user uslider 572 253 19 57 128 1 0 0; #P flonum 413 618 96 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 494 500 27 196617 - 5.; #P message 446 497 28 196617 crop; #P newex 531 429 27 196617 gate; #P toggle 531 408 15 0; #P message 539 389 14 196617 0; #P message 524 389 14 196617 1; #P message 361 497 73 196617 set pino; #P user waveform~ 361 527 278 80 3 9; #W mode select; #W mouseoutput continuous; #W unit ms; #W grid 1000.; #W ticks 8; #W labels 1; #W vlabels 0; #W vticks 1; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 60 178 173; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #P newex 531 481 64 196617 sampstoms~; #P message 498 428 14 196617 0; #N counter; #X flags 0 0; #P newobj 531 458 78 196617 counter; #P newex 420 386 30 196617 sel 0; #P button 420 42 90 0; #P message 106 305 41 196617 replace; #P newex 106 325 90 196617 buffer~ pino 4000; #P newex 420 339 27 196617 * 0.; #P newex 420 318 27 196617 t f f; #P newex 420 149 115 196617 t b b b b b; #P newex 420 361 35 196617 > 0.01; #P flonum 384 319 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 420 296 55 196617 peek~ pino; #P newex 390 228 40 196617 uzi; #P newex 251 196 64 196617 mstosamps~; #P window linecount 5; #P comment 806 484 100 196617 quanti millisecondi di suono vuoi prima dell'attacco detectato? (5 par default); #P window linecount 3; #P comment 596 254 100 196617 soglia per determinare l'attacco; #P connect 33 0 32 0; #P connect 32 0 30 0; #P connect 31 0 30 0; #P connect 32 1 30 0; #P connect 32 0 37 0; #P connect 11 0 10 0; #P fasten 34 0 10 0 155 322 111 322; #P fasten 17 1 2 0 419 615 314 615 314 286 222 286 222 182 256 182; #P hidden connect 41 0 18 0; #P connect 38 0 17 0; #P connect 18 0 17 0; #P fasten 23 0 17 0 451 521 366 521; #P fasten 4 0 5 0 425 316 389 316; #P connect 7 2 3 0; #P connect 17 1 25 0; #P hidden connect 25 0 36 0; #P connect 12 0 7 0; #P fasten 2 1 3 1 310 215 425 215; #P connect 3 2 4 0; #P connect 4 0 8 0; #P connect 8 0 9 0; #P connect 9 0 6 0; #P connect 6 0 13 0; #P connect 8 1 9 1; #P connect 27 0 6 1; #P connect 7 1 29 0; #P connect 29 0 23 0; #P connect 16 1 24 0; #P connect 24 0 17 2; #P connect 7 3 15 0; #P connect 35 0 24 1; #P connect 7 4 19 0; #P connect 19 0 21 0; #P connect 20 0 21 0; #P connect 21 0 22 0; #P connect 22 0 14 0; #P connect 14 0 16 0; #P connect 13 1 20 0; #P fasten 13 0 22 1 425 427 553 427; #P hidden connect 36 0 17 3; #P connect 15 0 14 2; #P hidden connect 26 0 27 0; #P connect 27 0 28 0; #P pop; Titolo: Re: non realtime audio analisi Post di: mic su Marzo 08, 2006, 13:14:21 oh fantastico appena sono a casa me lo guardo..grazie lorbi!
Titolo: Re: non realtime audio analisi Post di: brunozamborlin su Marzo 08, 2006, 14:04:54 Grande!
Mi pare funzioni... :) Titolo: Re: non realtime audio analisi Post di: mic su Marzo 08, 2006, 15:54:26 figata! :D
Titolo: Re: non realtime audio analisi Post di: mic su Marzo 09, 2006, 08:45:05 ho modificato leggermente la patch di lorbi in modo tale che tutte le volte che il valore del buffer supera il threshold l'index in samples viene convertito in ms e storato in una coll;
problema: devo filtrare gli index in samps troppo vicini l'uno all'altro...perchè di ogni attacco detectato nel file mi interessa solo il primo index samps (e non quelli subito vicini in cui per forza il valore continua a essere superiore nella comparison)..spero che mi abbiate capito.. appena posso posto la patch Titolo: Re: non realtime audio analisi Post di: mauriziogiri su Marzo 09, 2006, 08:50:11 se ho capito quello che dici, dovresti disabilitare il detect di nuovi attacchi fino a quando il segnale non scende al di sotto di una certa soglia di ampiezza impostabile a piacere (in modo da essere sicuro che l'attacco si sia smorzato) e poi riabilitarlo.
m Titolo: Re: non realtime audio analisi Post di: mic su Marzo 09, 2006, 09:20:16 esatto, grazie maurizio..
a volte mi capita di perdermi in un bicchier d'acqua! Titolo: Re: non realtime audio analisi Post di: mic su Marzo 09, 2006, 19:47:07 se ho capito quello che dici, dovresti disabilitare il detect di nuovi attacchi fino a quando il segnale non scende al di sotto di una certa soglia di ampiezza impostabile a piacere (in modo da essere sicuro che l'attacco si sia smorzato) e poi riabilitarlo. ..il modo che avevo buttato giù come schizzo sulla carta oggi, non sembra funzionare..maurizio quando hai tempo posteresti la patch che avevi in mente per riuscire a fare quello che dici...grazie ancora e scusa se approfitto della tua disponibilità.. :)m Titolo: Re: non realtime audio analisi Post di: mauriziogiri su Marzo 09, 2006, 22:09:01 una possibilità è usare tresh~ più edge~
#P window setfont "Sans Serif" 9.; #P user number~ 113 221 152 236 9 3 3 2 0. 0. 0 0.5 250 0. 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 2; #P comment 117 76 54 196617 soglia massima; #P user number~ 212 110 251 125 9 3 3 1 0. 0. 0 0.5 250 0. 0 0 0 221 221 221 222 222 222 0 0 0; #P user number~ 117 108 156 123 9 3 3 1 0. 0. 0 0.8 250 0. 0 0 0 221 221 221 222 222 222 0 0 0; #P button 117 302 15 0; #P window linecount 1; #P newex 117 263 36 196617 edge~; #P message 164 238 27 196617 stop; #P message 164 221 67 196617 startwindow; #P newex 181 276 29 196617 dac~; #P flonum 22 88 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 22 121 50 196617 sig~; #P newex 22 154 205 196617 thresh~ 0. 1.; #B color 5; #P comment 6 64 82 196617 segnale in input; #P window linecount 7; #P comment 10 264 100 196617 fa bang quando supera la soglia massima \, per avere un nuovo bang bisogna prima scendere sotto la soglia minima; #P window linecount 2; #P comment 212 79 54 196617 soglia minima; #P connect 3 0 14 0; #P connect 3 0 9 0; #P connect 12 0 3 2; #P connect 11 0 3 1; #P connect 4 0 3 0; #P connect 9 0 10 0; #P connect 7 0 6 0; #P connect 8 0 6 0; #P connect 5 0 4 0; #P window clipboard copycount 15; Titolo: Re: non realtime audio analisi Post di: mic su Marzo 09, 2006, 22:19:07 anch'io nel mentre ho trovato una possibilità, appena ripulisco la patch la posto..
grazie Titolo: Re: non realtime audio analisi Post di: mic su Marzo 09, 2006, 22:23:07 la mia patc per la comparison usa solo max..la tua è molto più sintetica e semplice..vince la tua!
;) Titolo: Re: non realtime audio analisi Post di: mic su Marzo 10, 2006, 18:08:51 ecco ragazzi questa patch è un po la mia somma di quanto è venuto fuori in questo thread..fa una
non-realtime attacks detection (in questa versione non c'è bisogno che il dsp sia on!chiaramente ancora migliorabile)..grazie a tutti per l'aiuto max v2; #N vpatcher 63 44 858 719; #P origin -27 0; #P window setfont "Sans Serif" 9.; #P window linecount 3; #P comment 308 395 46 196617 scorri gli attacchi; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 308 373 32 196622 3); #P window setfont "Sans Serif" 9.; #P window linecount 2; #P comment 353 284 46 196617 analizza il buffer; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 353 262 32 196622 2); #P window setfont "Sans Serif" 9.; #P message 268 509 67 196617 voffset 0.97; #P comment 66 527 78 196617 forma d'onda; #P newex 22 474 66 196617 r loadbanged; #P message 22 505 50 196617 set joe 1; #P user waveform~ 22 544 275 90 3 9; #W mode select; #W mouseoutput continuous; #W unit phase; #W grid 9600000.; #W ticks 0; #W labels 0; #W vlabels 0; #W vticks 0; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 255 255 255; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #N coll attacks; #P newobj 580 545 62 196617 coll attacks; #P message 422 137 14 196617 8; #P message 440 137 20 196617 40; #P message 370 136 23 196617 34.; #P newex 370 116 66 196617 r loadbanged; #N vpatcher 20 74 282 443; #P outlet 101 229 15 0; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 171 46 38 196617 r bang; #N counter 0 0 1; #X flags 0 0; #P newobj 15 131 71 196617 counter 0 0 1; #P message 189 78 33 196617 clear; #N coll attacks; #P newobj 101 192 62 196617 coll attacks; #P newex 101 54 27 196617 i; #P newex 101 158 43 196617 pack i f; #P newex 101 75 27 196617 t b i; #P newex 118 133 64 196617 sampstoms~; #P message 169 77 14 196617 0; #N counter; #X flags 0 0; #P newobj 101 102 78 196617 counter; #P inlet 118 34 15 0; #P inlet 15 111 15 0; #P inlet 101 34 15 0; #P connect 1 0 11 0; #P connect 3 0 11 4; #P connect 0 0 8 0; #P connect 8 0 6 0; #P connect 6 0 3 0; #P connect 3 0 7 0; #P fasten 11 0 9 0 20 184 106 184; #P connect 7 0 9 0; #P fasten 10 0 9 0 194 183 106 183; #P connect 9 0 13 0; #P connect 2 0 8 1; #P connect 6 1 5 0; #P connect 5 1 7 1; #P fasten 4 0 3 2 174 95 140 95; #P connect 12 0 4 0; #P connect 12 0 10 0; #P pop; #P newobj 401 456 87 196617 p collect_attacks; #P message 467 251 17 196617 9.; #P newex 467 231 66 196617 r loadbanged; #N vpatcher 20 74 381 544; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 71 70 38 196617 s bang; #P newex 50 50 30 196617 t b b; #P newex 80 89 61 196617 r lunghezza; #P newex 203 239 49 196617 r coeffic; #P newex 156 239 37 196617 abs 0.; #P newex 156 328 29 196617 * 2.; #P newex 80 168 40 196617 t i i i; #P newex 80 136 27 196617 - 1; #P newex 50 112 40 196617 uzi; #P newex 80 386 72 196617 peek~ filtrato; #P newex 156 270 57 196617 vs.onepole; #P newex 95 205 53 196617 peek~ joe; #P inlet 50 30 15 0; #P inlet 175 308 15 0; #P outlet 156 350 15 0; #P outlet 110 190 15 0; #P connect 3 0 14 0; #P connect 14 0 7 0; #P connect 14 1 15 0; #P connect 13 0 7 1; #P connect 7 2 8 0; #P connect 8 0 9 0; #P connect 9 0 6 0; #P connect 9 1 4 0; #P connect 9 2 0 0; #P connect 10 0 6 1; #P connect 4 0 11 0; #P connect 11 0 5 0; #P connect 5 0 10 0; #P connect 10 0 1 0; #P connect 2 0 10 1; #P connect 12 0 5 1; #P pop; #P newobj 401 330 86 196617 p evelope_follow; #N vpatcher 20 74 281 393; #P button 81 232 15 0; #P window setfont "Sans Serif" 9.; #P message 65 159 14 196617 1; #P newex 50 114 41 196617 sel 0 1; #P newex 81 203 29 196617 gate; #P message 108 159 14 196617 0; #P toggle 81 181 15 0; #P newex 108 135 30 196617 t b b; #P newex 93 114 41 196617 sel 0 1; #P newex 58 94 33 196617 < 0.5; #P newex 55 50 27 196617 t f f; #P newex 93 94 39 196617 > 0.8; #P inlet 122 74 15 0; #P inlet 81 74 15 0; #P inlet 55 30 15 0; #P outlet 81 252 15 0; #P connect 6 0 12 0; #P connect 1 0 5 0; #P fasten 5 0 6 0 60 91 63 91; #P connect 12 1 13 0; #P connect 2 0 6 1; #P connect 10 0 9 0; #P connect 13 0 9 0; #P connect 9 0 11 0; #P connect 11 0 14 0; #P connect 14 0 0 0; #P fasten 5 1 4 0 77 88 98 88; #P connect 4 0 7 0; #P fasten 8 1 11 1 133 196 105 196; #P connect 7 1 8 0; #P connect 8 0 10 0; #P connect 3 0 4 1; #P pop; #P newobj 414 407 69 196617 p comparison; #P button 269 396 37 0; #P flonum 567 350 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 567 328 95 196617 zmap 0 128 0.01 1.; #P user uslider 567 249 19 57 128 1 0 0; #P window linecount 2; #P comment 588 279 40 196617 soglia minima; #P flonum 665 350 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 1; #P newex 665 327 95 196617 zmap 0 128 0.01 1.; #P user uslider 665 248 19 57 128 1 0 0; #P window linecount 3; #P comment 686 278 35 196617 soglia del detect; #P window linecount 1; #P newex 178 248 61 196617 s lunghezza; #N vpatcher 20 74 620 474; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 50 262 49 196617 s coeffic; #P newex 50 235 54 196617 pack 0. 0.; #P newex 270 50 66 196617 r loadbanged; #P message 270 76 40 196617 44100; #P window linecount 2; #P comment 59 77 205 196617 si suppone una frequenza di campionamento di 44100 \, eventualmente cambiare; #P flonum 50 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 1; #P comment 78 184 19 196617 a0; #P comment 156 184 17 196617 b1; #P newex 50 109 212 196617 expr sin (2. * 3.141594 * $f1 * (1. / $f2)); #P flonum 128 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 128 140 27 196617 - 1.; #P inlet 50 89 15 0; #P connect 0 0 3 0; #P connect 3 0 6 0; #P connect 6 0 10 0; #P connect 10 0 11 0; #P connect 2 0 10 1; #P fasten 3 0 1 0 55 134 133 134; #P connect 1 0 2 0; #P connect 8 0 3 1; #P connect 9 0 8 0; #P pop; #P newobj 370 197 63 196617 p frequency; #P newex 179 51 66 196617 s loadbanged; #P newex 179 24 48 196617 loadbang; #P comment 346 526 78 196617 peak envelope; #P comment 347 164 21 196617 Hz.; #P flonum 370 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 336 477 66 196617 r loadbanged; #P flonum 467 277 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P button 401 271 39 0; #P newex 122 220 66 196617 mstosamps~; #P message 41 222 43 196617 size \$1; #P newex 41 247 80 196617 buffer~ filtrato; #P newex 40 188 105 196617 info~ joe; #P message 336 508 69 196617 set filtrato 1; #P user waveform~ 302 544 273 90 3 9; #W mode select; #W mouseoutput continuous; #W unit phase; #W grid 9600000.; #W ticks 0; #W labels 0; #W vlabels 0; #W vticks 0; #W voffset 0.97; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 255 255 255; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #P message 39 138 43 196617 replace; #P newex 39 162 61 196617 buffer~ joe; #P window linecount 3; #P comment 103 147 41 196617 metti loop batteria; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 102 126 32 196622 1); #P window setfont "Sans Serif" 9.; #P window linecount 3; #P comment 582 505 86 196617 clicca per vedere posizione degli attacchi in ms; #P connect 42 0 41 0; #P connect 41 0 40 0; #P connect 4 0 3 0; #P connect 3 1 7 0; #P connect 7 6 9 0; #P connect 9 0 8 0; #P connect 7 6 10 0; #P fasten 34 0 40 2 406 475 159 475; #P connect 10 1 20 0; #P connect 17 0 18 0; #P fasten 34 0 40 3 406 475 225 475; #P connect 13 0 44 0; #P connect 44 0 5 0; #P connect 6 0 5 0; #P connect 13 0 6 0; #P connect 35 0 36 0; #P connect 36 0 14 0; #P connect 14 0 19 0; #P connect 11 0 31 0; #P fasten 29 0 34 0 274 453 406 453; #P fasten 31 1 30 0 482 356 419 356; #P fasten 35 0 38 0 375 134 427 134; #P connect 34 0 5 2; #P fasten 30 0 34 1 419 428 444 428; #P fasten 35 0 37 0 375 134 445 134; #P fasten 28 0 30 1 572 384 448 384; #P connect 32 0 33 0; #P connect 33 0 12 0; #P fasten 24 0 30 2 670 384 477 384; #P connect 12 0 31 1; #P fasten 31 0 34 2 406 432 482 432; #P connect 34 0 5 3; #P fasten 38 0 26 0 427 159 572 159; #P hidden connect 26 0 27 0; #P connect 27 0 28 0; #P fasten 37 0 22 0 445 155 670 155; #P hidden connect 22 0 23 0; #P connect 23 0 24 0; #P pop; Titolo: Re: non realtime audio analisi Post di: mic su Marzo 10, 2006, 22:13:01 scusate posto questa versione della patch migliorata in alcuni dettagli (scorrimento degli slice detectati)..c'è solo un bug che non ho sistemato: l'ultima slice di ogni sample non viene visualizzata correttamente perchè non ha come "end point" nessun "start point" successivo..bisognerebbe introdurre una sottrazione dalla lunghezza totale del sample (...)..
max v2; #N vpatcher 76 44 871 719; #P origin -27 0; #P user incdec 300 353 15 15 0 0; #P window setfont "Sans Serif" 9.; #P flonum 220 493 50 9 0 0 128 3 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 154 492 52 9 0 0 128 3 0 0 0 221 221 221 222 222 222 0 0 0; #P number 315 353 35 9 0 21 3 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 1; #P hidden message 331 328 44 196617 max \$1; #P window linecount 3; #P comment 253 343 46 196617 scorri gli attacchi; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 253 321 32 196622 3); #P window setfont "Sans Serif" 9.; #P window linecount 2; #P comment 353 284 46 196617 analizza il buffer; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 353 262 32 196622 2); #P window setfont "Sans Serif" 9.; #P message 268 509 67 196617 voffset 0.97; #P comment 66 527 78 196617 forma d'onda; #P newex 22 474 66 196617 r loadbanged; #P message 22 505 50 196617 set joe 1; #P user waveform~ 22 544 275 90 3 9; #W mode none; #W mouseoutput continuous; #W unit phase; #W grid 9600000.; #W ticks 0; #W labels 0; #W vlabels 0; #W vticks 0; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 255 255 255; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #N coll attacks; #P newobj 580 545 62 196617 coll attacks; #P message 422 137 14 196617 8; #P message 440 137 20 196617 40; #P message 370 136 23 196617 34.; #P newex 370 116 66 196617 r loadbanged; #N vpatcher 204 49 758 580; #P outlet 193 285 15 0; #N comlet end; #P outlet 143 284 15 0; #N comlet start; #P outlet 101 283 15 0; #P window setfont "Sans Serif" 9.; #P window linecount 0; #P newex 101 246 52 196617 cycle 2 1; #P window linecount 1; #P newex 14 192 27 196617 + 1; #P newex 14 159 27 196617 t i i; #P newex 171 46 38 196617 r bang; #N counter 0 0 1; #X flags 0 0; #P newobj 30 130 71 196617 counter 0 0 1; #P message 203 80 33 196617 clear; #N coll attacks; #P newobj 101 192 62 196617 coll attacks; #P newex 101 54 27 196617 i; #P newex 101 158 43 196617 pack i f; #P newex 101 75 27 196617 t b i; #P newex 118 133 64 196617 sampstoms~; #P message 169 77 14 196617 0; #N counter; #X flags 0 0; #P newobj 101 102 78 196617 counter; #P inlet 118 34 15 0; #P inlet 14 34 15 0; #P inlet 101 34 15 0; #P connect 1 0 13 0; #P connect 11 0 13 0; #P connect 13 0 14 0; #P connect 3 0 11 4; #P connect 0 0 8 0; #P connect 8 0 6 0; #P connect 6 0 3 0; #P connect 3 0 7 0; #P fasten 14 0 9 0 19 212 106 212; #P fasten 13 1 9 0 36 188 106 188; #P connect 7 0 9 0; #P fasten 10 0 9 0 208 183 106 183; #P connect 9 0 15 0; #P connect 15 0 16 0; #P connect 2 0 8 1; #P connect 6 1 5 0; #P connect 5 1 7 1; #P fasten 4 0 3 2 174 95 140 95; #P connect 15 1 17 0; #P connect 12 0 4 0; #P fasten 3 0 18 0 106 122 198 122; #P connect 12 0 10 0; #P pop; #P newobj 401 456 87 196617 p collect_attacks; #P message 467 251 17 196617 9.; #P newex 467 231 66 196617 r loadbanged; #N vpatcher 20 74 381 544; #P window setfont "Sans Serif" 9.; #P newex 71 70 38 196617 s bang; #P newex 50 50 30 196617 t b b; #P newex 80 89 61 196617 r lunghezza; #P newex 203 239 49 196617 r coeffic; #P newex 156 239 37 196617 abs 0.; #P newex 156 328 29 196617 * 2.; #P newex 80 168 40 196617 t i i i; #P newex 80 136 27 196617 - 1; #P newex 50 112 40 196617 uzi; #P newex 80 386 72 196617 peek~ filtrato; #P newex 156 270 57 196617 vs.onepole; #P newex 95 205 53 196617 peek~ joe; #P inlet 50 30 15 0; #P inlet 175 308 15 0; #P outlet 156 350 15 0; #P outlet 110 190 15 0; #P connect 3 0 14 0; #P connect 14 0 7 0; #P connect 14 1 15 0; #P connect 13 0 7 1; #P connect 7 2 8 0; #P connect 8 0 9 0; #P connect 9 0 6 0; #P connect 9 1 4 0; #P connect 9 2 0 0; #P connect 10 0 6 1; #P connect 4 0 11 0; #P connect 11 0 5 0; #P connect 5 0 10 0; #P connect 10 0 1 0; #P connect 2 0 10 1; #P connect 12 0 5 1; #P pop; #P newobj 401 330 86 196617 p evelope_follow; #N vpatcher 20 74 281 393; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 176 30 38 196617 r bang; #P message 176 62 14 196617 1; #P button 81 232 15 0; #P window linecount 0; #P message 65 159 14 196617 1; #P newex 50 114 41 196617 sel 0 1; #P newex 81 203 29 196617 gate; #P message 108 159 14 196617 0; #P toggle 81 181 15 0; #P newex 108 135 30 196617 t b b; #P newex 93 114 41 196617 sel 0 1; #P newex 58 94 33 196617 < 0.5; #P newex 55 50 27 196617 t f f; #P newex 93 94 39 196617 > 0.8; #P inlet 122 74 15 0; #P inlet 81 74 15 0; #P inlet 55 30 15 0; #P outlet 81 252 15 0; #P connect 6 0 12 0; #P connect 1 0 5 0; #P fasten 5 0 6 0 60 91 63 91; #P connect 12 1 13 0; #P connect 2 0 6 1; #P fasten 15 0 9 0 181 177 86 177; #P connect 10 0 9 0; #P connect 13 0 9 0; #P connect 9 0 11 0; #P connect 11 0 14 0; #P connect 14 0 0 0; #P fasten 5 1 4 0 77 88 98 88; #P connect 4 0 7 0; #P fasten 8 1 11 1 133 196 105 196; #P connect 7 1 8 0; #P connect 8 0 10 0; #P connect 3 0 4 1; #P connect 16 0 15 0; #P pop; #P newobj 414 407 69 196617 p comparison; #P flonum 567 350 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 567 328 95 196617 zmap 0 128 0.01 1.; #P user uslider 567 249 19 57 128 1 0 0; #P window linecount 2; #P comment 588 279 40 196617 soglia minima; #P flonum 665 350 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 1; #P newex 665 327 95 196617 zmap 0 128 0.01 1.; #P user uslider 665 246 19 57 128 1 0 0; #P window linecount 3; #P comment 686 278 35 196617 soglia del detect; #P window linecount 1; #P newex 178 248 61 196617 s lunghezza; #N vpatcher 20 74 620 474; #P window setfont "Sans Serif" 9.; #P newex 50 262 49 196617 s coeffic; #P newex 50 235 54 196617 pack 0. 0.; #P newex 270 50 66 196617 r loadbanged; #P message 270 76 40 196617 44100; #P window linecount 2; #P comment 59 77 205 196617 si suppone una frequenza di campionamento di 44100 \, eventualmente cambiare; #P flonum 50 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 1; #P comment 78 184 19 196617 a0; #P comment 156 184 17 196617 b1; #P newex 50 109 212 196617 expr sin (2. * 3.141594 * $f1 * (1. / $f2)); #P flonum 128 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 128 140 27 196617 - 1.; #P inlet 50 89 15 0; #P connect 0 0 3 0; #P connect 3 0 6 0; #P connect 6 0 10 0; #P connect 10 0 11 0; #P connect 2 0 10 1; #P fasten 3 0 1 0 55 134 133 134; #P connect 1 0 2 0; #P connect 8 0 3 1; #P connect 9 0 8 0; #P pop; #P newobj 370 197 63 196617 p frequency; #P newex 179 51 66 196617 s loadbanged; #P newex 179 24 48 196617 loadbang; #P comment 346 526 78 196617 peak envelope; #P comment 347 164 21 196617 Hz.; #P flonum 370 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 336 477 66 196617 r loadbanged; #P flonum 467 277 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P button 401 271 39 0; #P newex 122 220 66 196617 mstosamps~; #P message 41 222 43 196617 size \$1; #P newex 41 247 80 196617 buffer~ filtrato; #P newex 40 188 105 196617 info~ joe; #P message 336 508 69 196617 set filtrato 1; #P user waveform~ 302 544 273 90 3 9; #W mode select; #W mouseoutput continuous; #W unit phase; #W grid 9600000.; #W ticks 0; #W labels 0; #W vlabels 0; #W vticks 0; #W voffset 0.97; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 255 255 255; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #P message 39 138 43 196617 replace; #P newex 39 162 61 196617 buffer~ joe; #P window linecount 3; #P comment 103 147 41 196617 metti loop batteria; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 102 126 32 196622 1); #P window setfont "Sans Serif" 9.; #P window linecount 3; #P comment 582 505 86 196617 clicca per vedere posizione degli attacchi in ms; #P connect 41 0 40 0; #P connect 40 0 39 0; #P connect 4 0 3 0; #P connect 3 1 7 0; #P connect 7 6 9 0; #P connect 9 0 8 0; #P connect 7 6 10 0; #P fasten 33 0 50 0 406 475 159 475; #P connect 50 0 39 2; #P connect 10 1 20 0; #P connect 17 0 18 0; #P fasten 33 1 51 0 444 475 225 475; #P connect 51 0 39 3; #P connect 13 0 43 0; #P hidden connect 49 0 52 0; #P connect 43 0 5 0; #P connect 6 0 5 0; #P hidden connect 52 0 49 0; #P hidden connect 48 0 49 0; #P hidden fasten 33 2 48 0 482 387 336 387; #P connect 13 0 6 0; #P connect 34 0 35 0; #P connect 35 0 14 0; #P connect 14 0 19 0; #P connect 11 0 30 0; #P fasten 49 0 33 0 320 455 406 455; #P fasten 30 1 29 0 482 356 419 356; #P fasten 34 0 37 0 375 134 427 134; #P fasten 29 0 33 1 419 428 444 428; #P fasten 34 0 36 0 375 134 445 134; #P fasten 28 0 29 1 572 384 448 384; #P connect 31 0 32 0; #P connect 32 0 12 0; #P fasten 24 0 29 2 670 384 477 384; #P connect 12 0 30 1; #P fasten 30 0 33 2 406 432 482 432; #P fasten 37 0 26 0 427 159 572 159; #P hidden connect 26 0 27 0; #P connect 27 0 28 0; #P fasten 36 0 22 0 445 155 670 155; #P hidden connect 22 0 23 0; #P connect 23 0 24 0; #P pop; Titolo: Re: non realtime audio analisi Post di: mic su Marzo 20, 2006, 20:24:37 ho aggiustato il problema della patch per cui non veniva selezionata correttamente l'ultima slice, se vi interessa la posto
ciao Titolo: Re: non realtime audio analisi Post di: mauriziogiri su Marzo 22, 2006, 15:16:08 ho aggiustato il problema della patch per cui non veniva selezionata correttamente l'ultima slice, se vi interessa la posto posta, posta... m Titolo: Re: non realtime audio analisi Post di: mic su Marzo 22, 2006, 16:12:16 ecco qua ;)
max v2; #N vpatcher 87 44 935 758; #P origin -27 0; #P window setfont "Sans Serif" 9.; #P number 329 225 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P toggle 287 215 15 0; #P window linecount 1; #P newex 287 255 52 196617 metro 90; #P newex 294 299 43 196617 random; #P message 29 528 129 196617 fifty1_99bpm_4b.aif; #P hidden newex 129 297 14 196617 _; #P user incdec 300 353 15 15 0 0; #P flonum 220 493 50 9 0 0 128 3 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 154 492 52 9 0 0 128 3 0 0 0 221 221 221 222 222 222 0 0 0; #P number 315 353 35 9 0 18 3 3 0 0 0 221 221 221 222 222 222 0 0 0; #P hidden message 331 328 44 196617 max \$1; #P window linecount 3; #P comment 253 343 46 196617 scorri gli attacchi; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 253 321 32 196622 3); #P window setfont "Sans Serif" 9.; #P window linecount 2; #P comment 353 284 46 196617 analizza il buffer; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 353 262 32 196622 2); #P window setfont "Sans Serif" 9.; #P message 268 509 67 196617 voffset 0.97; #P comment 74 511 78 196617 forma d'onda; #P newex 22 474 66 196617 r loadbanged; #P message 22 505 50 196617 set joe 1; #P user waveform~ 22 544 275 90 3 9; #W mode none; #W mouseoutput continuous; #W unit phase; #W grid 9600000.; #W ticks 0; #W labels 0; #W vlabels 0; #W vticks 0; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 255 255 255; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #N coll attacks; #P newobj 580 545 62 196617 coll attacks; #P message 422 137 14 196617 8; #P message 440 137 20 196617 40; #P message 370 136 23 196617 34.; #P newex 370 116 66 196617 r loadbanged; #N vpatcher 433 49 987 580; #P origin -114 0; #P window setfont "Sans Serif" 9.; #P newex 268 160 27 196617 - 5; #P newex 3 124 27 196617 + 1; #P newex 3 68 30 196617 t b b; #P newex 3 104 27 196617 i; #P newex 3 48 33 196617 r end; #P newex 32 103 27 196617 f; #P newex 49 69 74 196617 r lunghezzams; #P outlet 307 285 15 0; #N comlet end; #P outlet 257 284 15 0; #N comlet start; #P outlet 215 283 15 0; #P newex 215 246 52 196617 cycle 2 1; #P window linecount 1; #P newex 128 192 27 196617 + 1; #P newex 128 159 27 196617 t i i; #P newex 285 46 38 196617 r bang; #N counter 0 0 1; #X flags 0 0; #P newobj 349 175 71 196617 counter 0 0 1; #P message 317 80 33 196617 clear; #N coll attacks; #P newobj 215 192 62 196617 coll attacks; #P newex 215 54 27 196617 i; #P newex 215 158 43 196617 pack i f; #P newex 215 75 27 196617 t b i; #P newex 232 133 64 196617 sampstoms~; #P message 283 77 14 196617 0; #N counter; #X flags 0 0; #P newobj 215 102 78 196617 counter; #P inlet 232 34 15 0; #P inlet 128 34 15 0; #P inlet 215 34 15 0; #P connect 21 0 23 0; #P connect 23 0 22 0; #P connect 22 0 24 0; #P fasten 3 0 22 1 220 100 25 100; #P fasten 23 1 20 0 28 90 37 90; #P connect 19 0 20 1; #P connect 1 0 13 0; #P connect 13 0 14 0; #P connect 0 0 8 0; #P connect 8 0 6 0; #P connect 6 0 3 0; #P connect 3 0 7 0; #P fasten 24 0 7 0 8 153 220 153; #P fasten 10 0 9 0 322 183 220 183; #P connect 7 0 9 0; #P fasten 13 1 9 0 150 188 220 188; #P fasten 14 0 9 0 133 212 220 212; #P connect 9 0 15 0; #P connect 15 0 16 0; #P connect 2 0 8 1; #P connect 6 1 5 0; #P connect 25 0 7 1; #P fasten 20 0 7 1 37 153 253 153; #P fasten 4 0 3 2 288 95 254 95; #P connect 15 1 17 0; #P connect 5 1 25 0; #P connect 12 0 4 0; #P fasten 3 0 18 0 220 122 312 122; #P connect 12 0 10 0; #P pop; #P newobj 401 456 87 196617 p collect_attacks; #P message 467 251 17 196617 9.; #P newex 467 231 66 196617 r loadbanged; #N vpatcher 216 56 577 526; #P window setfont "Sans Serif" 9.; #P newex 17 135 33 196617 s end; #P newex 71 70 38 196617 s bang; #P newex 50 50 30 196617 t b b; #P newex 80 89 61 196617 r lunghezza; #P newex 203 239 49 196617 r coeffic; #P newex 156 239 37 196617 abs 0.; #P newex 156 328 29 196617 * 2.; #P newex 80 168 40 196617 t i i i; #P newex 80 136 27 196617 - 1; #P newex 50 112 40 196617 uzi; #P newex 80 386 72 196617 peek~ filtrato; #P newex 156 270 57 196617 vs.onepole; #P newex 95 205 53 196617 peek~ joe; #P inlet 50 30 15 0; #P inlet 175 308 15 0; #P outlet 156 350 15 0; #P outlet 110 190 15 0; #P fasten 7 1 16 0 70 132 22 132; #P connect 3 0 14 0; #P connect 14 0 7 0; #P connect 14 1 15 0; #P connect 13 0 7 1; #P connect 7 2 8 0; #P connect 8 0 9 0; #P connect 9 0 6 0; #P connect 9 1 4 0; #P connect 9 2 0 0; #P connect 10 0 6 1; #P connect 4 0 11 0; #P connect 11 0 5 0; #P connect 5 0 10 0; #P connect 10 0 1 0; #P connect 2 0 10 1; #P connect 12 0 5 1; #P pop; #P newobj 401 330 86 196617 p evelope_follow; #N vpatcher 20 74 281 393; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 176 30 38 196617 r bang; #P message 176 62 14 196617 1; #P button 81 232 15 0; #P window linecount 0; #P message 65 159 14 196617 1; #P newex 50 114 41 196617 sel 0 1; #P newex 81 203 29 196617 gate; #P message 108 159 14 196617 0; #P toggle 81 181 15 0; #P newex 108 135 30 196617 t b b; #P newex 93 114 41 196617 sel 0 1; #P newex 58 94 33 196617 < 0.5; #P newex 55 50 27 196617 t f f; #P newex 93 94 39 196617 > 0.8; #P inlet 122 74 15 0; #P inlet 81 74 15 0; #P inlet 55 30 15 0; #P outlet 81 252 15 0; #P connect 6 0 12 0; #P connect 1 0 5 0; #P fasten 5 0 6 0 60 91 63 91; #P connect 12 1 13 0; #P connect 2 0 6 1; #P connect 13 0 9 0; #P connect 10 0 9 0; #P fasten 15 0 9 0 181 177 86 177; #P connect 9 0 11 0; #P connect 11 0 14 0; #P connect 14 0 0 0; #P fasten 5 1 4 0 77 88 98 88; #P connect 4 0 7 0; #P fasten 8 1 11 1 133 196 105 196; #P connect 7 1 8 0; #P connect 8 0 10 0; #P connect 3 0 4 1; #P connect 16 0 15 0; #P pop; #P newobj 414 407 69 196617 p comparison; #P flonum 567 350 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 567 328 95 196617 zmap 0 128 0.01 1.; #P user uslider 567 249 19 57 128 1 0 0; #P window linecount 2; #P comment 588 279 40 196617 soglia minima; #P flonum 665 350 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 1; #P newex 665 327 95 196617 zmap 0 128 0.01 1.; #P user uslider 665 246 19 57 128 1 0 0; #P window linecount 3; #P comment 686 278 35 196617 soglia del detect; #P window linecount 1; #P newex 178 248 61 196617 s lunghezza; #N vpatcher 20 74 620 474; #P window setfont "Sans Serif" 9.; #P window linecount 0; #P newex 50 262 49 196617 s coeffic; #P newex 50 235 54 196617 pack 0. 0.; #P newex 270 50 66 196617 r loadbanged; #P message 270 76 40 196617 44100; #P window linecount 2; #P comment 59 77 205 196617 si suppone una frequenza di campionamento di 44100 \, eventualmente cambiare; #P flonum 50 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window linecount 1; #P comment 78 184 19 196617 a0; #P comment 156 184 17 196617 b1; #P newex 50 109 212 196617 expr sin (2. * 3.141594 * $f1 * (1. / $f2)); #P flonum 128 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 128 140 27 196617 - 1.; #P inlet 50 89 15 0; #P connect 0 0 3 0; #P connect 3 0 6 0; #P connect 6 0 10 0; #P connect 10 0 11 0; #P connect 2 0 10 1; #P fasten 3 0 1 0 55 134 133 134; #P connect 1 0 2 0; #P connect 8 0 3 1; #P connect 9 0 8 0; #P pop; #P newobj 370 197 63 196617 p frequency; #P newex 179 51 66 196617 s loadbanged; #P newex 179 24 48 196617 loadbang; #P comment 346 526 78 196617 peak envelope; #P comment 347 164 21 196617 Hz.; #P flonum 370 163 63 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 336 477 66 196617 r loadbanged; #P flonum 467 277 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P button 401 271 39 0; #P newex 122 220 66 196617 mstosamps~; #P message 41 222 43 196617 size \$1; #P newex 41 247 80 196617 buffer~ filtrato; #P newex 40 188 105 196617 info~ joe; #P message 336 508 69 196617 set filtrato 1; #P user waveform~ 302 544 273 90 3 9; #W mode select; #W mouseoutput continuous; #W unit phase; #W grid 9600000.; #W ticks 0; #W labels 0; #W vlabels 0; #W vticks 0; #W voffset 0.97; #W bpm 120. 4.; #W frgb 33 0 0; #W brgb 255 255 255; #W rgb2 0 95 255; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 190 137 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #P message 39 138 43 196617 replace; #P newex 39 162 61 196617 buffer~ joe; #P window linecount 3; #P comment 103 147 41 196617 metti loop batteria; #P window setfont "Sans Serif" 14.; #P window linecount 1; #P comment 102 126 32 196622 1); #P window setfont "Sans Serif" 9.; #P window linecount 3; #P comment 582 505 86 196617 clicca per vedere posizione degli attacchi in ms; #P window linecount 1; #P newex 189 220 74 196617 s lunghezzams; #P connect 42 0 41 0; #P connect 41 0 40 0; #P hidden fasten 54 0 55 0 134 525 34 525; #P connect 5 0 4 0; #P connect 4 1 8 0; #P connect 8 6 10 0; #P connect 10 0 9 0; #P connect 8 6 11 0; #P hidden connect 8 7 54 0; #P fasten 34 0 51 0 406 475 159 475; #P connect 51 0 40 2; #P connect 11 1 21 0; #P connect 18 0 19 0; #P fasten 8 6 0 0 123 212 194 212; #P fasten 34 1 52 0 444 475 225 475; #P connect 52 0 40 3; #P connect 14 0 44 0; #P connect 58 0 57 0; #P connect 57 0 56 0; #P hidden connect 50 0 53 0; #P connect 7 0 6 0; #P connect 44 0 6 0; #P connect 56 0 50 0; #P hidden connect 49 0 50 0; #P hidden connect 53 0 50 0; #P fasten 34 2 56 1 482 475 332 475; #P connect 59 0 57 1; #P hidden fasten 34 2 49 0 482 387 336 387; #P connect 14 0 7 0; #P connect 35 0 36 0; #P connect 36 0 15 0; #P connect 15 0 20 0; #P connect 12 0 31 0; #P fasten 50 0 34 0 320 455 406 455; #P fasten 31 1 30 0 482 356 419 356; #P fasten 35 0 38 0 375 134 427 134; #P fasten 30 0 34 1 419 428 444 428; #P fasten 35 0 37 0 375 134 445 134; #P fasten 29 0 30 1 572 384 448 384; #P connect 32 0 33 0; #P connect 33 0 13 0; #P fasten 25 0 30 2 670 384 477 384; #P connect 13 0 31 1; #P fasten 31 0 34 2 406 432 482 432; #P fasten 38 0 27 0 427 159 572 159; #P hidden connect 27 0 28 0; #P connect 28 0 29 0; #P fasten 37 0 23 0 445 155 670 155; #P hidden connect 23 0 24 0; #P connect 24 0 25 0; #P pop; Titolo: Re: non realtime audio analisi Post di: mauriziogiri su Marzo 23, 2006, 20:39:44 Ottimo! Prima o poi dovremo fare una sezione del sito con le patch più interessanti spiegate dagli autori.
m Titolo: Re: non realtime audio analisi Post di: franz su Marzo 23, 2006, 20:48:04 vero, sarebbe un'ottima cosa, si potrebbero prendere anche delle patch "note" sezionarle e spiegarle passo passo, potrebbe essere un buon modo di fare dei tutorial!
Potrebbe cominciare proprio mic, tempo permettendo, con questa patch o per esempio scrivendo un tutorialino sul vecchio codice di js della pallina rimbalzina! Titolo: Re: non realtime audio analisi Post di: mic su Marzo 24, 2006, 08:18:58 sembra un ottima idea anche a me!..ok, allora appena ho un po di tempo comincio a buttare giu una patch della pallina con il codice commentato e tutto il resto :D
Titolo: Re: non realtime audio analisi Post di: franz su Marzo 24, 2006, 12:10:51 grande mic!
© Copyright 1996 - 2008 - ConTempoNet Edizioni Musicali ® - P.IVA: 05174251008
Tutti i diritti riservati - Tutti i marchi sono registrati - È vietata la riproduzione, anche parziale, dei testi e delle immagini. Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC Traduzione Italiana a cura di SMItalia |