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

Anonyme



Djardin

Java est effectivement plus intuitif et facile à coder (àmha). après, c'est un peu moins performant. Mais c'est le même fonctionnement sur toute machine avec une JVM, pas besoin de recoder spécifiquement.
mais bon c'est comme tout, faut faire des compromis, et trouver le meilleur langage pour telle situation.
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

Amok_

Toutes les appli web que j'ai vu en dotnet étaient plus lente qu'en java !
En appli autonome ou client lourd, java reste assez lent, ok, mais pas en serveur

LéoMoldo

Je pense que c'est en grande partie pour ça que les applis de musique et/ou de son sur iOS sur vachement plus réactives que sur Android, objective-C étant un langage compilé assez léger, alors que sur Android tout passe par une JVM "sauce google" par défaut.
Enfin je crois qu'il y a une API en C pour faire des trucs plus performants mais ça fait longtemps que je ne me suis pas penché sur la question.
D'ailleurs quelqu'un aurait il des livres, des articles ou des tutos à conseiller pour bien débuter en audionumérique? Il me faudrait quelque chose avec des bonnes bases théorique, et si possible des exemples pratiques en C ou C++.
Je ne voudrais pas spécialement faire des VSTs mais bricoler des ptits programmes standalone pour comprendre les bases. Pour windows le SDK de asio4all est il payant? Sinon sans doute que l'API de Jack sous Linux doit être sympa pour bricoler rapidement.
[ Dernière édition du message le 08/01/2013 à 14:41:43 ]

VvSurLeRiddim

Après bien sûr la compatibilité multi-plateformes est intéressante et le langage bien foutu, j'ai jamais dit le contraire.

Djardin

En audio numérique, je pense que le plus dur c'est pas la partie programmation, c'est plutôt la théorie de traitement du signal, de filtres, et tout. faut faire du matlab à balle ?
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

Zerosquare

Facilement compréhensible et très bon.
Pour l'audionumérique : http://crca.ucsd.edu/~msp/techniques.htm
Pas encore lu, mais il paraît que c'est très bien aussi.

LéoMoldo

J'avais déjà implémenté un algo de FFT sur Matlab pour un cours de Maths, mais c'était il y a longtemps et je me rappelle avoir déjà pas mal galéré à comprendre la théorie à l'époque. Il faut dire que j'étais en Erasmus et j'avais que des bouquins en allemand sous la main

Mais ça me dirait bien aussi de coder direct en C ou C++, pour pouvoir faire du temps réel et des ptites interfaces graphiques. Il faudrait peut être que je checke le framework Juce qui a l'air d'être pas mal utilisé pour l'audio. Ou alors que je me remette à Qt, j'ai jamais regardé ce qu'il était possible de faire en audio avec.

citron69

mais faut pas avoir peur d'y passer des nuits

Sinon, pour les transformées de fourier il y a de bonne bibliothèques en C++ et en java
http://www.fftw.org/ pour le C et jtransforms pour JAVA
[ Dernière édition du message le 08/01/2013 à 17:29:56 ]

Anonyme


citron69

Pour les plus audacieux, il y a un kit de dev (linux/ + ou - multiplateforme) spécialisé en audio sur le site du CCRMA qui reprend l'essentiel des outils expérimentaux de ce labo...
https://ccrma.stanford.edu/software/stk/
[ Dernière édition du message le 08/01/2013 à 17:34:27 ]

LéoMoldo

CSound c'est pareil, il y a des bindings pour plein de langages, ce qui me permettrait sans doute de développer des trucs sympas rapidement, mais je ne sais pas si c'est le mieux pour comprendre la théorie.
En fait il faudrait que je me plonge dans du code existant: j'avais téléchargé les sources d'un synthé libre et gratuit pour linux (codé en C++) mais je sentais qu'il me manquait de la théorie pour m'y repérer.
Edit : merci pour les liens Zerosquare et citron, j'avais zappé vos posts...

