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
| | |-+  plugin developement aiuto
« precedente successivo »
Pagine: [1] Stampa
Autore Topic: plugin developement aiuto  (Letto 1676 volte)
Massimiliano
Newbie
*
Posts: 6


Guarda Profilo
« il: Giugno 10, 2006, 20:55:26 »

salve a tutti, sono un nuovo arrivato.
ho da poco cominciato ad utilizzare maxmsp per creare alcuni utli tools in formato vst da poter utilizzare live all'interno di hosts come energy-xt, spinaudio mixing console etc etc
insomma per applicazioni live
sono già riuscito a far funzionare i plugins e soprattutto a fare in modo che salvino le loro configurazioni grazie al comando "pp"

bene, il mio problema è che uno di questi plugin processa NON il segale audio passante ma dei files wav che vanno opportunamente caricati. il fatto è che se salvo la configurazione del mio plugin e la ricarico in un secondo momento vengono ripristinati tutti i parametri chiave, cioè quelli controllati da "pp" ma non ricarica il file wave che avevo precedentemete scelto.
come posso fare in modo che la mia patch\plugin salvi anche il percorso del file wave che scelgo per poi ricaricarlo insieme al settaggio dei parametri?? ciò sarebbe utilissimo in condizioni live in cui non voglio assolutamente toccare il pc, vogli che sia tutto pronto e che io debba solo suonare o gestire i miei controllers..
vi ringrazio anticipatamente per l'auspicato aiuto!!!!
ciao
Loggato
Maurizio Giri
Amministratore
Hero Member
*****
Posts: 783


Guarda Profilo WWW
« Risposta #1 il: Giugno 12, 2006, 19:53:48 »

purtroppo non mi è mai capitato di dover fare un plugin che memorizzasse un file audio, ma è sicuramente possibile, visto che il plugin "easy sampler" della serie Pluggo fa esattamente questa cosa.
Ahimè, al momento non ho il tempo materiale di approfondire la cosa, forse gli potrò dare un'occhiata la prossima settimana, a meno che qualche anima pia che ha già affrontato il problema non possa darci una dritta prima...

m
Loggato

Massimiliano
Newbie
*
Posts: 6


Guarda Profilo
« Risposta #2 il: Giugno 12, 2006, 22:55:06 »

ma non è possibile aprire la patch originale dei plugin di pluggo?
ad ogni modo... appena trovo un po di tempo cerchero di risolvere il problemino da solo.

ad ogni modo uno dei motivi per cui mi sto interessando a queste funzioni è perchè vorrei realizzare un plugin definitivo per la sintesi di suoni hi-hat. naturalmente parlando di sintesi non-imitativa. all'interno del plugin ho immaginato di inserire, oltre a una sezione di sintesi vera e propria, una sezione basata su campioni di differenti tipi di noises analogici, da modulare poi con delays, ring mod, filtri risonanti e qualtaltro.

vi chiedo un consiglio di carattere diciamo ... molto lato...
ho dato un occhiata all'immenso Reaktor di native instruments. e pare hce lo stumento sia davvero serissimo, è possibile scendere fin nei più intimi meandri della sintesi e mi sembra che sia anche più "veloce", a livello di editing rispetto a maxmsp.

mi consigliereste di spostare il mio interesse su reaktor o pensate che le possibilità di maxmsp siano più vaste? un punto critico risiede soprattutto nella qualità audio finale e nella pesantezza del plugin finale sulla cpu.

un altra mia difficolta con max per il momento è che non ho trovato una bella libreria con tutti gli elementi della sintesi classica gia belli pronti da montare... sapreste darmi qualche link o qualche nome di qualche libreria
Loggato
Maurizio Giri
Amministratore
Hero Member
*****
Posts: 783


Guarda Profilo WWW
« Risposta #3 il: Giugno 13, 2006, 08:01:56 »

Ho fatto una breve ricerca ed è venuto fuori che per memorizzare il percorso dei file all'interno dei plugin servono le estensioni "Pluggo File Handling" di Darwin Grosse.
Una versione per Mac con file di help la trovi qui:
http://www.cycling74.com/twiki/bin/view/Share/DarwinGrosse

se hai win e hai installato pluggo le trovi nel tuo hard disk:
c:\Program Files\Common Files\Cycling '74\Pluggo Support\bonus-externs

