Se connecter
Se connecter

ou
Créer un compte

ou

Infos sur DEA ATIAM

  • 701 réponses
  • 40 participants
  • 57 335 vues
  • 29 followers
Sujet de la discussion Infos sur DEA ATIAM
Salut tout le monde !
Ceci est mon premier message sur ces forums. Voilà, en fait je recherche des témoignages de gens qui auraient fait le DEA ATIAM (maintenant 2e année de Mastère), si possible en parallèle à une troisième année d'école d'ingé.
J'ai bien envie de faire ça l'année prochaine en même temps que ma dernière année à Centrale, mais ça m'a l'air un peu éreintant : environ 420h de cours d'après le site, alors que celui de l'année dernière ne disait que 240h.

Quelqu'un pourrait me donner son avis ? Est-ce que certains ont suivi cette formation il y a plusieurs années, et pourraient dire où ils en sont maintenant ?

Merci bcp !
Afficher le sujet de la discussion
471
Connais pas ton truc...

Sinon moi je suis définitivement un codeur aussi, j'utilise Matlab et Visual C++ point barre :mrg:

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

472

Citation : d'entre vous font du Max ou du PD en codant les fichiers textes



Oui, tu peux faire les fichiers texte. Y a aussi des script javascript qui te permettent de construire dynmaiquement l'interface (j'avais meme commencé a faire un truc de geek, sous matlab je fais une analyse reysnthese d'un son, et mtlab me construit directement le patch max qui va bien) . Tu peux egalement coder en langage compilé (C)
Au niveau de l'interface, quand je cree un patch toute mon architecture audio est dans des sous patch, etc, je laisse que l'IHM dans le patch principal
473

Citation : Connais pas ton truc...



Un petit coup d'oeil sur le wikipedia anglais et ça donne envie :
https://en.wikipedia.org/wiki/SuperCollider

C'est gratuit, sous Mac et Linux, une sorte de Max orienté programmation (objet et fonctionnelle).
474
OK, on a l'air de pouvoir faire à peu près la même chose avec Matlab :oops2:

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

475
Ca n'a rien a voir avec matlab, pourtant. Surtout en info, il faut se mefier du "je peux le faire sous tel langage, j'ai pas besoin de ca", parce que c'est vrai pour tout.

En tant que langague de programmation, matlab est franchement moyen, voire assez nul. La syntaxe est absconse, et des que l'on sort de ce pour quoi il a ete concu (algebre lineaire et tout ce qui en decoule en calcul numerique), on atteint tres vite ses limites. J'ai deja dit pourquoi ailleurs.

Typiquement, SC a plusieurs arguments techniques extremement interessants:

- dynamique, pour le prototypage, c'est extremement pratique.
- "vraie" programmation fonctionnelle avec entre autre support des "closures" (loin d'etre le cas avec matlab)
- concu pour le temps reel, entre autre au niveau du garbage collector. Ca, peu de langages le font (et pas matlab, du moins a la base).

Faire des trucs de composition algorithmique sous matlab, ce serait vite penible (pas de listes, par exemple).
476

Citation : En tant que langague de programmation, matlab est franchement moyen



'ets quand meme pratique les scirpt matlab. Pour tester un truc c'ets ultra rapidos, pas besoin de charger des librairies.
ar contre, clair que niveau perf, parfois ca vaut le coup de passer a un langage compilé qui est plus rapide a l'execution.

Citation : Faire des trucs de composition algorithmique sous matlab, ce serait vite penible (pas de listes, par exemple).



mais pas infessable :) j'ai deux compos que j'ai faites sous matlab. Franchemnt quand on est a laise avec un outil comme matlab, y a pas de soucis, on arrive a nos fins rapidement
477
Concernant Matlab, je pense que Gabou ne parlait pas forcément des perfs mais du langage lui-même : syntaxe, concepts. Perso, malgré les cours de LISP en ATIAM et par manque de pratique, je ne saurais pas tirer partie des possibilités fonctionnelles d'un langage dans l'immédiat (qu'est-ce qu'un closure ?), en revanche, la programmation objet en musique et en traitement du signal c'est parfaitement adapté.
Et on ne peut pas dire que Matlab et son "." soient orientés objet. Après c'est sûr qu'un gourou Matlab doit faire des choses super avec.
478