[ Dernière édition du message le 08/01/2013 à 17:57:29 ]

miles1981

Pour le C++, si on ne veut pas payer ni pirater, il faut se lever de bonne heure (je l’ai fait avec un MINGW pour les bibliothèques et GCC et un CODEBLOCKS) avant de sortir un premier VSTi.
Mais non, il y a la version express de Visual Studio pour ça

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

miles1981

Enfin je crois qu'il y a une API en C pour faire des trucs plus performants mais ça fait longtemps que je ne me suis pas penché sur la question.
Non, pas vraiment. C'est JNI et ça oblige à copier les données en entrée et en sortie.
D'ailleurs quelqu'un aurait il des livres, des articles ou des tutos à conseiller pour bien débuter en audionumérique? Il me faudrait quelque chose avec des bonnes bases théorique, et si possible des exemples pratiques en C ou C++.
Je ne voudrais pas spécialement faire des VSTs mais bricoler des ptits programmes standalone pour comprendre les bases. Pour windows le SDK de asio4all est il payant? Sinon sans doute que l'API de Jack sous Linux doit être sympa pour bricoler rapidement.
Difficile de trouve un ouvrage à ce niveau

Asio4All n'est qu'une implémentation du protocole ASIO sous Windows, ce n'est pas un SDK. C'est Steinberg qui le propose gratuitement, comme pour le SDK VST (mais attention, ce n'est pas la même chose !)
Audio Toolkit: http://www.audio-tk.com/

citron69

Le plus simple pour commencer est de faire un standalone qui travaille en différé sur des fichiers wav. L'avantage, c'est que tu auras des traces des traitements que tu auras fait (avec audacity en mode sonagramme par exemple).
Une autre option serait d'utiliser Reaper et d'écrire tes plugs en langage JS.
je pense que ce qu'il y a de mieux sur le web pour vraiment comprendre le traitement et la synthèse de signal audio ce sont les pages et les articles de Julius Orion Smith III du CCRMA (Stanford) : https://ccrma.stanford.edu/~jos/ (puis suivre liens sur les Online Books).
Faut causer Anglais et avoir des bases de maths et traitement du signal.
[ Dernière édition du message le 08/01/2013 à 21:25:12 ]

LéoMoldo

@citron: ouais en fait je pourrai commencer par des programmes en ligne de commande qui traitent des fichiers wav en différé, l'inconvénient par rapport à du Matlab c'est que je ne bénéficie par des outils de visualisations intégrés, mais l'avantage c'est que je peux réutiliser mon code par la suite pour des projets plus complexes si j'ai envie.
J'ai Reaper, j'utilise assez peu les plugins (en dehors de l'égalisation et du compresseur) mais c'est pas con, j'avais pas pensé à regarder le code des plugs JS. En plus on peut les modifier et tester très rapidement en plus non?
Pour la théorie je vais essayer de me chopper une bonne référence de bouquin sur le traitement du signal en français.

citron69

Je pense que vu ton approche, ça peut très bien te convenir.
Dans les cours de traitement du signal "typiques" qu'on trouve en Français, tu trouveras en général tout ce qu'il faut sur la transformée de Fourier et sur la théorie des filtres.
Par contre, peu de choses sur les effets spécifiques à l'audio, sur la distorsion, la reverb, les modulations. C'est mieux de se mettre à l'anglais quand même.
En cherchant bien, il y a quelques rares exceptions

Tiens, au fouillant sur le net je t'ai trouvé une copie du poly de Jean Laroche. Ca date de 95 mais c'est toujours bon !
https://perso.telecom-paristech.fr/~prado/enseignement/polys/tsaf.pdf
[ Dernière édition du message le 09/01/2013 à 14:22:37 ]

LéoMoldo


guitoo

http://faust.grame.fr/
C'est une algebre qui se compile en C avec des interface pour plusieurs formats (ladspa, Jack,...)
[ Dernière édition du message le 09/01/2013 à 17:26:46 ]

LéoMoldo

Ca a l'air d'être exactement ce que cherchais : un langage à la CSound mais conçu pour le temps réel sans besoin d'un environnement pour le faire tourner. Une fois qu'on a les classes en C++ on peut faire ce qu'on veut!
Merci guitoo, je pense que je vais me plonger la dedans, et ma fois pour la théorie je vais bien me débrouiller avec tous les cours dont vous m'avez envoyé les liens et mes vieux polycopiés de maths.
Enfin je vais quand même jeter un oeil aux plugins JS sous Reaper, ça m'intrigue de voir ce qu'il est possible de faire avec ça.

citron69

C'est peut être intéressant si ces environnements permettent de se focaliser sur les algos plutôt que sur les soucis vst (interface graphique et autres).

Anonyme


J-Luc

Citation :
Visual BASIC et .NET c'est bien pour les enfants...
Mais ouiiii... je sais tout, je connais toutes les applications du monde, je connais l'industrie et sa problématique de pérennité et surtout de maintenabilité mais je trolle parce que c'est ce qu'on m'a appris à l'école.
Je ne dirai qu'une chose : LOL.
Il y a deux moyens d’oublier les tracas de la vie : la musique et les chats.
Albert Schweitzer

citron69

Je suis désolé de te le dire, le basic est un langage d'apprentissage, tout comme le logo.
Le BASIC c'est ce que je faisais sur mon ZX81.
Le visual basic de Microsoft ce n'est pas réellement un basic à l'ancienne (il n'y a pas de numéros de lignes ni de goto), je te l'accorde, c'est plutôt un Delphi/Pascal mal fagoté déguisé en basic pour de basses raisons de droits. Mais bon, à la base, c'était un langage pédagogique, pas un langage professionnel.
Ce n'est pas un mal. C'est juste un fait.
Quant à .NET, toutes les personnes que je connais qui travaillent vraiment avec ont tendance à perdre la boule. Ils "bindent", ils "bindent"... et en terme de pérennité... heu... je n'ai pas d'avis, on jugera ça dans cinq ans.
Bon, c'est pas que ce genre de polémique ne m'intéresse pas, mais je préfère en revenir à l'audio.
Merci Patrick pour le conseil, j'ai essayé synthédit et c'est vrai que c'est pas mal, mais les exemples de synthés donnés avec ne sont pas très convaincants. Du coup je suis plus admiratif des gens qui l'utilisent pour faire des vstis plus que corrects !
J'ai finalement opté pour jvstwrapper et le java, sans interface graphique (enfin, avec l'interface par défaut du daw). C'est très imparfait en termes de performances mais pour expérimenter quelques idées (transwaves) ce sera suffisant.
[ Dernière édition du message le 29/01/2013 à 09:29:07 ]

.: Odon Quelconque :.


Et a propos de professionnalisme, en info de gestion on faisait il y a encore peu de belles applications transactionnelles temps réel, robustes, efficaces et facile à maintenir avec un langage très proche du BASIC, sur grands systèmes BULL. Et je parle d'un système national qui gérait plusieurs centaines de transactions par secondes.
Nuff said.

« What is full of redundancy or formula is predictably boring. What is free of all structure or discipline is randomly boring. In between lies art. » (Wendy Carlos)
[ Dernière édition du message le 30/01/2013 à 22:38:52 ]

citron69

A propos de machines virtuelles est ce que quelqu'un a des idées ou des astuces pour configurer la machine virtuelle java et l'optimiser pour les applis temps réel ? En particulier pour un VSTi sous jvstwrapper.
Dans le code j'évite de créer et de détruire des objets (sauf à l'init et en changement de preset) mais je ne sais pas si c'est suffisant pour éviter les spasmes intempestifs du garbage collector...
[ Dernière édition du message le 31/01/2013 à 10:13:36 ]
- < Liste des sujets
- Charte