Le pub des programmeurs
- 1 927 réponses
- 117 participants
- 131 679 vues
- 130 followers

Anonyme



cptn.io

Citation :
Un truc qui promet beaucoup, c'est qu'alors que pour les CPU, il va falloir programmer en parallele, les GPU ont un modele plus simple pour programmer du numerique (les GPU utilisant les multi core depuis bien plus longtemps que les processeurs). Et la puissance des GPU evolue beaucoup plus vite que les CPU, aussi.
Voilà c'est exact ce que je voulais dire sur la raison de prendre des GPU meme si c'est plus cher ;)
La nouvelle génération de cartes graphiques à architecture unifiée arrive pour la rentrée de septembre , avec la sortie du R600 dans 15 jours arrivera aussi la nouvelle carte de chez nvidia.
Citation : En tout cas, à moins d'une machine virtuelle qui aura de toute manière besoin de savoir d'une manière ou d'une autre ce qu'elle peut paralléliser - et tout en audio ne peut pas être parallélisé -, utiliser le GPU pour tous les VSTs est impossible
Exactement là est le problème. Mais je ne connais pas assez l'architecture des VST pour savoir comment différencier les différents process.
Il faudrait faire un classement de ce qui gagne à être parallélisé, et ce pourquoi c'est plutot un fardeau.
Ensuite il faudrait voir comment transposer le traitement sur les cartes graph.
Il faudrait également regarder si on peut détourner les cartes graphiques pour traiter les samples qui y a en mémoire, pke la plupart des ttes neuves ont la possibilité de garder en mémoire les scènes de jeu vidéo les plus utilisées et calculer uniquement ce qui change. Appliqué à EWQLSO par ex, ca serait puissant

Après avoir traité ca, il faudrait voir comment faire l'aiguillage des process en temps réel sans perte importante de perfs à expliquer à la carte qu'est ce qu'elle doit faire. Le point où on peut perdre le plus est de devoir envoyer vers la carte, traduire, et faire revenir l'info.
cptn.io

miles1981

Pour ajouter la partie rester en mémoire, il faudrait un changement complet de standard de plug-in - genre VST4 - et ça n'a d'intérêt que si les GPU ont un intérêt. Pour l'instant, c'est compliqué d'utiliser ça pour un développeur standard, et la précision n'est pas encore au rendez-vous. Ne pas oublier qu'on utilise autre chose que des additions/multiplications dans certains effets aussi, ça limite encore plus l'utilité d'un GPU.
Audio Toolkit: http://www.audio-tk.com/

Pov Gabou

http://www.st.cs.uni-sb.de/edu/seminare/2005/advanced-fp/docs/sweeny.pdf

bigbill


Vers la fin, quand il dit:
Citation : If we are to program these devices productively, you are our only hope!
Est-ce que tu sais à qui il s'adresse? A des développeurs d'Haskell?

Pov Gabou

Perso, je regrette clairement avoir appris le C en premier aussi. Je pense que c'est un des pires langages a apprendre en premier. C'est clairement utile, voire necessaire dans pas mal de cas, puis c'est inherent a Unix, qui reste quand meme la reference en OS.
Le pdf venant d'une universite, on pourrait penser qu'il s'adresse a des membres d'un labo en info.

miles1981

Le truc, c'est que ces slides font porter le gros poids sur le compilateur qui lui passe du fonctionnel - ce qu'il aimerait, en gros -, à de l'impératif en sous-jacent, et donc toutes les vérifications sont faites par l'interpréteur/compilateur.
D'ailleurs, il y a certains points dans la diapo qui me font penser qu'ils devraient penser à essayer Python :D
Audio Toolkit: http://www.audio-tk.com/

Pov Gabou


piperman

J'ai passé déjà pas mal de temps à chercher et je ne trouve rien qui couvre mon besoin.
Je cherche à developper un petit plug VST (dans un premier temps; peut être AU pour macosx dans un deuxième temps).
juste un petit synthé qui pioche des sons sur la becane pour les rejouer sous des impulsions midi.
J'aurais bien aimé trouver un tuto pour démarrer avec qq petits example de code c++ et visual mais je suis resté bredouille; je suis un peu perplexe devant la multitude des architectures disponibles (csound, portaudio, synthmaker, juce...pfff) et devant le peu de forum ou de retour d'infos sur les usages de ces couches.
Pareil pour l'aspect ihm (Wxwidgets, asseca, ...)
Si quelqu'un peut éclairer ma lanterne sur une façon simple de démarrer
merci

nonconforme

Sinon tu as juce, Wolfen a torché un vst assez rapidement avec. Et l'ihm est intégrée.
Affiliation : Dirigeant Fondateur d'Orosys - Two notes Audio Engineering

_john.

Hop, un lien pour aider: http://www.rawmaterialsoftware.com/juce/

batman14

