Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

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

  • 114 réponses
  • 7 participants
  • 14 821 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 | Soundcloud

Afficher le sujet de la discussion
26
27
Non mais je te jure, ça marche toujours pas mon bin's :ptdr:

Enfin sérieusement, ça a l'air compliqué tout ça, mais ça l'est pas tant que ça, y a juste quelques trucs à connaître, je prends n'importe quel passionné de MAO qui a un niveau BAC en maths, je lui fait un cours particulier de traitement du signal sur Matlab pendant une demi journée, et il est presque au même niveau que moi... Et avec un peu de théorie, c'est énorme tout ce qu'on peut faire en rapport avec la musique :8O:

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

28

Citation : une fois que j'ai les pôles et les zéros d'un tel filtre je ne sais pas comment ça va influencer la réponse en fréquence du filtre...



Wolf, d'habitude je me prend pas la tete sur matlab

penses a deux fonction qui peuvent etre utilie zplane et zp2tf (passage de la representation en pole et zeros vers la fonction de transfert)

En tout cas si tu veux tout faire a la main, c'est ton choix et ca a le merite d'etre didactique. Tu peux comparer tes scripts avec les resultats des fonction zp2tf par exemple pour voir si ta conversion de la reporesentation en pole et zeros vers la fonction de transefrt marche bien.

Sur matlab quand ta une question, tu tappes doc dans ta console et ensuite dans search tu tappes les mots clés. Ca evite de programmer de strucs qui existent deja :clin:
29
Je ne flag pas sur ce thread, ca m'interesse, mais je ne comprends rien :oops:
30
Choc > en fait sur LyME y a que la fonction "filter", donc je dois tout faire en transformée en Z, partir d'une fréquence Cutoff et d'un facteur de résonance pour aboutir à une fonction Z LP/HP/BP avec ces paramètres là...

Bon j'y suis presque là...

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

31
Ouf ça y'est, j'ai réussi à faire mes passe-bas/passe haut du premier ordre, ce fut dur étant donné qu'internet est plein de fautes et que personne ne lâche jamais TOUTES les infos mais j'y suis arrivé :8) Si ça t'intéresse Choc, je te dirai la méthode, l'avantage c'est qu'avec Laplace tu vois instantanément la réponse fréquentielle d'une fonction H en regardant les poles et les zéros, donc une formule qui réalise des filtres Z à partir de filtres Laplace c'est super pratique :mrg:

Et j'ai regardé tes fonctions, y'en a aucune qui fait la conversion Laplace vers Z, donc il n'y a toujours pas de moyen de déterminer la réponse fréquentielle en fonction des poles/zéros de la transformée Z :?!:

D'ailleurs, je ne pourrais plus utiliser la fonction filter maintenant, je vais être obligé de faire le calcul de y(n) en fonction des x(n - k) et des y(n - k), étant donné qu'avec un LFO les coefficients des filtres ne sont pas fixes :|

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

32

Citation : Et j'ai regardé tes fonctions, y'en a aucune qui fait la conversion Laplace vers Z, donc il n'y a toujours pas de moyen de déterminer la réponse fréquentielle en fonction des poles/zéros de la transformée Z



Clair, t'es trop une b*te Choc. :oops2:

:clin:
33
Il s'éclate :ptdr:

Hors sujet : Ca t'intéresserait pas d'ailleurs des études là-dedans ?

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

34

Hors sujet : J'ai eu six en math au bac. :D:

35

Hors sujet : La note ça veut rien dire, mais faut comme même pas détester bouffer des maths toute la journée pour bosser là dedans :D:

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

36

Hors sujet : ouille! :mrg:

37

Citation : il n'y a toujours pas de moyen de déterminer la réponse fréquentielle en fonction des poles/zéros de la transformée Z



zp2tf: Zero-pole to transfer function conversion
[B,A] = ZP2TF(Z,P,K) forms the transfer function


freqz: Digital filter frequency response.
[H,W] = FREQZ(B,A,N) returns the N-point complex frequency response
vector H and the N-point frequency vector W in radians/sample of
the filter

Hors sujet :

Citation : Clair, t'es trop une b*te Choc.



Trop une bete, je sais merci :oops: :mdr:

38

Citation : freqz: Digital filter frequency response


OK ça peut servir :mrg:

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

39
Bon finalement j'ai laissé tomber Matlab et LyME, trop chiant tout ce bordel, je suis en train d'utiliser HB++ qui est une sorte de Visual Basic shareware (sans limitations en version gratuite sauf la licence commerciale), ça donne ça :



Je vais rajouter aussi un "Send FM" sur l'oscillo 2 pour aller sur le 1, et pour l'instant on peut juste ouvrir/sauvegarder ses paramètres et jouer les formes d'ondes basiques avec les paramètres définis dans Main. La partie chiante sera encore et toujours le filtrage, ainsi que l'interpolation des formes d'ondes du LFO (pour cause de performances pourrites, il est impossible de calculer les formes d'ondes en direct, tout est basé sur du sampling).

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

