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 246 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
71

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

72
Salut jimagine que si le but de ce thread est de créer un synthe sous matlab il est possible de produire en temps réel un son avec matlab grace a un clavier midi corriger moi si je me trompe ( je n’ai pas encore eu le temps de faire un tour dans la toolbox midi indiqué au début de ce thread).
Par contre je me demandais si matlab peut traiter en temps réel un signal audio entrant. ( faire générateur d’effet en gros )
73
Moi ce que je voulais faire c'était tester un truc sous Matlab avant de copier coller l'algorithme sur un programme pour Palm OS (ou sur un VST tant qu'on y est). Par contre je sais que Choc c'est déjà servi de Matlab dans une compo, moi je ne sais pas comment on peut s'en servir en temps réel, faut attendre qu'il pointe son nez :noidea:

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

74
Hello

pour le temps reel ca doit etre simulink de matlab qu'il faut utiliser (que j'ai jamais utilisé)

D'ailleur grosse question, si simulink marche bien pour l'audio on a avec matlab le plus gros synthé modulaire de tous les temps, je vais m'y pencher serieusement...On pourrait imaginer de developper une toolbox pour simulink qui integre des modules audio simples (filtre Lores, etc etc)...Faudrais aussi voir pour l'interfacage MIDI temps reel (ce que ne doit pas faire la toolbox midi toolbox), voir l'asio etc...

En gros, j'suis sur que si quelqu'un developpe la:

"Computer Music Toolbox" pour matlab/Simulink, ca va grave marcher...Apres, on pourrait egalement imaginer de l'interfacage avec les briques de Pure Data etc, un truc de ouf en fait...

Sinon, pour mes compos en matloub, c'etait du temps différé !
75
Je sais pas si matlab peut vraiment servir a faire du temps réel je posais la question a tout hasard mais le probleme c que ca bouffe bp de puissance ( le language interprété c pas le top au niveau optimisation des ressource)
lorsque j'avais fait quelques tests de traitements sur matlab c'était pour sa simplicité le but étant ensuite de passer sur un language de plus bas niveau mais qui demandera évidemment plus de connaissance. et je crois qu'a l'heure actuel, la limite n'est pas que celle de l'imagination des Programmeurs/chercheurs mais aussi de la puissance machines.

Je crois qu’on peut faire la même chose sur matlab et simulink le seul truc c que sous simulink t’a pas à écrire les équations elle sont « représentées » par des boites. Et à cet égard, des logiciels comme reaktor m’ont l’air très très bon. Il est d’ailleurs possible de faire de la programmation pour les compléter si on ne trouve pas son bonheur. Donc c’est vrai que matlab a un coté très « immédiat » puisque quand on génére une suite de nombre pour avoir une sinusoide ou n’importe quoi d’autre on sait exactement ce qu’on fait alors qu’avec une boite dans reaktor c’est peut etre moins sûr. Cela dit reaktor permet surement d’avancer plus vite. ( apres qu’est ce qu’on fait , de la musique ou de la physique/traitement du signal ?)
76
Oui t'as raison..

il existe toutefois la possibilité de pré compilé des script matlab pour que ca aille plus vite.

Sinon, en prog, reaktor c'est pas super top pour completer des modules, maxmsp et pure data ca va mais c'est du C.
Matlab possede un grand nombre de fonctions tres tres evolué alors qu'en C, tu va te farcir, la programmation de la fft (oui il existe des librairies) ou d'autres choses tres chiantes :clin:
77
Les traducteurs de matlab vers du c , t'as testé ?
(ou vers un language compréhensible par un PALM peut etre que ca existe)
78
Je pense que pour matlab + simulink ( que jne n'ai jamasi utilise non plus, ca doit couter bien cher par ailleurs), il faut que qqn se soit serieusement penche sur l'interfacage midi et cie... Matlab, de base, a un gros defaut pour le traitement du signal, au sens qu'il ne gere pas le temps explicitement. Un projet qui a l'air super interessant, et qui genere d'autres projets connexes interessant, c'est Chuck:

http://chuck.cs.princeton.edu/

Sinon, l'autre defaut de matlab, c'est que le langage est tres peu expressif et tres pauvre des que l'on sort de l'algebre lineaire, et du coup, je ne suis pas convaincu que ce soit le truc parfait pour faire du traitement du signal audio.

Je suis pas encore sur d'avoir trouve le truc ideal (et le temps reel ne m'interesse pas forcement dans le cadre de mon boulot), mais par exemple python + scipy est beaucoup plus souple:

https://www.scipy.org/ (je suis en train de porter mes codes maltlab de "machine learning" sous ce truc, et ca a l'air pas mal, sans grosse perte de perfs, de l'ordre de 30 %, sans avoir cherche a optimiser le truc).

Il y a aussi supercollider...
79

Citation : Matlab possede un grand nombre de fonctions tres tres evolué alors qu'en C, tu va te farcir, la programmation de la fft (oui il existe des librairies) ou d'autres choses tres chiantes


Moi maintenant j'abandonne définitivement matlab et je fais tout en VST en C++ :bave: Les trucs chiants, j'en ai déjà programmé un paquet, donc ça fait pas mal de code que je peux réutiliser tel quel dans mes futurs projets pour gagner du temps...

Pour le Palm par contre, tout ce qu'on peut faire c'est du offline, ou alors il faut avoir le séquenceur Bhajis Loops, qui marche avec des plug-ins qu'on peut programmer soi-même, mais dans tous les cas un Palm ça ne se pilote avec des machins externes (pas d'entrée micro, pas de traitement temps réel sans latence, pas d'entrée MIDI)

Intéressant tes liens Gabou...

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

80

Citation :
il existe toutefois la possibilité de pré compilé des script matlab pour que ca aille plus vite.



D'experience, ca marche pas tres bien des que tu sors des cas triviaux. J'ai jamais trop regarde non plus, faut dire.

Je pense que tout faire en C++, c'est un peu suicidaire, a moins d'etre un crack en programmation. C'est a la mode, mais je pense que ca tient du vrai quand meme: la programmation ditre "hybride" a du bon (ie programmer en langage "dynamique", et faire les trucs qui bouffent des ressources en C s'il le faut). Prototyper en pytho, par exemple, c'est quand meme plus sympa qu'en C; et apres. tu as des outils pour interfacer avec du C ou du C++ bien proprement (SWIG, boost::python) ou pour inliner du code C (pyrex). L'autre probleme du C, c'est la gestion des exceptions en flottant, c'est quand meme super penible quand tu essaies des algos un peu sophistiques, et c'est pas evident de faire ca proprement (division par 0, etc...)

Pour le temps reel, c'est plus difficile a faire, car les trucs qui vont avec le temps reel (determinisme de l'allocation memoire, etc...) sont souvent a l'encontre de la generalite d'un langage (ex, python ou java, ou le GC rend impossible le temps reel de maniere efficace).

En tout cas, c'est difficile de retourner a matlab apres avoir toucher a un "vrai"langage (ne serait-ce qu'avoir des listes, la possibilite d'ecrire des functions a l'interieur des scripts, et des functions avec keyword, c'est deja enorme)