Benvenuto, Visitatore. Per favore, effettua il login o registrati.

  Hai perso la tua email di attivazione?

Main Home Help Ricerca Login Registrati

+  Virtual Sound - FORUM
|-+  Linguaggi per Computer Music, Video e Grafica
| |-+  Max/MSP
| | |-+  gate~: è possibile lasciar passare solo un campione per "bang"?
« precedente successivo »
Pagine: [1] Stampa
Autore Topic: gate~: è possibile lasciar passare solo un campione per "bang"?  (Letto 851 volte)
robermann79
Newbie
*
Posts: 16


Guarda Profilo
« il: Dicembre 10, 2010, 12:58:39 »

Ciao

C'è un modo per far sì che un gate~ faccia passare solo un campione, per ogni "bang" ricevuto?

Io sto provando la patch seguente; carico un'onda campionata e la "sfoglio" man mano, con un count~ che indica la posizione nell'onda sonora da restituire. Tale numero è infatti usato come indice del buffer (index~).

Ora, io vorrei che l'onda sonora emettesse solo il campione corrispondente al bang ricevuto; non riesco ad ottenere esattamente questo comportamento, ma con uno sleep di 1 millisecondo (apro e chiudo subito) mi ci avvicino molto.
Tuttavia credo che mi stia sfuggendo qualcosa, visto che il numero di campioni eseguiti non corrisponde al numero di bang ricevuti; mi aspetterei al più che i campioni fossero superiori (in quanto la velocità del signal processing è maggiore di quella della velocità di controllo), invece al contrario ottengo che i bang sono superiori ai campioni passati attraverso il gate. Ovvero, facendo riferimento ai commenti della patch, B > A.

Sto sbagliando qualcosa?

ciao,
roberto


----------begin_max5_patcher----------
1193.3oc2ZssaiaCE7Yu.6+.g5KcQSc4Uco.8gs+FEKJjkXbTgtXHIilsKZ9
1KIO1N1NgVJRLRZ6CILQRVb3n4LbHk+1G+vJuMUOJa7P+J5OPqV8M0QVYNl9
HqNdfUdEwOljG2XtPujphBYYq2cGNYq7wVyI9we+Snx8EnzLzl3xsnj31180
wsYmtzcwsIOjUt8OqkIsPuxC3qw2gXXSCwOT2Pwqwnub7SceUYaYbgzzIetN
KN+zMT0cYk4xVCxHGOZVp4Rq17W+r+y8csrQAaEbpJs1+3C+54NW0CU6aO1E
3ywTS1+XvDgtFaN7+9wOnaUM20a1Tc+2HqOgRnuZ+5NI.OuLMSi7zDp2ynxN
QRChLDIm4Vhjf8dcJg5dJQ92pd7k5qjp8ks8fqN9i9e6fx.RRDnaBFAiIdEF
iGZgw3NmwrVRVss7PwXrR+ixxQaiak2gjHBpHKOOqQlfRq1UgxqPJ5Yep7zM
IOqTZn7KdJ+ZzH0T1PBolFATPwckxKxappEs6r84SNaMwE6xkMncpOjxKAkF
Cb5am1HXSkJK.elym6nsfIi11russpzdYY2dWDrgCnQfEl33uuvFtCidaxDx
Hslex9.qIaao9QBx697p3NLaHLntP.OtI7g61bRUUTkJu3.maXSEuIGaxZQj
fDFb7jpAmQt7NXj+S+V2j5s4RNT5P7gFGOUG02lV5lLmy4oewMzDMzL+FitV
LZE2EzDeZoIUQlperSIPQXuBKwf3QLeSUXfvsBH9fJ7bt7ooLdWyCUsOo8W6
h15EcAVXfbxcBIw2sxHeHxHi8dnhH3v+uoiNvWX16gLRkmZZERF3XmOtMUHH
FuYAqWIdvux3k00n8XbV8GvadFkbHXmPL3QIcZFkvc9VaTAMxnW4PliAkQkz
Ujb2LVJjpklrU9xBY7PeLdv+mB0uPPBRnyJbIusY.FyZUrxMjAyMBXCWB8ee
3F9jwM17+Sk4weEQFyB7XQPUiZUOJ5gG5Xme5D67O9U7xfMKgJNEJ+ZBoa2D
F14K40Z4QsLNcvS0AiUXpNHBoKKPBVFKVay96uWV+D5Gv5+JlnCKgcRJSAjT
hPCgFtiyYRl3blVEYI4x35gpx7EmoxNrIKNTkEMY1vi2bgigch0GO3nJLt62
NMKEN5cOcjazAMBlQgSgHZNd8o3YeJXkYQptrAw42bMXcsePFlAl9MJxs1HB
5zwRt5clQgZCB1vK9TWu.9fkwB3yJSkO97LSisVCV2dHnhXNNJGA+8VTN+q1
Mi2dPNBYxLaMuYpQ51BCXBrs6jPhqU.TWn..vXdabW+8avLjzm3JBroZecxQ
h3vFShNaTkJaZyJMeABN6h3WdQOjklJKuXU8EYo6pTdRGvA5K1ep1anYpS5F
bhYAb52EW2Xy7ZVlAzomnpGnSWTNCnqWfiMShNFteT27H6tlUrgt4phsWvSf
mIzIVzni1azQlAzQ5mviNOjmNFZegGYoZGe8fXxHu9MWl9c0sbKLdwnXpbj6
mvat3tfkM7hVxvSzyn.3kb734Ihm4KNyxMe7K5WavSrjEdT9hGcjkZBYZzLI
75miGad7T3g8ap1E7Ze3ietB8ATM+GD2ZPfB
-----------end_max5_patcher-----------
Loggato
Galileo
Full Member
***
Posts: 151


