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 la Computer Music
| |-+  Altri linguaggi
| | |-+  Tastiera virtuale con PD
« precedente successivo »
Pagine: [1] Stampa
Autore Topic: Tastiera virtuale con PD  (Letto 681 volte)
ananto
Newbie
*
Posts: 8


Guarda Profilo
« il: Settembre 07, 2007, 19:57:29 »

Salve a tutti, devo fare un lavoro con PD e dato che sono veramente alle prime armi avrei bisogno di qualche aiuto!! quello che vorrei fare è creare dei suoni PD usando osc, phaser ecc... che possano essere suonati con una tastiera collegata via midi al pc.

Come posso, una volta creato il suono mischiando oscillatori e filtri riuscire a utilizzare la tastiera per suonarlo? so che mi serve il notein ma non so dove collegarlo!!
Se collego il notein (midi in) direttamente all'oscillatore ho in uscita un suono stranamente a bassa frequenza, il mio la 440 sulla tastiera non corrisponde ad un 440 in uscita ma a qualche ottava piu bassa.

Una volta creati 3-4 suoni sarebbe bellino poter creare un modo per scegliere quale suonare come se fosse un program change!!
Grazie in anticipo!!
« Ultima modifica: Settembre 07, 2007, 19:59:54 da ananto » Loggato
gianlucamodica
Jr. Member
**
Posts: 73


Guarda Profilo
« Risposta #1 il: Settembre 07, 2007, 23:05:06 »

una soluzione può essere l'uso dell'oggetto mtof (miditofrequencies) cmnq qui troverai sicuramente qualcuno che ti possa dare una risposta piu completa .



note in -
             -
               -mtof
                   -
                      osc

per la ricezione dei progCH/CC in pd vi e l'oggetto ctrin che riceve dai settaggi Midi di pd i progCH/CC e li sputa fuori verso un qualunche oggetto di controllo .Come argomento bisogna specificare il numero di progCH o CC

scusa per la risposta un po asciutta ma sto per uscire

BANG a tutti
« Ultima modifica: Settembre 08, 2007, 14:02:33 da yan » Loggato
ananto
Newbie
*
Posts: 8


Guarda Profilo
« Risposta #2 il: Settembre 10, 2007, 22:50:30 »

Grazie mille, mtof è stato veramente utile!!:D
Ora visto che sei stato cosi gentile ti sottopongo un altro problema...anzi due  Grossa risata  Occhiolino

1) Come vedi nella foto ho fatto in modo di poter utilizzare sia i suoni creati con pd, sia i banchi midi della scheda audio, ma mentre per disabilitare i suoni creati con pd mediante gli oscillatori è sufficiente porre a zero la frequenza non so come poter zittire quelli provenienti dalla scheda audio (implementati con notein-noteout) che suonano anche se pd è settato con audio off. Con questa configurazione suonano in contemporanea agli altri.
In sostanza vorrei trovare un modo che consentisse di scegliere se usare i suoni di pd o quelli della scheda audio

2) Con i suoni realizzati dall'oscillatore la nota in ingresso rimane "in hold" ovvero continua a suonare anche dopo che ho smesso di premere il tasto sulla tastiera, è possibile ovviare a questo problema?

Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #3 il: Settembre 11, 2007, 12:00:23 »

innanzitutto non postare immagini ma posta la patch sulla quale ti interessa avere consigli, è decisamente più comodo per noi aiutarti e per te avere risultati più concreti.

Citazione
1) Come vedi nella foto ho fatto in modo di poter utilizzare sia i suoni creati con pd, sia i banchi midi della scheda audio, ma mentre per disabilitare i suoni creati con pd mediante gli oscillatori è sufficiente porre a zero la frequenza
assolutamente da evitare come metodo per mettere in "mute" un oscillatore o qualsiasi altra cosa, quello di mettere la frequenza a 0. In questo modo non senti ovviamente il suono in questione, ma il suo valore di ampiezza viene comunque sommato nell'uscita principale causando un DCOffset: se hai due oscillatori può non significare molto, ma se ne hai 10 Grossa risata ?
Evitare questo è possibile moltiplicando l'output dell'oscillatore per un valore compreso tra 0. e 1.

Citazione
2) Con i suoni realizzati dall'oscillatore la nota in ingresso rimane "in hold" ovvero continua a suonare anche dopo che ho smesso di premere il tasto sulla tastiera, è possibile ovviare a questo problema?

devi creare un inviluppo, ovvero moltiplicare, come prima, il valore in uscita del tuo oscillatore o qualsiasi altra cosa per una progressione di valori tra 0. e 1. con una forma d'onda propria e una durata propria.
Puoi vedere l'oggetto line, line~ o vline~ per fare questo Sorriso
Con un pò di ingegno riuscirai a costruire il tuo inviluppo ADSR o anche solamente ASR.

opss..avevo dimenticato l'allegato

« Ultima modifica: Settembre 11, 2007, 12:03:07 da franz » Loggato

ananto
Newbie
*
Posts: 8