scaricati in ogni caso la versione Mac per avere i file MaxMSP di help che ti spiegano come usare gli oggetti.

Su maxmsp vs reaktor: max è un linguaggio di programmazione, reaktor no (e' un editor di patches per sintesi ed elaborazione del suono, con un sacco di strumenti già pronti per l'uso).
Se vuoi un sacco di suoni subito, con poco sforzo e con un sacco di macro pronte per l'uso vai con reaktor.
Se vuoi fare tutto quello che ti passa per la mente con uno sforzo che va dal moderato al considerevole, usa maxmsp

Personalmente mi stufo al quarto preset di un qualunque synth di reaktor, ma sono gusti personali...
m
Loggato

Massimiliano
Newbie
*
Posts: 6


Guarda Profilo
« Risposta #4 il: Giugno 13, 2006, 23:04:41 »

graziemille per la dritta!
riguardo a reaktor... da quel poco che ho potuto finora esplorare e realizzare mi è sembrato che con maxmsp ci sia effettivamente più controllo su tutto...
Loggato
brunozamborlin
Hero Member
*****
Posts: 895



Guarda Profilo
« Risposta #5 il: Giugno 14, 2006, 21:41:30 »

io credo che le patch fatte con reaktor suonino benissimo davvero, però siano un po tutte simili, e che a quel punto basti usare i preset di default... ed è per questo che una canzone fatta con reaktor la si sgamma subito Wow
Loggato

Massimiliano
Newbie
*
Posts: 6


Guarda Profilo
« Risposta #6 il: Giugno 22, 2006, 12:05:45 »

ancora un piccolo problema riguardo al salvataggio delle impostazioni... nel mio piccolo plugin ho inserito delle funzioni grafiche, quelle classiche di maxmsp per disegnare gli inviluppi. ma non capisco come posso fare in modo che il plugin salvi la forma degli inviluppi disegnati!!! esiste un modo o devo rassegnarmi??

Loggato
mic
Sr. Member
****
Posts: 405


Guarda Profilo
« Risposta #7 il: Giugno 22, 2006, 12:16:25 »

..le forme d'onda disegnate su multislider e function possono essere memorizzate sottoforma di lista..per function puoi fare dump--zl group n (dove n. è il numero dei break-points dell'envelope, e se è fisso ancora meglio)--e memorizzi la lista che poi per richiamare la forma disegnata dovrà essere spacchettata a due a due..se ho capito bene.. Occhiolino
« Ultima modifica: Giugno 22, 2006, 13:13:30 da mic » Loggato
franz
AAA1
Hero Member
*
Posts: 884


Guarda Profilo WWW
« Risposta #8 il: Giugno 22, 2006, 14:26:38 »

ancora più semplice per disegnare forme d'onda tramite multislider:
multislider->listfunnel->peek~ nomebuffer
così si aggira anche il problema del numero di elementi che la zl-family può contenere, ovvero 256, che nel caso di una forma d'onda equivarrebbero a 256 punti...ovvero campioni Sorriso
in questo modo possiamo fare forme d'onda anche a 512 e 1024

#P window setfont "Sans Serif" 9.;
#P number 508 28 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 508 61 27 9109513 t i i;
#P message 90 95 37 9109513 size \$1;
#P user multiSlider 90 122 333 86 -1. 1. 512 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 newex 542 169 60 9109513 prepend size;
#P newex 525 139 62 9109513 sampstoms~;
#P newex 542 202 65 9109513 buffer~ buffo;
#P newex 90 256 62 9109513 peek~ buffo;
#P newex 90 225 46 9109513 listfunnel;
#P comment 546 28 100 9109513 lunghezza in campioni;
#P connect 9 0 8 0;
#P connect 8 1 4 0;
#P fasten 8 0 7 0 513 87 95 87;
#P connect 6 0 1 0;
#P connect 7 0 6 0;
#P connect 5 0 3 0;
#P connect 4 1 5 0;
#P connect 1 0 2 0;
#P window clipboard copycount 10;
« Ultima modifica: Giugno 22, 2006, 14:31:53 da .franz » Loggato

Massimiliano
Newbie
*
Posts: 6


Guarda Profilo
« Risposta #9 il: Giugno 29, 2006, 14:46:40 »