Guarda Profilo
« Risposta #1 il: Dicembre 10, 2010, 14:15:43 »

io credo che i conti non ti tornino perche oggetti come snapshot~ e number~ hanno un update interval che va settato e che comunque non può scendere al di sotto del millisecondo mi pare.
se il tuo scopo è quello di vedere il valore  corrispondente ad ogni campione al posto tuo userei l'oggetto peek~ eliminando il gate~.
il bang lo colleghi ad un incdec o a un counter e ogni volta che clikki il peek~ avanza di uno..
non so se ho capito bene i tuoi propositi però!

Loggato
robermann79
Newbie
*
Posts: 16


Guarda Profilo
« Risposta #2 il: Dicembre 10, 2010, 15:57:06 »

io credo che i conti non ti tornino perche oggetti come snapshot~ e number~ hanno un update interval che va settato e che comunque non può scendere al di sotto del millisecondo mi pare.
Sì, stavo infatti usando un "contatore di campioni passati dal gate", fatto in questo modo: divido il numero per se stesso (così ottengo 1) e poi lo sommo a un accumulatore, in modo da avere il totale.

se il tuo scopo è quello di vedere il valore  corrispondente ad ogni campione al posto tuo userei l'oggetto peek~ eliminando il gate~.
il bang lo colleghi ad un incdec o a un counter e ogni volta che clikki il peek~ avanza di uno..
non so se ho capito bene i tuoi propositi però!
Lo scopo si inserisce nell'ottica delle mie sperimentazioni su CodeSounding (http://www.codesounding.org/): un processo esterno, mediante pacchetto UDP, deve scatenare il "bang" che accoda un campione sul DAC. Dunque non mi serve tanto visualizzare il valore del campione, quanto inviarlo al DAC. Peek potrebbe andar bene, però poi quel numero dovrei ritrasformarlo in segnale continuo attraverso sig~, credo.

Loggato
Maurizio Giri
Amministratore
Hero Member
*****
Posts: 815


Guarda Profilo WWW
« Risposta #3 il: Dicembre 12, 2010, 09:49:13 »

Prima di tutto una premessa, quando accendi il motore DSP di Max/MSP, i campioni che passano per i cavetti giallo/neri sono sempre 44100 al secondo (o 48000 o qualunque sia il sample rate della tua scheda), non è possibile "fermarli".
E' possibile però congelarne il valore ad esempio con l'oggetto sah~ (sample and hold), come puoi vedere nella patch che ti allego.