Par contre faut compiler soit même la dll de Juce avec le sdk windows. Disons que la mise en route du tout peut prendre avec les téléchargements plusieurs heures.
En tout cas pour moi, j'ai mis deux jours avant de compiler mon premier VST...
J'avais pas l'habitude de développer sous windows mais vu le nombre de mails que j'ai reçu sur Juce et la mise en place de l'environnement de dev, je pense que je suis pas le seul à m'etre battu avec visual studio et les linkages...
http://soundcloud.com/bat-manson

Pov Gabou

Tu ajoutes a ca un environnement extremement peu flexible en ligne de commande, avec la philosophie typique windows de fournir 5000 outils pour faire la meme chose plus ou moins, et ca rend le truc extremement complexe pour sur. C'est extremement difficile de faire quoi que ce soit de portable avec l'environnement de dev windows.
La, je suis particulierement enerve parce que l'implementation de open/close est totalement bugge sous windows, et leurs fonctions CreateFile/OpenFile sont d'une complexite effarante. Pour ouvrir un fichier sous windows, il faut faire
hFile = CreateFile(TEXT("myfile.txt"), // file to open
GENERIC_READ, // open for reading
FILE_SHARE_READ, // share for reading
NULL, // default security
OPEN_EXISTING, // existing file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
Et apres on essaye de nous faire croire que windows n'est pas fondamentalement condamne a etre rempli de trous de securite... Tant que ce genre de fonctions seront utilisables...

batman14

Disons que le sdk VST de Steinberg (nécessaire pour Juce de toute façon) a moins de dépendances que Juce, et qu'on n'a pas à rapatrier tout le .net.
A priori, cela semble plus facile de compiler le VST sdk que Juce.
CreateFile ??? arf, c'est un truc de malade cette syntaxe. Faire un createFile, avec comme flag OPEN_EXISTING, sémantiquement c'est quand meme super boiteux.
Sur l'ouverture en lecture, que vient foutre la sécurité (à NULL d'ailleurs) ?
(je vais me documenter, c'est étrange tout de même). Enfin bref...
http://soundcloud.com/bat-manson

batman14

Citation :
pSecurityAttributes :
[in] Ignored; set to NULL.
Ben c'est cool, passer un flag tout le temps qui sert à rien, que du plaisir...
Et sur le dernier flag aussi :
Citation :
hTemplateFile
[in] Ignored;
Ouais, super, joli travail messieurs. Je reconnais que c'est pas la joie, et que tu dois passer ta vie dans les documentations...
Bon courage !
http://soundcloud.com/bat-manson

Pov Gabou


miles1981

Audio Toolkit: http://www.audio-tk.com/

nonconforme

Mais je ne vois pas ce que ça aurait de gênant d'utiliser QT et VST ?
Affiliation : Dirigeant Fondateur d'Orosys - Two notes Audio Engineering

miles1981


Audio Toolkit: http://www.audio-tk.com/

nonconforme


Affiliation : Dirigeant Fondateur d'Orosys - Two notes Audio Engineering

Pov Gabou


batman14

Après, tu prends ce que tu veux pour faire la GUI ou le moteur audio...(modulo le bon format de sortie audio pour le sequenceur).
VST est un format de plugin relativement simple. Le seul problème est arf...le midi. Faudrait ptet passer à autre chose un de ces quatres, genre OSC non ?
Hors sujet :
ça y est j'ai enfin compilé mon premier plugin firefox embarquant la lib fmod...arf, ce fut horrible. 4 heures pour compiler l'exemple, 3 pour y ajouter fmod correctement..et l'impression à la fin que tout cela aurait pu etre fait en dix minutes avec une doc respectable et des exemples mis à jour.
Y'a 3 articles du forum de mozilla qui explique pas à pas comment modifier les sources pour compiler les exemples. Ils auraient pas pu changer les fichiers du svn, non ? En plus l'aspect cross plateform tellement cool mon c*l. Les fichiers sources sont à modifier en fonction de la plateforme utilisée...
http://soundcloud.com/bat-manson

miles1981

Audio Toolkit: http://www.audio-tk.com/

batman14

Ensuite pourquoi Qt quand tu as Juce qui permet l'export en VST, audio unit et Ladspa sans rien changer d'autre qu'un include, qui est de plus cross plateform ?
C'est vrai que les VSTs sont gros en sortie (genre 3 Mo), surement du à une mauvaise option de compilation de ma part...
Les fonctions de UI sont en tout cas très simple et puissantes, te permettent de faire le state of the art of the GUI.
Après je ne connais que très peu Qt, et vraiment pas assez pour connaitre ses qualités vis à vis de Juce. J'aime pas faire des GUI de toute façon.
Il y a quelques bons synthés commerciaux qui utilise Juce, comme les derniers de chez image line (toxic III et poizone si je ne m'abuse, le reste étant du delphi !). C'est un gage de qualité il me semble, au vu de la qualité générale de leur interface.
Et puis tu as en plus toute une batterie de fonctions pour interpréter le midi, des choses comme des fonctions freqToMidi, isNoteOn, getVelocity...
Le genre de chose qu'on peut attendre d'un framework pour faire des VST en résumé.
http://soundcloud.com/bat-manson

Wolfen

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

zieQ

- < Liste des sujets
- Charte