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
| | |-+  Theremax - sottospecie di theremin con eyesweb&max
« precedente successivo »
Pagine: [1] Stampa
Autore Topic: Theremax - sottospecie di theremin con eyesweb&max  (Letto 1452 volte)
psicostick
Newbie
*
Posts: 17


Guarda Profilo
« il: Settembre 25, 2009, 01:16:05 »

Ciao a tutti.
Sto portando avanti un progetto di tesi in relazione ad un theremin realizzato
con il pc. Per l'installazione ho usato due webcam e EyesWeb+MaxMsp
Su eyesweb effettuo il tracciamento dell'area della mano sinistra che si muove sull'asse verticale, i dati vengono
scalati e inviati a maxMsp che controlla il volume del suono. Con la seconda wcam traccio il baricentro dell'altra mano che si muoverà
sull'asse orizzontale, i dati scalati inviati a max controllano la "tonalità". Molto semplice insomma.

Ora vorrei migliorare il sound,qiundi sviluppare la patch di max, vorrei diciamo avere la possibilità di scegliere
dei suoni diversi dal semplice cycle, e avere la possibilità di modificare alcuni parametri come il delay, il gain o roba del genere.

Si accettano consigli-patch-insulti, tutto ciò che può essere utile e costruttivo Sorriso
Intanto posto le due patch (per la patch di max, ringrazio l'utente Bruno Zamborlin, mi ha dato una mano
visto che ero/sono alle prime armi).
Grazie
Stefano
Loggato
Maurizio Giri
Amministratore
Hero Member
*****
Posts: 783


Guarda Profilo WWW
« Risposta #1 il: Settembre 25, 2009, 08:46:14 »

