Sujet Le pub des programmeurs
- 1 925 réponses
- 117 participants
- 119 781 vues
- 130 followers
![Anonyme Anonyme](https://static.audiofanzine.com/img/user/avatars/generic.png?w=40&h=40&fm=pjpg&s=0d6213e9da38ef4cab8d0bdd3999c731)
Anonyme
521410
![Ce·tte membre n’existe plus Ce·tte membre n’existe plus](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/anonymus.png)
Premier post
1 Posté le 25/08/2005 à 17:21:03Le pub des programmeurs
Salut
y a des programeurs sur AF si oui vous bossez sous quoi ?
![:coucou:](https://img.audiofanzine.com/images/audiofanzine/interface/smileys/icon_coucou.gif)
![J-Luc J-Luc](https://img.audiofanzine.com/img/user/avatar/1/2/12837.jpeg?w=40&h=40&fm=pjpg&s=6352890def7c0a446d381b292ca556c6)
J-Luc
6110
![6110 posts au compteur 6110 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/moderator_thematic.png)
Modérateur·trice thématique
161 Posté le 21/08/2006 à 10:24:43
Buffer circulaire :
https://en.wikipedia.org/wiki/Circular_buffer
Très utilisé aussi dans l'industrie dans les process d'assemblage (on suit les produits dans une machine à l'aide d'un buffer circulaire de structures).
https://en.wikipedia.org/wiki/Circular_buffer
Très utilisé aussi dans l'industrie dans les process d'assemblage (on suit les produits dans une machine à l'aide d'un buffer circulaire de structures).
Il y a deux moyens d’oublier les tracas de la vie : la musique et les chats.
Albert Schweitzer
![Pov Gabou Pov Gabou](https://static.audiofanzine.com/img/user/avatars/generic.png?w=40&h=40&fm=pjpg&s=0d6213e9da38ef4cab8d0bdd3999c731)
Pov Gabou
19553
![19553 posts au compteur 19553 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/9.png)
Drogué·e à l’AFéine
162 Posté le 21/08/2006 à 11:55:40
> Wolfen, j'ai un exemple la (en python, mais meme si tu connais pas, ce devrait etre facile a lire, un peu comme du pseudo code):
http://www.ar.media.kyoto-u.ac.jp/members/david/ring.zip
Si t'as jamais utilise python, tu peux installer la version (windows): https://www.python.org/ftp/python/2.4.3/python-2.4.3.msi
Il y a deux fichiers: ringbuff.py qui implemente une classe ring buffer, que tu peux oublier au depart (l'implementation suit le truc de base explique sur wikipedia avec les puissances de 2), et le fichier fakeengine.py qui a 3 classes, en gros:
- BlockAlg: une classe toute con qui ne peut calculer que n samples en entree et ressort n samples en sortie, avec n fixe.
- Plugin: une classe un peu moins con, qui utilise BlockAlg pour faire le calcul, mais dont la function process peut prendre un nombre n de samples variables entre chaque appel (exactement comme la fonction process de VST, par exemple, avec la variable nframes). C'est elle qui fait l'adaptation nombre variables de sample / nombre fixe pour BlockAlg.
- Engine: modelise le moteur audio, cad ici ne fait qu'instancier un plugin, et fournit a un objet plugin des blocs de taille variable.
Je crois que la latence est gardee au minimum donnee les contraintes (taille fixe pour l'algo, taille maximale d'un bloc de la part du moteur audio).
La classe BlockAlg ne fait rien (je multiplie l'entree par -1 pour facilement regarder les eventuels pbs d'alignement avec en entree la suite 0, 1, 2....). par contre, il y a besoin de modifications si l'algo ne sort pas le meme nombre de sampels qu'en entree.
J'exige 10 % des parts pour le premier produit torpedo![:diable:](https://img.audiofanzine.com/images/audiofanzine/interface/smileys/icon_diablotin.gif)
http://www.ar.media.kyoto-u.ac.jp/members/david/ring.zip
Si t'as jamais utilise python, tu peux installer la version (windows): https://www.python.org/ftp/python/2.4.3/python-2.4.3.msi
Il y a deux fichiers: ringbuff.py qui implemente une classe ring buffer, que tu peux oublier au depart (l'implementation suit le truc de base explique sur wikipedia avec les puissances de 2), et le fichier fakeengine.py qui a 3 classes, en gros:
- BlockAlg: une classe toute con qui ne peut calculer que n samples en entree et ressort n samples en sortie, avec n fixe.
- Plugin: une classe un peu moins con, qui utilise BlockAlg pour faire le calcul, mais dont la function process peut prendre un nombre n de samples variables entre chaque appel (exactement comme la fonction process de VST, par exemple, avec la variable nframes). C'est elle qui fait l'adaptation nombre variables de sample / nombre fixe pour BlockAlg.
- Engine: modelise le moteur audio, cad ici ne fait qu'instancier un plugin, et fournit a un objet plugin des blocs de taille variable.
Je crois que la latence est gardee au minimum donnee les contraintes (taille fixe pour l'algo, taille maximale d'un bloc de la part du moteur audio).
La classe BlockAlg ne fait rien (je multiplie l'entree par -1 pour facilement regarder les eventuels pbs d'alignement avec en entree la suite 0, 1, 2....). par contre, il y a besoin de modifications si l'algo ne sort pas le meme nombre de sampels qu'en entree.
J'exige 10 % des parts pour le premier produit torpedo
![:diable:](https://img.audiofanzine.com/images/audiofanzine/interface/smileys/icon_diablotin.gif)
![Wolfen Wolfen](https://img.audiofanzine.com/img/user/avatar/2/0/2069.png?w=40&h=40&fm=pjpg&s=5372bf4b3f29517321f2d20787cffd3c)
Wolfen
13789
![13789 posts au compteur 13789 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/editor.png)
Rédacteur·trice
163 Posté le 21/08/2006 à 12:07:04
Merci les enfants ![:mrg:](https://img.audiofanzine.com/images/audiofanzine/interface/smileys/icon_mrgreen.gif)
![:mrg:](https://img.audiofanzine.com/images/audiofanzine/interface/smileys/icon_mrgreen.gif)
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape
![Pov Gabou Pov Gabou](https://static.audiofanzine.com/img/user/avatars/generic.png?w=40&h=40&fm=pjpg&s=0d6213e9da38ef4cab8d0bdd3999c731)
Pov Gabou
19553
![19553 posts au compteur 19553 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/9.png)
Drogué·e à l’AFéine
164 Posté le 21/08/2006 à 12:23:07
Entre guillements, pour le prototypages de certains trucs, je te conseille vraiment python. Avec les derniers avancements numpy+scipy, ca permet de faire des trucs comme matlab, mais avec un vrai langage, gratuitement.
La, je suis en train de decouvrir ctypes, qui permet d'ecrire des wrapper de librairies C entierement ecrits en python. Quand tu vois la merde pour ecrire des extensions C sous matlab, c'est quand meme plus sympathique.
La, je suis en train de decouvrir ctypes, qui permet d'ecrire des wrapper de librairies C entierement ecrits en python. Quand tu vois la merde pour ecrire des extensions C sous matlab, c'est quand meme plus sympathique.
![Wolfen Wolfen](https://img.audiofanzine.com/img/user/avatar/2/0/2069.png?w=40&h=40&fm=pjpg&s=5372bf4b3f29517321f2d20787cffd3c)
Wolfen
13789
![13789 posts au compteur 13789 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/editor.png)
Rédacteur·trice
165 Posté le 21/08/2006 à 12:27:49
Va falloir que je teste, avec tout le bien que tu m'en dis ![:clin:](https://img.audiofanzine.com/images/audiofanzine/interface/smileys/icon_wink.gif)
![:clin:](https://img.audiofanzine.com/images/audiofanzine/interface/smileys/icon_wink.gif)
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape
![zieQ zieQ](https://static.audiofanzine.com/img/user/avatars/generic.png?w=40&h=40&fm=pjpg&s=0d6213e9da38ef4cab8d0bdd3999c731)
zieQ
466
![466 posts au compteur 466 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/4.png)
Posteur·euse AFfamé·e
166 Posté le 21/08/2006 à 14:17:31
Et euh, question bête, ça existe un wrappeur vst pour python ? ;)
![Pov Gabou Pov Gabou](https://static.audiofanzine.com/img/user/avatars/generic.png?w=40&h=40&fm=pjpg&s=0d6213e9da38ef4cab8d0bdd3999c731)
Pov Gabou
19553
![19553 posts au compteur 19553 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/9.png)
Drogué·e à l’AFéine
167 Posté le 21/08/2006 à 14:51:15
Je sais pas. Le pb de VST, c'est que c'est sous specifie, et que la license est stupide (interdiction de redistribution). Donc typiquement, si tu veux faire un wrapper VST, tu peux pas distribuer les source en entier, il faut que chaque gars qui l'utilise aille telecharger les headers VST chez steinberg. Du coup, ca interrresse personne.
![zieQ zieQ](https://static.audiofanzine.com/img/user/avatars/generic.png?w=40&h=40&fm=pjpg&s=0d6213e9da38ef4cab8d0bdd3999c731)
zieQ
466
![466 posts au compteur 466 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/4.png)
Posteur·euse AFfamé·e
168 Posté le 21/08/2006 à 15:08:07
Je connais bien ces problèmes avec les VSTs mais il n'existe pas vraiment d'alternative non plus. Du coup, le fait de prototyper en python vient de perdre beaucoup d'intérêt d'un coup ;)
![Pov Gabou Pov Gabou](https://static.audiofanzine.com/img/user/avatars/generic.png?w=40&h=40&fm=pjpg&s=0d6213e9da38ef4cab8d0bdd3999c731)
Pov Gabou
19553
![19553 posts au compteur 19553 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/9.png)
Drogué·e à l’AFéine
169 Posté le 21/08/2006 à 15:25:27
Disons que ca depend de quoi tu parles. Pour VST, c'est vrai qu'il y a pas beaucoup d'alternatives: en gros, AU sous mac OS X, et peut etre dssi sous linux (mais le fonctionnement est assez different sous linux, a cause du probleme de toolkit notament). Donc pour un plug dans sa totalite (moteur audio + gui), c'est pas interessant python, Ok (tu peux toujours ecrire le truc toi meme remarque).
Mais pour le moteur audio lui meme, c'est pas propre a VST. Si tu programmes correctement, le moteur audio est totalement separe de la GUI, et idealement des specs VST. Et la, pour tout ce qui est dsp, tu peux le faire sous python. Typiquement, tu veux tester un filtre, verifier sa reponse frequentielle graphiquement, en C, ca peut etre penible. Sous python, c'est trivial.
J'avais commence a m'interesser a la prog avec l'audio il y a maintenant 4-5 ans, et evidemment, vu mon niveau a l'epoque, je savais rien faire, et tester un truc comme un ring buffer + conditions aux bords en C... La, en python, ca a ete fait en une heure a tout casser, avec 150 lignes de code.
Je suis bien conscient du buzz autour des langages dits dynamiques, mais je trouve que pour python, c'est assez bien merite, car il y a un bon compromis syntaxe claire / syntaxe puissante / bonne librairie standard / facilite d'extension a partir de langages compiles / bien supporte. Perso, je m'y suis interesse pour faire un truc un peu trop complexe pour awk/sed, puis apres j'en ai profite pour me mettre a numpy/scipy (https://www.scipy.org/), et je trouve que c'est super efficace pour pas mal de taches.
Mais pour le moteur audio lui meme, c'est pas propre a VST. Si tu programmes correctement, le moteur audio est totalement separe de la GUI, et idealement des specs VST. Et la, pour tout ce qui est dsp, tu peux le faire sous python. Typiquement, tu veux tester un filtre, verifier sa reponse frequentielle graphiquement, en C, ca peut etre penible. Sous python, c'est trivial.
J'avais commence a m'interesser a la prog avec l'audio il y a maintenant 4-5 ans, et evidemment, vu mon niveau a l'epoque, je savais rien faire, et tester un truc comme un ring buffer + conditions aux bords en C... La, en python, ca a ete fait en une heure a tout casser, avec 150 lignes de code.
Je suis bien conscient du buzz autour des langages dits dynamiques, mais je trouve que pour python, c'est assez bien merite, car il y a un bon compromis syntaxe claire / syntaxe puissante / bonne librairie standard / facilite d'extension a partir de langages compiles / bien supporte. Perso, je m'y suis interesse pour faire un truc un peu trop complexe pour awk/sed, puis apres j'en ai profite pour me mettre a numpy/scipy (https://www.scipy.org/), et je trouve que c'est super efficace pour pas mal de taches.
![Dr Pouet Dr Pouet](https://img.audiofanzine.com/img/user/avatar/4/6/46282.jpg?w=40&h=40&fm=pjpg&s=087bfb4e3bbbb9f616120f9aa369c3b4)
Dr Pouet
52156
![52156 posts au compteur 52156 posts au compteur](https://static.audiofanzine.com/images/audiofanzine/forum/avatars/new/honorific.png)
Membre d’honneur
170 Posté le 21/08/2006 à 20:38:29
Clair que une fois que tu as goûté à Perl ou Python, tu te sers plus de awk sed et autres shell scripts...
Python est également réputé pour ses bonnes capacités d'interfaçage avec le C et C++. C'est d'ailleurs sûrement l'une des raisons qui lui ont permis de grignoter Perl, lequel est moins bien (je trouve que le coup de l'indentation en Python est un super choix) mais arrivé avant (et donc initialement beaucoup plus populaire)...
Python est également réputé pour ses bonnes capacités d'interfaçage avec le C et C++. C'est d'ailleurs sûrement l'une des raisons qui lui ont permis de grignoter Perl, lequel est moins bien (je trouve que le coup de l'indentation en Python est un super choix) mais arrivé avant (et donc initialement beaucoup plus populaire)...
- < Liste des sujets
- Charte