<pre><code>
----------begin_max5_patcher----------
1156.3oc0Z0taiZDE821OEH5eZ0l0ZtyvvGUp+n80nZU0Xf3PqArfwJoc0lm
8NeXRbHXX7xvDuQJ1F7X74dtm6GyE+00q72V+Tdqu2u58mdqV800qVoNk7Dq
Nc7J+R1So6Yspk4Wk+X81+1+N8awyehqNcK6gm6N480U7JVYt5M98lB19t2o
5XYQ09bt5RgOcxhL0BEW0OCwmsx5i7tkBmckaK9O0UFvaPmNsdk7+8Pt1R7a
K1UI9V89xoEbfwSennZ2e0jmx0qAmDI97dXZh7Ih9.zFj2Wjejusds7g6lGo
7IOvBbRnc3jhJ9nDRPXrhCBCUDBdC09DR59hz+4Z0Iv.bB0c5jXrVZnzIAv7
zIGK2l27BATVmketW+JEIBzKOD8h8cNCELLCgGhgfMzDJDGMAMcmm+86qYiK
ifDrV+Hgk3RGLKBqLusksK+8oa3rF9iEUY0ON+HLKkzY7nKs9gDSkOEoXEH1
tQWYrTajCFFlNPiSGCYyQBCT7WHHBbzQNyLO6NVQ0yFaH3wCAFQlOYtxXkcP
BTdSrxzhAqqwqOXA2IwEpaQ4hW7zfJxmhlkDOstrLW3E5SJ+7e7KdBCwKqva
KqZmWJiyO1v3EuvTM61pAkB.u9fx8L6JOgVK3PWtk.pxsvohuyqvhEJrhthx
FSzrgHNR5hLpoiDUHDDPVh1vRqOVwuZ1g9d1I3BUJB99Xmt+MsyLhpxZz73n
sG475Jik6Iim83cl1jdb.gzdbciAztGu06mBS+nZnhnXJB0JMTcocp7a1nyA
70rUEC4nQolfjyxgRlWu4BOg.0yOEpMa7VqNLIQJQm5jDpjGQzkPjzVwNz9P
M+YYP77kKTKJVlNLpifzQSwQ2DZE.E+gnVB00PHjeXDK.JwoxkSLDhXA0hxv
FzPGnPC4JK3NpUPAUBRJoes1Sejttrke49KskgsokEnaifRWHKSiFiiiGeWA
Wd7iA5RWKfAbocU1jyxrwPBhrX333ZX8.3zZXxhL3jsGu+dQajd+DR9JFHSY
grP1c3iI6NUmuBvw5mVlQvktOm0XCkThCFPQH8LQzLGMw0sCJRfs2AU.BqGY
.xF6fZ3HBgVKS53kysyFgBTrCbxfdFiAJYeRxMx.UhrXN.SGqBVqJ.jhPBwK
QCdEUY4O8ZNSajI.41sO1cK.i0BFWNWE3RSY+6OsPXuVUWn4nYk6v.1sNZM0
.5AD.wCOm.0EveeQU+6Gt5BJO+aYr15iMocfn6F058ZCbY4s7hJFuPnJNaQn
2rnGJxxxqNuWwxhrC0h37Sf3B9OSwjbhkSioPmhIYEwIwTOfuzXhZBjbJhfd
JkgwD0oXRNM3oUSX2JmjsVLMnj4acHnLASDWKn.iHJraQkr+HCQEbioo5A8k
mpLJ7CE6XYkYbUhaqwXjnx0LUzMIpRtIQkIU+baN89E1tT4O2VS1nF7tRhJ.
hk+5+Bz+7VBz2ffdGQB060NZCs6G9g7TykiIKg4D.uEjK.twlhavg50EfKcQ
u+faif.SZ9Wk+yg9NyBqQ2hk5iuA8dyZOIhC915+GzaqwG.
-----------end_max5_patcher-----------
</code></pre>
Loggato

robermann79
Newbie
*
Posts: 16


Guarda Profilo
« Risposta #4 il: Dicembre 13, 2010, 15:37:10 »

Molto interessante la tua patch, grazie; la stavo studiando e mi ha subito incuriosito l'oggetto click~, che non avevo mai usato.

Ho notato che se i bang avvengono troppo velocemente (ad es, ricevo tanti pacchetti UDP entro il millisecondo), il sommatore dei click rimane disallineato (più basso) rispetto al counter dei bang; si può riprodurre questo comportamento usando la patch seguente, posto che mediante Inspector impostiamo il metro ad esempio a 0.1 ms.

Mi pare di ricordare che gli oggetti Max/linea diritta possano andare al massimo a 1 millisec di velocità, tuttavia almeno l'oggetto counter sembra reagire correttamente anche a velocità maggiori. Invece i "click" a queste velocità vengono persi, sembra. Sono un po' perplesso perché è esattamente il contrario di quanto mi aspettavo...