40
Yo c'est la classe ton bidulle :bravo:

J'ai droit de sortit une alerte geek ici ou pas :idee:
41
Si tu commences à en sortir une pour moi, j'ai pas fini avec toi aussi :diable:

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

42
Au fait j'ai un truc qui pourra intéresser les geeks dans ton genre :

Les filtres du Moog

Et comme ça fonctionne sur du sampling, on pourra importer des WAV en oscillos, genre les ondes d'Absynth ou celles de synthés à modélisation analogique :mrg: D'ailleurs je suis à la chasse aux formes d'ondes là... Si je peux trouver des trucs genre "Vintage Sinus" ou "Vintage Sawtooth" ça serait génial :bravo:

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

43
L'article sur l'emulation des filtres moog je connais :D: (je suis fan des travaux de J.O Smith)

Pour le coup des formes d'ondes je sais pas si c'est ca qui donne vraiement le son. Je pense que les traitements numeriques et analogiques introduisent des grosses differences sonores (comportement des filtres, aliasing, propagation des erreurs de quantification, comportement "parfait" du numerique VS instabilité de l'analo etc etc).

Sur absynth, y a un mode qui permet "en gros" de simuler certaines imperfections de l'analogique. Pour chauqe oscillo, tu as une icone main, une icone mod et une autre dont je me rappelle plus. Cette derniere icone permet de generer plusieurs fois la meme forme d'onde avec un detune aleatoire que tu peux parametrer. Dnas le manuel ca doit etre bien expliqué

En tout cas bravo, ca a l'air d'etre du bon boulot :clin:
44
C'est vrai qu'il faudrait que je me farcisse plein de manuels de synthés

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

45

Hors sujet : Ecoutes c'est pas parce que t'as les dents bien blanches (merci freedent), que t'es obligé de les montrer a chaque smiley :furieux: :mdr:

46
:volatil: :up: :ptdr: :diable: :bravo: :mdr: :D: :mrg:

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

47

Citation :
Question existantielle... Je suis pas super à l'aise avec les filtres en transformées Z, une fois que j'ai les pôles et les zéros d'un tel filtre je ne sais pas comment ça va influencer la réponse en fréquence du filtre...

Par contre, je maîtrise mieux les transformées de Laplace pour le filtrage (c'est plus facile normal) et je sais faire des filtres facilement comme ça...



J'ai pas tout lu mais je crois que ce que tu cherches, ca s'appelle la transformation bilineaire. Je pense que la plupart des synthes numeriques utilisent un derive du biquad (parce qu'il y a probleme que tu n'as pas sur ordi a priori, a savoir celui de la quantisation des coefficients, et de la stabilite des filtres lorsque tu changes les parametres; remarque, sur palm, je suis pas persuade que tu aies une unite flottante).

http://www.earlevel.com/Digital%20Audio/Bilinear.html

Pour les oscillos, c'est assez important quand meme, mais il y a de bonnes techniques, entre autre BLIT (band limiter interpolation), mais je n'ai malheureusement jamais eu le temps de jouer avec :( Il y a du code sur musicdsp, et ca vaut le coup de regarder les archives aussi.

Sinon, pour la synthese additive dans un contexte analyse - synthese, je te conseille de regarder du cote de CLAM, il y a *beaucoup* de trucs, et il y a des programmeurs pro dessus, au sein de l'equipe de Serra (un des fondateurs de l'analyse-synthese par sinusoidal model, avec application a la musique).

http://www.iua.upf.es/mtg/clam/
48
Je me sens comme completement abruti quand je vous lis.
49
Ah Serra c'etait et sa methode d'analyse SMS.

- Extraction de partiels
- Extraction de la partie residuel par soustraction des partiels retenus au signal original

Apres la partie residuel tu fais comme tu veux, soit tu la modelise par synthese soustrative (bruit + filtre ARMA), soit par granulaire (c'est ce qu'utilise peugeot dans son synthetiseur hartis), soit par sampling etc

Pour l'analyse resynthese, j'avais commencé a redigé ca pour AF mais faut que je modifie car c'ets trop technique pour l'instant: http://vincent.choqueuse.free.fr/steackhache/additive.pdf

Hors sujet : Gabou, t'as commencé une autre thèse ? ca porte sur quoi ?

50
Merci pour vos infos à tous les deux

La transformée bilinéaire, j'avais déjà vu ça, par contre ce qui est marrant c'est que c'est la même formulation :ptdr: Un coup le 1/K c'est du 1/Te, un coup c'est du 1/tan(), après des fois faut transformer les s pour que la distorsion des fréquences de cette transformée soit annulée, des fois on n'en parle même pas, bref c'est un gros bordel :8O:

Musicdsp, j'ai déjà un peu regardé, je trouve ça pas terrible terrible globalement, y a beaucoup de gens qui font des copier collés sans rien capter, ou alors y a rien d'expliqué bref niveau rigueur on repassera...

Bon je vais regarder les liens...

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