Citation :
'ets quand meme pratique les scirpt matlab. Pour tester un truc c'ets ultra rapidos, pas besoin de charger des librairies.



C'est sur que pour le prototypage rapide, ca marche bien, c'est pratique. Mais lorsque ton script commence a faire plusieurs centaines de lignes, avec pas mal de fonctions, pas mal de trucs deviennent tres chiants. Typiquement, il y a pas de 'namespace', donc on peut tres vite faire des erreurs vue la syntaxe speciale de matlab ( a(1) peut etre le premier element de a, ou la fonction a appelee avec l'argument 1... quand tu as plusieurs dizaines de variables, c'est penible).

Question perfs, matlab reste tres rapide, du moment que tu peut faire du code vectorise. Les outils de visualistation sont bons (en 2 d). Mais pour faire des trucs style compositition, je me demande comment tu peux faire sans liste ?

En fait, tant que tu fais ce pour quoi matlab est prevu, ca marche bien. En GUI, programmer un truc bateau, ca marche, mais tu peux pas creer tes propres widgets. Par exemple, j'ai toujours voulu avoir un editeur wave sous matlab, style mini soundforge, mais c'est impossible en matlab (a moins de passer par java). Lorsque tu veux faire une demo avec un programme en 'stand alone', t'es oblige d'acheter toute la suite compilateur, et c'est assez lourd. Enfin, il est quasiment impossible d'ecrire des extensions C un tant soit peu robustes si tu utilises des librairies externes, car il y a pas d'api pour controller l'allocation de memoire.

Citation :
Perso, malgré les cours de LISP en ATIAM et par manque de pratique, je ne saurais pas tirer partie des possibilités fonctionnelles d'un langage dans l'immédiat (qu'est-ce qu'un closure ?)



LISP a ATIAM, c'etait trop theorique pour moi. Depuis que je me suis mis a python, je me suis mis a quelques trucs basiques.

Par exemple, le coup du 'list comprehension', c'est vachement utile. Pour un algo de tracking, j'ai un liste d'objets representants des lignes frequentielles. Un simple [[i.start(), i.end()] for i in tracks] me donne une liste de couples debut/fin pour chaque ligne dans la liste tracks.

Citation :
qu'est-ce qu'un closure ?



C'est une fonction dont la definition fait reference a une variable en dehors de son contexte (je te donne une def vulgaire, la, je suis sur qu'il y a une maniere plus "propre" de definir ca). Concretement, ca veut dire que tu peux definir une fonction en utilisant un argument qui n'est pas evalue dans la fonction, et qui peut etre passe comme argument a une autre fonction.

L'exemple bateau, c'est ecrire un algorithme de tri sur des objets, en passant comme comme argument la fonction de comparaison (qui ne donne pas tous les avantages d'une closure). Un exemple un peu moins bateau: imagine que tu as une liste d'objets a, et que tu veux en selectionner que qqs selon un certain critere. Tu peux definir une closure en utilisant une variable a qui n'est pas connue lorsque tu definis la closure, et ensuite definir plusieurs fonctions utilisant la closure avec differentes valeurs de a

http://martinfowler.com/bliki/Closure.html
479
J'ai lu ton lien sur les closures en 2 sec et demi et j'ai l'impression que l'on peut obtenir le même genre de résultat avec les classes abstraites (en java par exemple)...
Est-ce que je me trompe ?
480
Euh, une class abstraite, en java, c'est comme en C++ ? Cad juste une classe dont l'implementation est incomplete ? Si c'est ca, ca n'a pas grand chose a voir. Il me semble qu'em java, tu peux emuler une closure en utilisant des classes anonymes; je pense que la facilite de syntaxe pour definire une closure est assez pertinent.

Le bonheur de python, c'est la syntaxe. C'est ce que les gens parfois un peu frustres venant de LISP ont du mal a comprendre, je trouve. T'as pas tout de LISP en python, et c'est ce qui permet une syntaxe plus claire (vs parentheses). Typiquement, qqch comme [i**2 for i in a] est super clair, tout le monde comprend ce que ca veut dire. Et a la in de la journee de 10h de prog, ca change par rapport a for (int i=0; i < a.size(); ++i) i *= i