----------begin_max5_patcher----------
850.3ocyYt0aaBCEG+4To8c.wqKKBeCHSZOrG2mgsoIGvM0afcD3z10p0O6y
WB4VCIjfanUpfvbwmyOeN+OGHO+gaFENS9HqNL3yAeOXznm0iLxNlYjQMCLJ
rj9XVAs1dggYxxRlPENd0IUrGU1SPe5IVEMHSJTTkrhu9JVPUY2wEy+UEKS4
lL.LcRz3.TjYK.BM6f5CB9YyMcq9wHnkL6i9qUbZw5mmXYIWTvTV6AzLJO2d
oxY+9SvMScEqlYrGtTryziZlwwAMa1L25IPtT0LCQaaR07mrlDPax1g+2Gtw
rWuab+QHWnXU2SKJjA7xExZCHC9g3dNM3ah5EZ6WVs9tJ3BVlbovdqvi.aHx
5s.LXKZivdi1vvqE3JY00z4rWCNMopTOvE4xGVeRmkn96BlCCgga72CPIDvw
EWnQB1xpzKARvC.oosvHf2Yjf8fdBeMhxoYubrTRTpN7P+WLPCgjoVVjb44k
GBBfj2CQJxEWbHBhrAQXqBFIxuwIvnqVfhRNedAqcVvMJKGEGDmtB.tQLEtu
P5w0N.31bWuG+WxTUx181YTw7S4t3sjQca8XtAZvUH9X.nGQC3TWM0TfSFcB
wq3IdvwSVAO6OuzNgp4yEZW5nPBN0IoBw8MF5fYSjqGjVVNiUc7vkwcIqZUX
CJJ1kbg7LRZSOEd8haL8n0AV07emyzv1XojdPLxAHFNsEhg8NwlsTojh9nIC
hsIRDWhDoY6YTAJdp+q.YyMNsRgds91BI8Dq1.2xLLIwUrE6g5NkxbVqJsPx
Ykx.lPlR.oIMmT6b1V5dKJP8kdJ+Bhcsp3TYP9V9EddEoZH2.l+fAtnpDxEm
.g7eKbs27NSEDcocu2Ha5bY2613uF2S5YoWmUXeo98+fLVewbh8XVsbYUViu
2nkErk+jypUbg8ier0Ukr6EcGOOmI14svJ44Kj5xPqLDftDitYtXaC93TaJz
NG.AwFL195cm8.SGLm1CrIZmmO3EqyDp2AqiLHFWRWrMSw8Av1d0BVaqqCC5
5Vdy66ntAZkc+osEzMLjCzsntnAw3fQcx3Na0ZDFOgr963Y6VDMMZ2g7hCL8
Mx9g.S0Fzp2KLw8CEr6Quktk4CwbZ+Z+jxqUDc2p.g5swYFPu6+.l35uDA
-----------end_max5_patcher-----------
Loggato
Maurizio Giri
Amministratore
Hero Member
*****
Posts: 815


Guarda Profilo WWW
« Risposta #5 il: Dicembre 13, 2010, 21:32:31 »

a me funziona. Nella finestra DSP Status, prova a selezionare "Scheduler in Overdrive" e "in Audio Interrupt"
Comunque i click e il counter non sono perfettamente sincronizzati: per avere una precisione assoluta dovresti tenere il "Signal Vector Size" a 1, che è proibitivo per la CPU
Loggato

robermann79
Newbie
*
Posts: 16


Guarda Profilo
« Risposta #6 il: Dicembre 14, 2010, 20:46:02 »

In effetti con le impostazioni che mi hai consigliato raggiungo una precisione molto più alta.

Parlerete di tali settings nel secondo volume del libro, al cap 5?

Ciao e grazie,
rob
Loggato
Maurizio Giri
Amministratore
Hero Member
*****
Posts: 815


Guarda Profilo WWW
« Risposta #7 il: Dicembre 14, 2010, 23:42:54 »

Parlerete di tali settings nel secondo volume del libro, al cap 5?

Certo, e di molto altro!
m
Loggato

Pagine: [1] Stampa 
« precedente successivo »
Salta a:  


Login con username, password e lunghezza della sessione

Powered by MySQL Powered by PHP © 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.15 | SMF © 2006-2008, Simple Machines
Traduzione Italiana a cura di SMItalia
XHTML 1.0 Valido! CSS Valido!