non credo di essere ancora abbastanza "addentrato" per capire al volo il consiglio di franz, che ringrazio comunque.
nel mio caso non sto usando le function per creare forme d'onda ma per modulare degli oscillatori.
come inviluppi insomma, ma che possono essere mandati in loop diventando in pratica degli lfo...
a proposito... per mandare una function in loop ho usato un espediente che mi sembra un po rozzo nonostante funzioni: ho usato il comando metro con il timing uguale alla lunghezza (setdomain) della function. esiste un modo più elegante?


ma tornando al problema salvataggio impostazioni...
sono già riuscito a salvare e reimpacchettare le imposatazioni di una function con il metodo descritto da mic. e funziona. il problema è che non riesco a fare funzionare il tutto all'interno del mio plugin.
il numero massimo di punti che ho fissato è 16.

la via che ho pensato di seguire è questa: quando la function viene modificata viene triggerato il comando listdump che invia una lista di coordinate al plugmultiparam. la lista viene inviata nuovamente anche quando cambio la lunghezza del mio inviluppo.
il plugmultiparam dovrebbe restituirmi una lista di coordinate che reinvio alla function (a pacchetti di due) quando carico un preset del mio plugin o quando riapro il progetto sul mio host...

il problema è che tutto ciò non accade.
pare che le impostazioni dell inviluppo che rimangono salvate nella patch di maxmsp vengano richiamate prima (o dopo, non saprei) dei dati savati su multiparam e si sostituisacno automaticamente a questi appena il plugin viene aperto. esiste un modo per evitare ciò?
e poi... devo utilizzare anche plugstore? e in che modo esattamente devo interconnetterlo con plugmultiparam?

Loggato
franz
AAA1
Hero Member
*
Posts: 884


Guarda Profilo WWW
« Risposta #10 il: Giugno 29, 2006, 18:43:24 »

non credo di essere ancora abbastanza "addentrato" per capire al volo il consiglio di franz, che ringrazio comunque.
nel mio caso non sto usando le function per creare forme d'onda ma per modulare degli oscillatori.
come inviluppi insomma, ma che possono essere mandati in loop diventando in pratica degli lfo...


Se devi generare inviluppi è più comodo l'oggetto function che ti permette di gestire meglio i parametri ADSR, se invece devi agire sull'ampiezza con degli Lfo ti conviene usare forme d'onda per comodità e "tradizione" mettiamola così Wow

a proposito... per mandare una function in loop ho usato un espediente che mi sembra un po rozzo nonostante funzioni: ho usato il comando metro con il timing uguale alla lunghezza (setdomain) della function. esiste un modo più elegante?

se colleghi l'oggetto function ad un line~ è sufficiente connettere il secondo inlet di line~ al primo inlet di function per generare un loop. Se puoi vuoi interrompere un loop ci metto un gate di mezzo ed è fatta Sorriso

ma tornando al problema salvataggio impostazioni...
sono già riuscito a salvare e reimpacchettare le imposatazioni di una function con il metodo descritto da mic. e funziona. il problema è che non riesco a fare funzionare il tutto all'interno del mio plugin.
il numero massimo di punti che ho fissato è 16.

la via che ho pensato di seguire è questa: quando la function viene modificata viene triggerato il comando listdump che invia una lista di coordinate al plugmultiparam. la lista viene inviata nuovamente anche quando cambio la lunghezza del mio inviluppo.
il plugmultiparam dovrebbe restituirmi una lista di coordinate che reinvio alla function (a pacchetti di due) quando carico un preset del mio plugin o quando riapro il progetto sul mio host...

il problema è che tutto ciò non accade.
pare che le impostazioni dell inviluppo che rimangono salvate nella patch di maxmsp vengano richiamate prima (o dopo, non saprei) dei dati savati su multiparam e si sostituisacno automaticamente a questi appena il plugin viene aperto. esiste un modo per evitare ciò?
e poi... devo utilizzare anche plugstore? e in che modo esattamente devo interconnetterlo con plugmultiparam?

mi sa che questa è la cosa che più ti preme e ahimè, non ti so aiutare, non avendo mai fatto largo uso delle librerie di pluggo.

Sicuramente qualcuno sa qualcosa!
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!