Guarda Profilo
« Risposta #4 il: Settembre 11, 2007, 15:17:33 »

Innanzitutto grazie della pazienza!!
In effetti non avevo pensato alla possibilità di postare la patch!!
Ho scaricato il tuo allegato, funziona abbastanza bene, attualmente ho solo un problema, anche dopo aver modificato i vari parametri di delay e attacco viene suonata la nota sia quando premo che quando rilascio il tasto...che fare?

Per il problema originale, hai un idea di come zittire i suoni provenienti dalla scheda audio? purtroppo suonano anche con audio off...
« Ultima modifica: Settembre 12, 2007, 15:36:03 da ananto » Loggato
ananto
Newbie
*
Posts: 8


Guarda Profilo
« Risposta #5 il: Settembre 12, 2007, 15:44:23 »

Già che ci sono posto la patch. Ho semplicemente aggiunto il tuo inviluppo e ora i problemi da risolvere sono i seguenti:

1) possibilità di scegliere se usare i banchi midi della scheda audio (che con questa patch suonano in ogni caso ed in contemporanea al suono prodotto dall'oscillatore) oppure solo quelli creati con pd.

2) Con la patch attuale viene suonata una nota (solo per quanto riguarda l'oscillatore) sia quando premo il tasto della tastiera sia quando lo rilascio
Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #6 il: Settembre 12, 2007, 22:19:01 »

Citazione
1) possibilità di scegliere se usare i banchi midi della scheda audio (che con questa patch suonano in ogni caso ed in contemporanea al suono prodotto dall'oscillatore) oppure solo quelli creati con pd.

sinceramente non ho capito cosa intendi Sorriso

Citazione
2) Con la patch attuale viene suonata una nota (solo per quanto riguarda l'oscillatore) sia quando premo il tasto della tastiera sia quando lo rilascio

ecco qua, ora hai un perfetto invilluppo ASR configurabile dove il Sustain è pari al tempo di pressione del tasto.
« Ultima modifica: Settembre 12, 2007, 22:20:58 da franz » Loggato

ananto
Newbie
*
Posts: 8


Guarda Profilo
« Risposta #7 il: Settembre 12, 2007, 23:46:41 »

Citato da: franz
sinceramente non ho capito cosa intendi Sorriso

Anche se era già implementato (anche se scollegato) nella patch precedente ti allego un altra patch cosi ci capiamo meglio. Utilizzando semplicemente notein noteout il risultato è riuscire a suonare utilizzando i banchi di suoni presenti nella scheda audio del pc, quelli che di fatto vengono utilizzati quando riproduci un midi da qualunque player. Con pgmin e pgout posso selezionare i vari suoni (piano, strings, pad ecc...) Inspiegabilmente basta settare la porta midi e anche se è settato "audiooff" il suono esce dalle casse. La patch finale dovrebbe dare la possibilità di scegliere se utilizzare questi suoni oppure quelli creati con pd che utilizzano il tuo inviluppo. Ora come ora se il note in è collegato ad un noteout il suono che ottengo in uscita è la composizione di quello proveniente dall'oscillatore e quello proveniente dai banchi midi della scheda audio...Spero di essere stato piu chiaro!


Non ho ancora provato il tuo nuovo inviluppo ma sto già cominciando a costruire un busto in tuo onore al centro della camera! Wow
« Ultima modifica: Settembre 12, 2007, 23:51:02 da ananto » Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #8 il: Settembre 13, 2007, 10:13:16 »

Citazione
Inspiegabilmente basta settare la porta midi e anche se è settato "audiooff" il suono esce dalle casse.

questo succede perchè i suoni che stai usando sono appunto quelli caricati nella scheda audio e il loro output dipende dal device virtuale della scheda e non dall'output audio di puredata Sorriso

dovresti cercare il modo per dire alla wavetable di abbassare il volume, penso che con pgmin sia possibile
Loggato

ananto
Newbie
*
Posts: 8


Guarda Profilo
« Risposta #9 il: Settembre 13, 2007, 15:52:00 »

Dato che la cosa funziona solo se il noteout è collegato al notein, non esiste un modo, magari attraverso un toggle, di abilitare o meno il collegamento tra i due oggetti?

Un altra alternativa potrebbe essere creare una patch dove è possibile accedere alla patch dove si utilizzano i banchi della scheda audio e a quella con i suoni di pd attraverso due message boxes esattamente come avviene nella maggior parte degli help. ma come faccio a "linkare" un message box ad un altro file .pd?
« Ultima modifica: Settembre 13, 2007, 16:04:59 da ananto » Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #10 il: Settembre 13, 2007, 17:34:43 »

Citazione
Dato che la cosa funziona solo se il noteout è collegato al notein, non esiste un modo, magari attraverso un toggle, di abilitare o meno il collegamento tra i due oggetti?

gate o spigot...ma questa domanda mi fa supporre che tu non abbia guardato moltissimo la documentazione Linguaccia

Citazione
Un altra alternativa potrebbe essere creare una patch dove è possibile accedere alla patch dove si utilizzano i banchi della scheda audio e a quella con i suoni di pd attraverso due message boxes esattamente come avviene nella maggior parte degli help. ma come faccio a "linkare" un message box ad un altro file .pd?

puoi usare l'oggetto getdir, in combinazione con un messagebox con testo ";pd open $1.pd $2"
ma non mi sembra la soluzione migliore..non ti convien piuttosto mandare un messaggio midi relativo al volume del canale che stai usando e metterlo semplicemente in "mute" quando non serve?
Loggato

ananto
Newbie
*
Posts: 8


Guarda Profilo
« Risposta #11 il: Settembre 14, 2007, 21:09:02 »

Si in effetti la documentazione mi era sfuggita!! Comunque con spigot ho risolto tutti i problemi e completato la patch.

Ora sto cercando di capire come funziona il tuo inviluppo a livello di pseudocodice, ok per la parte relativa al mtof, phasor ecc. ecc. qualche problemino per l'altra parte. Sel riceve in ingresso il dato relativo alla "velocity" e lo confronta con 0, se è diverso lo divide per 127 (??) poi....boh...se invece è uguale entra nel trigger e boh... Huh Huh
Un altra cosa che non ho capito (probabilmente perchè non ho capito bene come funziona l'inviluppo) mentre per attack e release ci sono gli slider, come modifico il valore del sustain?

E' l'ultima volta che ti stresso!! Grossa risata
« Ultima modifica: Settembre 15, 2007, 16:58:46 da ananto » Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #12 il: Settembre 17, 2007, 19:13:04 »

leggi gli help relativi agli oggetti usati e vedrai che ti sarà tutto più chiaro Sorriso
Loggato

ananto
Newbie
*
Posts: 8


Guarda Profilo
« Risposta #13 il: Settembre 18, 2007, 12:24:59 »

Allora ho buttato giù il possibile funzionamento del tuo inviluppo. Ci sono ancora 2 punti oscuri, ti prego di correggere eventuali errori:

L’informazione sulla velocità è inviata al blocco select che la confronta con il valore 0. A questo punto la patch si divide in due rami: il ramo sinistro è quello che corrisponde al “MATCH” generato dal blocco sel (la velocity è effettivamente zero, dunque la nota non è ancora premuta) e il ramo destro che corrisponde al NO MATCH di sel (la velocity è diversa da zero)
Va da se che sul ramo sinistro sarà possibile agire sull’attacco (la fase durante la quale il volume passa da zero al suo valore massimo) mentre su quello destro si potrà lavorare su sustain e release (in quanto la nota è già stata premuta). Attack e Release sono espressi in unità di tempo, Sustain in unità di ampiezza. 
Ramo sx: il valore in uscita da sel viene convertito in un bang e memorizzato in una variabile i. A questo punto è possibile mediante lo slider forzare l’uscita (attraverso l’inlet destro di i) al valore desiderato (che sarà appunto il tempo che impiegherà la forma d’onda a raggiungere il suo valore massimo). Questo valore viene “chiamato 0” e spedito al line object.
Ramo dx: viene richiamata l’informazione sulla velocity e utilizzata come livello di sustain (perchè /127??) il release non ho ancora capito come fa ad agire.)
L’oggetto pack manda i messaggi al line object che genera una rampa lineare i cui livelli e tempi sono determinati dai messaggi che provengono dal ramo sinistro e destro. Ogni 10 msec il valore corrente viene azzerato e viene fatta ripartire una nuova rampa.

Un'altra cosa che non mi torna è il risultato del controllo del release. cambiando il release dovrei modificare il tempo che impiega la nota a tornare ad un valore 0.  Gli effetti che si hanno modificando i due slider mi fanno pensare che release e attack siano scambiati anche se di fatto cosi non dovrebbe essere perchè il ramo dove si puo modificare l'attacco corrisponde al match con 0 di sel (ovvero velocity nulla). Però facendo le prove mentre suono, se sparo l'attacco al massimo ho si una variazione del tempo con la quale la nota raggiunge il valore massimo ma soprattutto un decadimento fino allo zero molto più lungo, che dovrebbe essere quello che dovrei poter controllare solo con il release!

Se invece modifico il release il tempo di decadimento mi sembra sempre lo stesso mentre si ha un attacco più lungo!
« Ultima modifica: Settembre 18, 2007, 13:31:13 da ananto » Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #14 il: Settembre 18, 2007, 20:22:32 »

si ho scritto release su attack e attack su release, il resto funziona Sorriso
Però leggiti l'help dell'oggetto sel, mi sembra che tu non abbia troppo chiaro il suo funzionamento
il sustain corrisponde al lasso di tempo in cui tieni premuta la nota e non è affatto indicato con valori di ampiezza..
l'ampiezza è invece quel misterioso /127 Occhiolino
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.5 | SMF © 2006-2008, Simple Machines LLC
Traduzione Italiana a cura di SMItalia
XHTML 1.0 Valido! CSS Valido!