Su Eyesweb non so aiutarti (non ce l'ho).
Riguardo la patch di max potresti dare una leggera distorsione alla sinusoide (vedi patch).
Inoltre l'ampiezza dovrebbe variare tra 0 e 1 (valori floating point), mentre vedo che tu usi i dati interi così come arrivano da eyesweb. Supponendo che eyesweb mandi dati da 0 a 127 (non lo so) puoi fare come nella patch che ti allego, se no sostituisci nell'oggetto scale i valori 0 127 con i valori opportuni.
Stesso discorso per la frequenza: se usi solo valori in hertz interi non potrai mai fare una scala intonata. Converti il range di eyesweb in un range di hertz opportuno e non usare un number box degli interi per visualizzare i dati, ma un number box con la virgola.

m

#P user scope~ 529 395 659 525 7 3 128 -1. 1. 0 0. 0 0. 102 255 51 135 135 135 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 327 226 87 196617 scale 0 127 0. 1.;
#P user spectroscope~ 207 428 300 100 20 0 0 0 1 1 0 0 0 0 0 0;
#X frgb 224 224 224;
#X brgb 255 255 255;
#X rgb2 0 0 0;
#X rgb3 243 204 204;
#X rgb4 255 0 0;
#X rgb5 184 184 184;
#X rgb6 0 0 0;
#X rgb7 0 0 0;
#X rgb8 255 255 255;
#X rgb9 255 0 0;
#X rgb10 255 191 0;
#X rgb11 0 191 127;
#X rgb12 127 0 127;
#X rgb13 0 0 0;
#X range 0. 1.2;
#X domain 0. 22050.;
#X done;
#P flonum 186 248 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 116 290 32 196617 *~ 1;
#P newex 117 309 35 196617 tanh~;
#P user gain~ 117 367 24 100 158 0 1.071519 7.94321 10.;
#P newex 326 301 27 196617 line~;
#P newex 326 264 51 196617 append 20;
#P number 326 178 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 2;
#P newex 326 144 76 196617 OSC-route /area;
#P window linecount 1;
#P newex 288 105 86 196617 OpenSoundControl;
#P window linecount 2;
#P newex 288 67 96 196617 udpreceive 80 cnmat;
#P user ezdac~ 103 514 147 547 0;
#P window linecount 1;
#P newex 118 333 107 196617 *~;
#P newex 117 267 40 196617 cycle~;
#P newex 117 242 27 196617 line~;
#P newex 117 218 51 196617 append 20;
#P number 116 189 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 2;
#P newex 116 145 99 196617 OSC-route /baricentro;
#P window linecount 1;
#P newex 78 106 86 196617 OpenSoundControl;
#P window linecount 2;
#P newex 78 68 96 196617 udpreceive 80 cnmat;
#P window linecount 1;
#P comment 183 232 62 196617 distorsione;
#P connect 7 0 18 0;
#P connect 6 0 7 0;
#P connect 8 0 16 0;
#P connect 8 0 20 0;
#P connect 8 0 22 0;
#P connect 21 0 14 0;
#P connect 13 0 21 0;
#P connect 18 0 17 0;
#P connect 19 0 18 1;
#P connect 17 0 8 0;
#P connect 14 0 15 0;
#P connect 12 0 13 0;
#P connect 11 1 12 0;
#P connect 10 0 11 0;
#P fasten 15 0 8 1 331 327 220 327;
#P fasten 16 0 9 0 122 501 108 501;
#P fasten 16 0 9 1 122 501 142 501;
#P connect 5 0 6 0;
#P connect 4 0 5 0;
#P connect 3 0 4 0;
#P connect 2 1 3 0;
#P connect 1 0 2 0;
#P window clipboard copycount 23;
Loggato

psicostick
Newbie
*
Posts: 17


Guarda Profilo
« Risposta #2 il: Settembre 29, 2009, 14:07:58 »

Mhh ok allora per l'ampiezza è ok, ho messo i dati da 0 a 127.
Per la frequenza non riesco a settare i numeri che escono da eyesweb con la virgola. Però potrei farlo tramite max scalando e facendoli diventare numeri con la virgola o sbaglio? forse non è la stessa cosa? (e vorrei capire bene questa cosa degli hertz e della scala intonata..)

e invece per quanto riguarda una specie di delay, un echo, o anche altri suoni differenti?
« Ultima modifica: Settembre 29, 2009, 23:22:54 da psicostick » Loggato
Maurizio Giri
Amministratore
Hero Member
*****
Posts: 783


Guarda Profilo WWW
« Risposta #3 il: Settembre 30, 2009, 07:34:30 »

Sì, forse non ero stato chiaro, intendevo: prendi il range di numeri interi che ricevi dal sensore e trasformalo in un range con la virgola da uilizzare per le frequenze.
Ancora meglio potresti riscalare i dati eyesweb in dati di nota MIDI, ad es (ipotizzando che eyesweb vada da 0 a 128) puoi usare un oggetto [scale 0 128 60. 92.], in questo modo ottieni le note MIDI che vanno da 60 a 92 con una risoluzione all'ottavo di tono, poi con mtof converti i dati da nota midi a frequenza.

Sulle frequenze non intonate: l'unica nota che può essere espressa con un numero intero di Hz è il LA (220, 440, 880 etc.) perché la sua frequenza è stata stabilita da una convenzione internazionale. Tutte le altre frequenze sono calcolate a partire dal LA, ed essendo il rapporto di semitono temperato uguale a radice dodicesima di due (cioè un numero irrazionale), hanno una frequenza non intera, anzi per la precisione con un numero infinito di decimali.

Per la forma d'onda: il theremin ha un timbro molto semplice, quasi sinosoidale, quindi in alternativa potresti usare un'onda triangolare (tri~) o una dente di sega filtrata (saw~ + filtro passabasso).

Sul resto non saprei, dipende dal quello che vuoi ottenere: dato un suono, che sia di theremin o di clarinetto o di contrabbasso, puoi aggiungere tutti gli effetti che vuoi.
Il delay e l'eco comunque in max si realizzano generalmente con la coppia tapin~ tapout~ (vedi gli help relativi)

m
Loggato

vallste
Jr. Member
**
Posts: 58


Guarda Profilo WWW
« Risposta #4 il: Settembre 30, 2009, 11:27:19 »

Non ne sono completamente sicuro ma da qualche parte avevo letto che il suono del theremin è tipo una sinusoide con solo la parte positiva e quella negativa appena accennata e che aumentavano le armoniche pari all'aumentare della frequenza, sinceramente non so dirti se sia vero o falso.

Come principio di funzionamento quelli classici usano l'eterodina (si scrive cosi'?  Imbarazzato ) praticamente due oscillatori (con frequenze oltre l'udibile) la cui differenza di frequenza é la frequenza che vuoi ottenere.

In qlo alla balena per il tuo progetto
Loggato
psicostick
Newbie
*
Posts: 17


Guarda Profilo
« Risposta #5 il: Ottobre 05, 2009, 10:52:06 »

ma quindi per attribuire un suono tipo contrabasso oppure chitarra che ne sò o suoni del genere? ci sono dei blocchi appositi?
Poi sono arrivato ad un altro problema logistico.
Se io ho due onde. Come faccio a fare in modo che con un pulsante parta la patch della sinusoide
e con l'altro la patch dell'onda quadra? cioè potrei gestire "graficamente" questa patch?

ma il libro quando esce?!  Grossa risata
Loggato
Maurizio Giri
Amministratore
Hero Member
*****
Posts: 783


Guarda Profilo WWW
« Risposta #6 il: Ottobre 06, 2009, 07:28:22 »

ma quindi per attribuire un suono tipo contrabasso oppure chitarra che ne sò o suoni del genere? ci sono dei blocchi appositi?

Puoi usare dei campioni di quello che vuoi con oggetti tipo groove~ o wave~

Citazione
Poi sono arrivato ad un altro problema logistico.
Se io ho due onde. Come faccio a fare in modo che con un pulsante parta la patch della sinusoide
e con l'altro la patch dell'onda quadra? cioè potrei gestire "graficamente" questa patch?

Una possibile soluzione è in questo thread , ti basta sdoppiare la patch che ho colà allegato (cambiando ovviamente il codice del tasto).

Citazione
ma il libro quando esce?!  Grossa risata

Presto, tra poco cominciano a gemere le presse!

m
Loggato

matita87
Newbie
*
Posts: 1


Guarda Profilo
« Risposta #7 il: Luglio 18, 2010, 20:43:14 »

buonasera a tutti
sono nuovo in questo forum, e come prima cosa vorrei ringraziare tutte le persone che offrono consigli utili in particolare il professore Maurizio Giri.
anche io sto sviluppando per tesi un progetto di tesi in relazione ad un theremin realizzato
con max/msp ma purtroppo il mio professore mi ha avvertito che esistono gia molte molte soluzioni gia fatte e preconfezionate e che funzionano anche bene che sviluppano questo sistema !
a questo punto mi sono domandato se è davvero possibile implementare un controllo attraverso webcam che possa esser almeno diverso da quelli gia esistenti?

ringrazio in anticipo
cordiali saluti
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!