Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Création d'un synthé sous Matlab (Choc par ici !)

  • 114 réponses
  • 7 participants
  • 14 245 vues
  • 9 followers
Sujet de la discussion Création d'un synthé sous Matlab (Choc par ici !)
Salut à tous et à Choc qui a intérêt à se ramener vite fait :ptdr:

Bon, je me suis acheté un Palm T|X pour pouvoir faire tourner dessus le séquenceur MIDI Bhajis Loops (basé sur un sampleur et sur des banques d'échantillons, une vraie tuerie ce soft !). Donc j'ai commencé à sampler plein de trucs à droite et à gauche pour en faire des WAV qui sont lisibles par ce logiciel.

Je me suis dit que c'était comme même dommage qu'il n'y ait pas de VSTis sur ce séquenceur, même si je sais pertinemment que de toutes façons, au vu de la puissance des CPU pour Palm, ça serait complètement impossible... Du coup je me suis dit que ça serait génial d'avoir un synthétiseur sur Palm, qui ne fonctionne pas en temps réel mais qui permette d'exporter des WAV pour les utiliser dans Bhajis Loops ! Ca serait parfait.

J'ai donc deux solutions pour faire ça : la première c'est de développer un soft avec un compilateur pour Palm OS, comme HB++... Ca a l'air un peu pénible comme même mais c'est faisable...

La deuxième solution, qui me convient le plus, c'est un Matlab like gratuit qui existe sur Palm OS qui s'appelle LyME ! Ainsi, j'aurais qu'à écrire le programme et changer les définitions de variables au début pour le paramétrer... En plus je crois qu'il y a des fonctions pour faire une vraie GUI donc c'est parfait. Le seul hic, c'est que ce soft ne fait pas encore l'import/export en WAV, mais j'ai contacté les developpeurs à ce sujet, donc ça sera peut être possible...Donc, en attendant, je vais m'y mettre sur Matlab !

En gros, si vous avez des conseils, je suis preneur... Je vais faire un truc de synthèse additive pour commencer avec 2 ou 3 oscillos, autant de filtres, un LFO etc. et ensuite il faudra que l'utilisateur spécifie un fréquence d'échantillonnage et une note/octave, pour créer un fichier WAV correspondant... Bref il me faut un truc versatile, qui crée une bonne variété de sons différents, et peut-être que je vais tester ensuite d'autres types de synthèse. Quelques suggestions ? Des remarques sur mon projet ?

Autre question en passant : qu'est-ce qui donne le caractère de tel ou tel autre synthétiseur numérique ? Est-ce les formes d'ondes (par exemple un sinus bruité modélise sur du sinus analogique au lieu d'un sinus numérique parfait), la nature des filtres ?

Choc > je suis en train de me plonger dans tes sources Matlab sur la synthèse, c'est très intéressant et ça va bien m'aider :bave:

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape

Afficher le sujet de la discussion
91

Citation : Je vois loin dans l'avenir man

la modelisation physque pour l'instant


On n'y est pas encore :mrg:

Citation : t'ouvres maxmsp


Max/MSP c'est pour les rigolos :oops2: Et moi je compte joindre des banques de sons dédiées à la convolution sur le synthé :oops2: Sans compter que j'aimerais bien mettre une section d'effet sur chaque élement à convoluer...

Citation : Il y avait un thread recemment sur music-dsp a ce sujet; malheureusement, ca depassait assez largement mes competences en info. Si ca vous interesse, je peux essayer de le retrouver.


Je veux bien :clin:

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape

92

Hors sujet : Pourquoi j'ai des vieux smiley mechant, et Gabou a droit a des smilez sympathiques :mrg:

93

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape

94

Hors sujet : Je parlais au niveau de tes smiley :non: :mrg:

Tu oublies le principe de base :wolfen:. C'est pas parce que gabou me dechirre en signal qu'il faut lui faire les yeux doux :ptdr:

95
Je lis trop vite... :ptdr:

:roll: :oops2: :diable: :boire2: :beurk: :nawak: :fache2: :furieux:



Sinon je ne vois pas de quoi tu parles :noidea:

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape

96
Voila le lien en question, mais en fait, j'ai eu une mauvaise memoire, ca parle *que* des problemes du moteur audio pour avoir des perfs optimales dans un semi modulaire:

https://music.columbia.edu/pipermail/music-dsp/2005-December/031497.html

Mais je comprends pas tous les details (et donc pas grand chose, car en info, tout est dans les details); typiquement, je sais pas tres bien ce qu'est un time stamped event (mais ca a l'air super important, il y a eu un gros thread la dessus sur le plus ou moins defunt projet GMPI), et j'ignore tout des techniques de compilation et JIT.

Un truc chiant avec la convolution en temps reel, c'est le patent de machin lake (j'ai oublie le nom de la boite). Il me semble (mais la encore faudrait verifier, j'ai mauvaise memoire) que des que tu veux faire de la convolution en temps reel (ie partition de la FFT de la reponse impulsionnelle de maniere a avoir peu de latence tout en beneficiant des avantages de la FFT), tu tombes sous le patent. Faudrait voir avec bruteFIR, comment il se debrouille (ignore le patent, ou fait autrement ?).

Vous me donnez envie de me relancer dans l'aventure de la prog audio, tiens... Saloperie de RSI :nawak:
97
Merci pour le lien et les infos :clin:

Concernant le brevet de Lake, il concerne le partitionnement des réponses impulsionnelles avant de faire de la convolution fréquentielle, en particulier la longueur optimale du partitionnement d'après ce que j'ai compris...

Quand on fait de la convolution fréquentielle temps réel, on est obligé d'utiliser les algos overlap add / overlap save pour traiter le bloc d'échantillon qui arrive à chaque calcul (dont la longueur est égale à la taille du buffer de la carte son, qui définit sa latence). On peut se contenter de cette technique si les réponses impulsionnelles sont petites.

Par contre, si les réponses impulsionnelles sont longues, il faut les partitionner, et faire plusieurs FFT/Convolutions pour chaque bloc de signal entrant, ce qui réduit les temps de calcul (il vaut mieux faire 5 convolutions fréquentielles sur des petits buffers que une seule sur un gros buffer). Ce partitionnement peut être uniforme (c'est ce qui est fait avec les réverbs à convolution que je connais, SIR, celle de Voxengo etc.) ou variable pour chaque convolution, et là c'est breveté par Lake, qui d'après ce que j'ai compris donne dans son brevet des règles pour optimiser au max les performances et la latence...

A l'AES d'il y a 2 ou 3 ans, il paraît qu'un gus de Microsoft avait essayé de brevéter un truc similaire, mais c'est pas passé étant donné que des gens avaient publié fin des années 80 un truc identique :ptdr: Le mec c'était fait cassé en direct sur place et sur Music-DSP par Angelo Farina (dire que j'ai failli faire mon stage chez lui :roll: )

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape

98
Tiens je maquette mon plug de binaural sur matloub, je me suis fait un prog de convolution par passage en freqeuntielle et technique overlapp add..p'taing ca marche bien mais un petit decallage dans les indices et ca click de partout :ptdr:
99

Citation :
A l'AES d'il y a 2 ou 3 ans, il paraît qu'un gus de Microsoft avait essayé de brevéter un truc similaire, mais c'est pas passé étant donné que des gens avaient publié fin des années 80 un truc identique



Ah oui, je m'en souviens de ce truc :surpris: Ta these, tu as failli la faire chez Farina ?

Citation :
p'taing ca marche bien mais un petit decallage dans les indices et ca click de partout



M'en parle pas, je me souviens des fois de sales trucs parce que matlab fait une difference entre Hann et hanning, et du coup, j'avais un sale warbling qui venait de je ne sais ou...

C'est chaud de bien faire des convolution/autocorrelations (je suis plus interesse par ces dernieres maintenant pour mes recherches), parce que des que tu sors du cache, tu diminues les perfs de presque un ordre de grandeur
100

Citation : Tiens je maquette mon plug de binaural sur matloub, je me suis fait un prog de convolution par passage en freqeuntielle et technique overlapp add..p'taing ca marche bien mais un petit decallage dans les indices et ca click de partout


Ca m'avait fait pareil au début, faut bien faire attention à la taille de tes buffers (la convolution se fait sur N+M-1, tu envoie les premiers N en sortie, et tu ajoutes les M-1 du calcul précédent au début de la sortie du nouveau).

Citation : Ta these, tu as failli la faire chez Farina ?


Mon stage de cette année plutôt. C'était ce qui était prévu depuis Novembre 2005, il m'avait donné son aval par mail très vite, mais il a été long à mettre en place les petits détails à cause de cette fichue administration italienne, du coup ça s'est pas fait et j'ai du me trouver un stage en plein mois de Février à toute vitesse, en relançant les boites à qui j'avais envoyé un refus... Heureusement Nonconforme avait besoin d'un développeur pour sa boîte :mrg:

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape