 Salut! Donc, d'entrée de jeu, juste préciser un peu d'où je viens. Je fais de la musique avant tout, et quand je suis arrivé à l'Université de Montréal, c'était en musique, en composition électro-acoustique, et je faisais pas de côtes du tout. Et je me suis mis en enfer, principalement avec des langages de programmation musicale, donc Max MSP, C-Sound, un peu de Super Collider, et est venu un temps où il y a un projet qui s'est développé, que vous avez sûrement entendu parler, qui est l'OLPC, donc One Laptop for Child, projet du MIT, donc petite machine qui était destinée aux enfants dans les pays en voie de développement, et dont tout le système était construit en piton, et par une heureuse hasard des choses, le projet de développer les applications musicales est atterri dans notre département, donc avec Nathaniel, on était dans l'équipe qui avons développé la suite de logiciels TAMTAM, et qui étaient toutes écrites en piton. Et donc ça a été notre baptême de feu, on a appris le piton à la dur, pas mal, et on a fini par développer une suite de quatre logiciels audio qui utilisait C-Sound par en dessous, donc C-Sound offrait tous les services audio de la machine. Et dans le même temps, donc, il est né l'idée de se donner plus de pouvoir en piton, donc un environnement de scripting piton pour générer du son, ce qui éventuellement a donné une essence à Oum, qui utilisait encore C-Sound par en dessous, et qui comportait diverses lacunes qui, moi, me dérangeaient. Et finalement, donc, on en arrive au développement de PAIO, qui est un module piton, donc, pure et dur, donc le module était créancé, et sert à gérer donc peu importe quel processus audio que vous pouvez vouloir faire. Donc, je passe rapidement donc sur dépendance et compagnie, donc je crois que vous êtes probablement tous ferrés pour compiler des logiciels. Donc, il y a très peu de dépendance, en fait, évidemment, ça prend un piton quelconque entre 2.5 et 2.7. Si vous voulez les interfaces graphiques qui viennent avec PAIO, ça prend WX piton, et sinon quelques librairies audio, donc port audio, port midi, lib sample, lib blow, si vous avez tout ça sur votre machine, vous pouvez compiler PAIO simplement avec le traditionnel piton 7.p install. Il y a quelques petits flags, et je tiens à le préciser, ça va régler peut-être une confusion qui arrive régulièrement. Donc, il y a un flag qui dit use double, qui est la version 64 bits, et quand on parle de 64 bits ici, on parle du calcul des échantillons, et non de l'architecture. Donc, PAIO roule sur un piton 32 bits, mais on peut lui demander de calculer des échantillons en 64 bits, ce qui offre le meilleur qualité tout simplement. Donc, c'est libre à vous d'utiliser un ou l'autre, et donc use core audio si vous voulez le support core audio, use jack si vous voulez le support jack, et ainsi de suite. Donc, je vais passer rapidement là-dessus. Vous pouvez toujours prendre les installeurs binaire, particulièrement si vous êtes sur Windows. Dans les sources de PAIO, il y a un fichier qui fait 200 000 lignes qui explique ma routine pour compiler PAIO sur Windows, et ça, ça marche sur ma machine. Je garantis absolument pas que ça va marcher sur la vôtre. Donc, les installeurs binaire dans ce cas-ci sont peut-être plus fiables. OS 10 et Linux, ça compile très bien, très simplement. Il y a, dans les ressources, vous avez la documentation. Donc, PAIO DEV, Manuel DEV, c'est la documentation courante donc pour les sources actuelles. Et déjà, on peut voir ici, il y a un paquet d'objets. Donc, je crois qu'il y a 150, 160 objets disponibles qui font chacun, qui gèrent un processus audio quelconque. Et ensuite, donc, il y a la liste de discussions si vous êtes intéressé à participer. Donc, PAIO DISCOS, qui commence à vivre un petit peu. Donc, pour l'instant, c'est un environnement qui est surtout connu dans mon petit monde, dans mon sous-sol à l'université de Montréal. Donc, avec des musiciens. Ceci étant dit, si je peux aller chercher des amis qui ont une expérience autre de la programmation, vous êtes tout à fait les bienvenus. Alors, je vous laisse jeter un œil à tout ça par vous-même. C'est pas ici que je veux venir. Alors, c'est extrêmement simple à utiliser. Première des choses, ça nous prend la librairie. Donc, la version 32 bits, la version 64 bits, vivent côte à côte sans problème. Donc, vous importez PAIO ou PAIO 64, tout dépendant de ce que vous voulez utiliser. Alors, disons qu'on reste en 32 bits. La première des choses, la première particularité d'un module de son, c'est que le son défile dans le temps. Donc, on veut que notre système reste vivant. On veut que l'interprétaire reste vivant pour toute la durée de notre pièce ou peu importe du processus qu'on exécute. Si on fonctionne dans le terminal, il n'y a pas de problème. Donc, l'interprétaire est vivant. Ceci étant dit, si vous avez un programme qui fait 20 000 lignes de code, il n'y a pas de chance que vous leur tapiez chaque fois dans le terminal. Donc, pour faire des petits tests, ça marche pour faire des tests un peu plus costauds. Pour monter des projets plus costauds, on va voir que ça risque d'être un problème puisqu'un capitain va terminer, il quitte et retourne ce qu'il y a à retourner. Donc, on va voir que ça prend des trucs quelqu'un pour maintenir l'interprétaire vivant. J'y reviens, éventuellement. Sinon, le paillot fonctionne. S'il y en a parmi vous qui connaissent Super Collider, il y a beaucoup de paradigmes qui se recoupent. Donc, première des choses, ça prend un serveur. Donc, ça prend un serveur audio qui se charge de la communication à les retours avec la carte de son. Qui se charge du processing des échantillons un après l'autre dans ce qu'on appelle un callback. Donc, quand on démarre le serveur, il y a une loop qui part et qui, ça range pour calculer les échantillons à une vitesse acceptable pour la carte de son. Et donc, première des choses, ça prend absolument cet objet-là en premier. Donc, un serveur. Le serveur a toutes sortes de paramètres qu'on peut gérer que je vous laisse aller fouiller dans le manuel, que ce soit pour déterminer les inputs. Donc, la carte de son, en fait, par laquelle on veut passer. Driver, fréquence d'échantillonnage. Oui, soit dit en passant. En général, je parle à des musiciens qui connaissent Kedal en programmation. Donc, si j'utilise des termes audio qui vous laisse un peu dans les brumes, n'hésitez pas à m'arrêter question que tout le monde soit sur le même pied tout le long. Alors, on a créé un serveur et il y a deux méthodes archi-importantes. Premièrement, la méthode boot. Donc, on doit booter le serveur et là, c'est le moment où le serveur se connecte effectivement sur la carte de son, prépare son callback, combien d'échantillons par buffer est compagné. Et si on avait à choisir la carte de son, il fallait le faire avant. Donc pour l'instant, disons que je suis heureux avec tout ça. Alors, je boot mon serveur et il n'est pas encore parti. Il n'est pas encore parti. C'est la méthode start qui va démarrer donc le calcul des échantillons. Mais à partir du moment où j'ai un serveur qui est booté, je peux commencer à créer des objets, des objets audio et à les manipuler. Alors, l'exemple classique, on va se créer un sinus. Un sinus. Et si je le déclare comme ça ici et que je démarre mon serveur, on n'entend rien. Parce que, par défaut, il y a une méthode qui s'appelle play qui est associée à tous les paillots object. Donc, en fait, tous les objets pratiquement qu'on utilise sont des enfants du paillot object. Et donc, la méthode play démarrera le calcul. Alors, mon sinus est calculé, mais il n'est pas envoyé aux parleurs. Je dois appeler la méthode out pour avoir un retour de son. Et là, Amélie Hertz va s'arracher les oreilles. Et donc, mon sinus va jouer jusqu'à ce que je lui envoie la méthode stop. Donc, play out et stop, les trois méthodes qu'on utilise le plus souvent entre les sorties de nos signaux. Autre méthode relativement sympathique. Je crois que je vais revenir tantôt. Disons que je relance mon bidule. Je peux m'en créer un autre avec une fréquence différente, disons 800 Hz. 200 Hz? Deux agréables. Et donc, où je voulais en venir, c'est que dans la méthode out, on peut sélectionner le haut-parleur. Donc, on est à droite. Et pour faire plaisir à notre ami, on va dire à notre premier sinus de jouer à 300 Hz. Alors, on peut faire, ici, dans le cas de un sinus, on aurait fréquence basse, amplitude qu'on pourrait manipuler. On peut connecter, évidemment, les objets, les uns avec les autres. Forcément, il faut s'assurer que c'est légal. Donc, si on prend, par exemple, le sinus, la page de manuel du sinus. Donc, il y a les types acceptés. Voilà, merci. Donc, il y a les types acceptés par paramètres. Et dès que vous avez float ou pio-object, vous avez le droit de contrôler en audio le paramètre en question. Ce qui veut dire que, dans le cas, ici, par exemple, de mon sinus à 300 Hz, je pourrais manquer un autre avec une fréquence beaucoup plus lente. Disons, un Hz. Et en jouant avec les paramètres mûléades, donc, l'amplitude du sinus et un offset qu'on lui donne, je pourrais déterminer un ambitus quelconque, disons, mûle de 100 à 200 Hz et assigner, donc, à ma fréquence, LF, ici. Et donc, exemple, tout ce qui est plus banal, mais à partir de là, on a déjà tout ce qu'il faut pour construire des chaînes de traitement et des chaînes de traitement assez évoluées. Donc, on va arrêter tout ça en même temps. Alors, à partir d'ici, il y a un concept en audio qui s'appelle list expansion qui est implémenté pour tous les objets paillots et qui est extrêmement puissant. Donc, si je voulais générer, par exemple, un gros chorus d'ossiateurs au lieu d'en avoir un seul, je pourrais, par exemple, importer le module random qu'on a vu tantôt et me faire un autre sinus ou cette fois-ci, au lieu de donner une fréquence, je pourrais lui donner un ambitus quelconque, disons, de 200 à 230 en hertz et dire que j'en veux que j'en veux 50. Évidemment, n'oubliez pas de baisser l'amplitude si vous faites quelque chose du genre. Et donc, ici, mon objet, la variable C, contient maintenant 50 sinus et quand je fais, oui. Eh oh. Voilà. Et donc, j'ai baissé l'amplitude un peu trop. Et donc, maintenant ici, j'ai 50 sinus que je pourrais réorganiser et disons que je donne beaucoup plus de 100 à 800 et si tu es donc exemple encore une fois un peu banal mais qui démontre déjà à quelle vitesse on peut créer beaucoup de matière rapidement. Il y a le paillot object qui contient pratiquement tous les objets paillots qui calculent du son. Et là, il y a un autre classe par exemple qui est le paillotable object dans lequel on peut placer soit des sons en mémoire, des formes d'ondes quelconques ou même du data pour le réutiliser plus tard. Et on peut utiliser, en fait, j'aimerais ici comment je peux faire. Voilà. Et donc, on peut créer par exemple, si je me fais une table ici avec un objet qui s'appelle Arm Table je lui donne une liste harmonique quelconque donc une forme d'ondes plus complexe qu'un sinus, finalement comme ça ici. Donc dans T et d'ailleurs on pourrait même la visualiser nos servers si je fais ça ici est-ce que ça marche? Oui. Donc maintenant, au lieu d'un sinus et là, ça c'est un peu tendant avec l'interprétaire par contre. Ben, je te veux pas. Bon, ceci étant dit, ça c'est comment? Ouais, je voulais le garder mon objet. Bon, peu importe de toute façon c'est pas comme... bon. Là où je veux en venir, de toute façon c'est... Si il y a des exemples un peu plus un peu plus corsés donc je teste un objet dans l'interprétaire mais en règle générale, j'écris des scripts pour gérer ma matière et donc dans le cas de la table j'ai un petit j'ai un petit module que je regardais tantôt donc en fait, j'ai toute une série d'exemples et audio et logiciel et je les ai fait en ordre en fait en ordre de complexité. Donc, d'entre Dieu, on peut faire ce que j'appellerais des processus. Donc un petit processus simple qui est pas une toune mais qui génère une matière donc qui pourrait facilement s'intégrer dans un projet dans un projet plus complexe et donc ici on en a un exemple un un choix d'exemples en fait qui prend seulement 6 lignes de code et ici donc j'ai un objet qui s'appelle New Table qui est un espace RAM un espace mémoire de 4 secondes dans lequel je peux enregistrer je peux enregistrer ce que je veux dans ce cas-ci, je lui envoie l'input micro donc je peux enregistrer n'importe quoi dans ce cas-ci, ça va être ma voix et j'ai divers objets qui vont piger des valeurs au hasard et qui vont contrôler un looper qui va me permettre grosso modo de hacher le son ou de jouer avec alors si je lance ça ici on voit la méthode GUI sur mon serveur et la méthode GUI c'est la façon de garder l'interprétaire ouvert pendant que le son joue donc comme vous le savez, une interface graphique ne prend le pas sur l'interprétaire puis donc lui-même donc dans ce cas-ci c'est WX qui a la main loop et donc ma petite fenêtre ici étant qu'à avoir une interface j'en ai profité pour donner contrôle d'amplitude, vue maître et compagnie et on a une petite ligne qui remplace mon serveur donc par la petite entretexte je peux communiquer avec mon script donc mes objets table, rec, pit et compagnie sont accessibles alors si je dis rec.play rec et que je dis n'importe quoi bonjour ici le bonhomme carnaval avec un petit peu de volume ça irait mieux bonjour ici le bonhomme carnaval comment vous portez-vous et donc ça lie en loop on est revenu au début donc c'est ce que j'appelle plus un processus je le présenterai pas comme une tourne par contre je l'intégrerai probablement pas non plus dans dans une autre tourne sauf que j'ai quand même tenu ma batch de petits neveux et nièces occupés pendant deux heures d'attent avec ça je l'aurais juste montré à taper sur la flèche et enter et ils ont eu du fun à n'en plus finir et donc disons que je serai heureux je n'ai qu'à appuyer sur rec start pour m'enregistrer une version de ce qui joue tel quel et donc ça c'est un shortcut qui est propre à la petite fenêtre du serveur évidemment si vous le faites dans le script vous pouvez enregistrer où vous voulez sur le nom que vous voulez dans le format que vous voulez dans ce cas-ci ça m'a donné pio rec pas le bureau donc j'ai enregistré un moment où ça ne jouait presque pas donc petit exemple ici de ce que j'appellerais un processus dans les processus qu'est-ce que j'avais prévu un autre exemple qui fonctionne avec des tables donc en fait avec des sons en rame j'ai 6 petits bouts de sons dans mon fichier ici des tout petits bouts des mains donc des minuscules bouts de voix et c'est on a un script qui boucle un certain nombre de fois donc on décide de l'overlap et qui trigue les différents sons des fréquences quelconque et les trigues en fait augmentent de façon exponentielle donc ce que j'ai appelé ce que j'ai appelé des nuages des nuages de sons donc au départ on en a presque pas et ça va bilder éventuellement et on revient donc ici on aurait qu'à remplacer la banque de sons pour aller chercher aller chercher différentes textures il n'y a rien qui nous empêcherait de passer le tout même que d'ailleurs on va se permettre de le faire donc ici si je prends mon mix final et que je veux distorsionner le tout je pourrais passer mon mix dans une disto avec quoi comme paramètre drive et slope alors disons qu'on est généreux sur le drive donc beaucoup de distorsion et par le fait même on veut un slope assez prononcé et par précaution je baisse le volume mais ça c'est juste pour vos oreilles donc si on le laissait comme ça ici c'est tenant ça donc juste pour montrer que c'est relativement simple c'est relativement simple de modifier une chaîne de traitement d'ajouter des composantes ou non il y a tous les outils d'empagno pour écrire des conditions des embranchements par exemple sur l'amplitude si l'amplitude est plus forte que tant on s'en va dans telle direction sinon on s'en va dans une autre donc il y a moyen d'écrire vraiment des chemins qui sont propres à nos besoins et donc ça ici on pourrait en imaginer de toutes sortes ça reste encore dans ce que j'appelle les processus donc ça génère qu'on pourrait vouloir regarder si on augmente un petit peu la complexité musicale et non la complexité du script je sais pas si vous êtes au courant il y a une espèce de concours parmi les gens de Super Collider pour savoir qui fait la plus belle chanson en 140 caractères c'est sur Twitter que 140 caractères c'est la limite donc c'est des pièces qui s'envoient par Twitter faut que ça fasse 140 caractères et j'ai un ami qui fait beaucoup de Super Collider donc éventuellement on a décidé de faire une petite comparaison et j'ai essayé de voir si je pouvais faire une tune en 140 caractères donc en fait si on fait fi quelque part et de la fenêtre ça me tente pas de l'écrire dans le terminal c'est sûr que je vais me tromper dans les parenthèses quelque part mais donc ça c'est la ligne qui génère le son en utilisant toutes sortes de random ça évolue dans le temps et ça peut rouler pendant un certain temps et être constamment nouveau tout en gardant une stylistique qui est propre donc donc en fait on voit que par les rencontres les rencontres de paramètres aléatoires ça pourrait tenir pendant un bon bout de temps en étant constamment différent et il n'y a rien qui nous empêche de s'empartir une deuxième tune à 140 caractères donc dans ce cas-ci c'est du bruit c'est du bruit avec des filtres qui bougent d'ailleurs bon merci c'était là on va qu'il embarque donc tout simplement des filtres avec une enveloppe en nom de carré qui ouvre et qui ferme des fois il en attrape plus que ça donc ici on est pris avec l'aléatoire les deux marchent assez bien ensemble en fait donc alors c'est pas mal le plus petit script le plus petit script possible pour générer une matière qui évolue dans le temps si on augmente un petit peu plus en complexité donc des scripts qui font grosso modo une page déjà on peut commencer à générer de la matière qui peut servir de base à une pièce et ici j'en profite avec mon wave terrain c'est une 10 pour introduire la dernière classe par an donc il y a le paillot object qui gère tout le son le paillotable object qui gère qui gère des espaces mémoires en une seule dimension et le paillot matrix object qui gère des espaces mémoires en deux dimensions dans lesquels on peut se promener et c'est le cas ici donc je dessine dans une matrice sensiblement de la même façon d'ailleurs que ce que tu présentais tantôt ça pourrait être du fractal sans problème et dans la matrice je me déplace avec une ellipse ou un cercle peu importe et c'est la surface qui donne la forme d'onde elle-même et ça ici ça donne un gros pas de donc il y a toutes sortes d'opérations qu'on peut faire sur les matrices donc ça présentement c'est la matrice qui est utilisée pour générer la forme d'onde et en fait la matrice elle est en mouvement constamment donc le terrain le terrain change le terrain qui est utilisé comme forme d'onde et bon là j'ai rien qui permet de voir le terrain changer c'est pour ça que je le réaffiche systématiquement et donc avec les matrices on peut imaginer toutes sortes de processus donc on pourrait faire de la page aléatoire faire une matrice au lieu de ici j'ai 256x256 ça pourrait être une matrice 16x16 avec des valeurs choisis et on se promène dans la matrice donc ça c'est libre pour quelqu'un de jouer avec ça et donc si on regarde rapido c'est si en fait j'ai une fonction terrain qui calcule donc une liste de liste qui calcule dans ce cas si 256 listes listes de 256 et donc c'est tous mes pixels en fait que je veux dessiner et j'ai 3 matrices donc new matrix avec chacune un terrain qui est différent et j'interpol en fait j'interpol d'un terrain à l'autre et j'ai des sinus qui se promènent qui se promènent dans le terrain pour générer la musique donc ça ici je vais l'arrêter ça dure je pense 12 minutes mais donc c'est un gros pad qui est en constante évolution qui éventuellement devrait servir de base à une musique mais pour l'instant c'est un projet qui est en suspens comment ? si ça devient une musique ça va être une musique new wage il n'y a pas de chance de s'en sortir dans le genre de petits scripts on peut facilement générer des trucs qui sont beaucoup plus rythmés donc il y a tout ce qu'il faut métronome cincanceur et compagnie dans ce cas-ci j'ai un métronome qui pige des morceaux de son dans une table et un métronome qui gère une rythmique particulière et ça aussi ça pourrait devenir une pièce je ne considère pas encore que c'est une musique à proprement parler mais dans ce cas-ci c'est un début de test pour avoir une certaine interactivité avec la musique c'est-à-dire que présentement tous les processus sont en suspens et je dois les lancer donc par exemple ici si je lance high je vais avoir des sinus qui peuvent être relativement aigus qui se veulent un peu le fond sonore de tout le bidule et éventuellement il y a une rampe qui est assez longue sur les sinus on va partir tout de suite des vagues qui elles devraient arriver un peu plus vite si je ne m'abuse dans les vlogs excusez c'était mon sang et donc je peux décider à quel moment je démarre mes événements tout ça est géré par une série de fonctions en fait qui sont définies à la fin de mon script et qui appellent des play, des stops ou des out sur les différents objets et donc ici le nœud de la musique et là éventuellement je pourrais ajouter des éléments ou par exemple d'enlever les vagues qui est à les faire réapparaître plus tard petite méthode disto qui ouvre une distorsion temporaire sur le rythme qui permet de donner un peu d'emphase donc ainsi de suite dans l'idée dans l'idée de prévoir un peu une musique qu'on pourrait interpréter qui est à se prévoir toute une batterie d'instruments et d'utiliser celles qu'on a besoin dans le contexte si on est avec d'autres musiciens par exemple et donc ici si je fais go 0 et ainsi de suite donc la chose qui est importante en fait dans le contexte avec paillot donc première des choses le serveur doit exister et doit être rebouté au moment alors j'ai mon serveur en tout début je crée tous mes processus que je peux vouloir utiliser et j'ai ma section contrôle donc qui est vraiment de base mes vagues en fait si x vaut 1 je pars mes vagues sinon je les arrête play stop donc la section contrôle règle général c'est tout simplement d'aduler ou de fermer un objet et quand on fait stop l'objet ne prend plus de CPU donc il n'y a pas de calcul qui est fait et il n'y a pas de CPU perdu donc on pourrait prévoir une quantité assez phénoménale de processus sonore et si on prend gare d'en allumer dans les limites du processeur il n'y a pas de problème alors voilà dans les scripts en fait on est encore en dehors de la musique telle quelle donc dans les scripts où on a une évolution un peu plus subtile mais encore relativement restreinte si on parle de projet donc c'est relativement simple encore une fois particulièrement c'est comme vous devez tous être relativement ferrés de l'information donc de vous créer vos propres librairies je suppose que ce n'est pas un problème alors ici dans le cas de run qui est une pièce en bonne et de forme j'ai mon main qui importe toute la librairie d'objet que je me suis fait avec les outils offerts par paillaux donc ici j'ai une simulation de strings d'une méthode que j'ai besoin pour contrôler et bon là j'en ai toute sorte par exemple le kick c'est une tune qui est pratiquement disco dans ce cas-ci et donc si je roule cette pièce là en fait j'ai un temps qui défile en fait j'ai un métronome qui appelle ma section contrôle systématiquement à toutes les 30 secondes que je m'abuse et c'est ma séquence mon séquenceur est ici et les sons que je démarre c'est ma librairie et là dans ce cas-ci on peut prévoir vraiment une musique avec un début, un développement une fin en fait je l'arrête si vous voulez présentement c'est la musique que j'ai faite avec paillot donc si vous voulez on pourrait peut-être l'écouter la version hi-fi puisque ici c'est tellement costaud que j'ai deux modes si je suis en mode live j'ai un sampling rate raisonnable avec des buffers qui sont énormes et quand je veux une version finale je demande à paillot de faire un rendu en temps différé j'ai besoin pour me donner la tune et cette fois-ci donc je la génère à 96000 sample par seconde ce qui me donne un son de nettement plus haute qualité alors si on a le temps on pourra en écouter une version tantôt H bon alors le temps file je passe je quitte le côté de la production musicale pour parler un peu développement logiciel jusqu'à paillot et je vous jure que j'ai cherché il n'y a rien en python qui permet de générer du son donc jusqu'à maintenant on a toujours bricolé des choses avec un moteur audio par en dessous mais une librairie python qui permet de parler d'une interface vraiment et tout d'un coup avec paillot ça devient extrêmement simple de développer des interfaces logicielles donc encore une fois par ordre de complexité ici j'ai un petit script qui s'appelle fxswitcher qui est vraiment tout petit en fait c'est un script que j'ai fait pour mes étudiants beaucoup plus de commentaires que de lignes de code en fait et ici donc j'utilise WX Python qui est ma librairie graphique par excellence mais vous pouvez faire les choses dans la librairie que vous voulez ça change absolument rien à paillot et donc j'ai une classe fxswitch qui lit un son et qui permet de sélectionner un effet quelconque parmi une liste dans un menu donc délai, disto, dégradation, reverb et je dessine une petite interface une petite surface en fait 2D qui permet de naviguer donc de modifier deux paramètres d'un coup et c'est tout c'est tout donc ça c'est ma surface petit frame pour afficher le tout et donc ici on peut lauder le son qui nous plaît quoi que l'audio fermé je ne suis pas sûr qui va me trouver drôle mais disons que disons que je choisis un classique un classique et donc ici j'allume l'audio notre ami Roger et donc ici en fait c'est un peu le paradigme plugin alors j'ai un délai et donc avec MassOhBoy vous voyez pas est-ce qu'on voit le petit point donc il y a un petit point ici qui va tuer donc qui me permet de manipuler tout simplement les paramètres de mon effet on pourrait en choisir un autre par exemple la disto dites-vous que j'ai des étudiants que ça fait 5-6 ans qui se font meurtrir les oreilles de Roger à toutes les semaines et donc ici l'interface c'est libre à chacun il n'y a absolument rien qui interdirait d'enregistrer la trajectoire de la faire rejouer en boucle ou rendu là c'est l'imagination de tous et chacun donc il y a différents effets possibles donc donc si vous voulez si vous voulez scraper un son c'est merveilleux et donc ça ici ça reste un tout petit script un peu à la lure d'un plugin autre exemple un peu plus corsé c'est pas ça que je voulais faire c'est ça ici c'est ce que j'ai appelé le funny synth ça vient aussi du cours que je donne sur payo dans ce cas-ci le script est un peu plus long mais les fonctionnalités sont nettement plus évolués et donc on a différents modules donc par exemple le panneau pour la classe pulsare forcément on va avoir un moteur audio de pulsare quelque part ici donc pulsare synth et donc il y a toute une série de synthés et une série de panneaux et on peut jouer avec les panneaux qui sont affichés et qui sont utilisés par exemple ici on peut ajouter des modules donc synthèse additive rhythm module je me souviens même pas de ce que ça fait ça mode et donc on peut en ajouter tant qu'on veut et tout ça ça répond au midi c'est tout simplement un synthé modulaire qui tient sur 800 lignes de code et avec les paramètres par défaut j'ai aucune idée de ce que ça va dire et donc ici qu'est ce qu'on a et donc polyphonique comme vous voulez donc c'est franchement très rapide de se construire un synth quelconque et ça vient avec quelques petits commandes de menus par exemple je pourrais ouvrir je pourrais ouvrir un synth qui a déjà été fait ou suis-je ici et donc par exemple si on reste dans le new age plus ceux ici fait pas mal new age donc si je plaque un bel accord mais donc ça c'est libre à chacun celui avec lequel je testais tantôt modus et déjà un peu plus rythmé si je reprends mon même accord donc ici on a des angles d'interface un petit peu plus subtil et donc les modules vous pouvez les ajouter ou les enlever selon votre bon plaisir et donc ça ici un synthé pratiquement complet synthé modulaire qui tient dans un tout petit script de rien et qui fait tout à fait le travail si vous êtes heureux si vous êtes heureux de votre son disons que je reprends mon puceux ici vous pouvez vous avez même la possibilité de faire un batch processing et de lui demander toutes les notes que vous voulez à importer dans un sampler quelconque donc ici je pourrais lui dire de la note je l'ai demandé pas beaucoup pour que ça arrête disons de la note 36 à la note 43 le step c'est des demi-tons donc tous les demi-tons entre la note midi 36 et 43 une seconde de durée une seconde de release disons que c'est raisonnable je lui dis go et il m'a calculé toutes mes notes dans un dossier sur le bureau si je ne m'abuse funny temp et donc ici ensuite vous glissez votre batterie de son dans contact par exemple un sampler qui fonctionne vraiment très bien et là vous avez une polyphonie totale au clavier donc ça fonctionne particulièrement bien on augmente en complexité et ce qui m'amène à vous parler d'un autre logiciel qui existait il y a un certain temps mais dès que paillot a été prêt le moteur audio est passé de 600 à paillot dans un logiciel qui s'appelle Soundgrain que vous pouvez trouver aussi sur google code donc Soundgrain donc qui est disponible qui roule, qui est multiplatforme donc qui roule par les sources sur toutes les plateformes des installeurs binaires pour os10 et windows et là on a un interface nettement plus complexe, plus évolué qui sert à faire de la granulation sur un signal quelconque alors si si je charge un son par exemple mon son de flûte ici je démarre l'audio et tout ce que j'ai à faire c'est dessiner les trajectoires donc la granulation c'est l'art de se promener dans un son à une vitesse quelconque et à une fréquence quelconque qui sont indépendantes d'une de l'autre alors ici si je dessine une ligne et on peut en faire tout un paquet vous pouvez même faire des petits spermatozoïdes et ainsi de suite le midi est intégré donc vous pouvez créer une trajectoire la mémoriser et pourquoi ça te fait arrêter le son toi il y a quelque chose qui est pas heureux est ce que ça ne tente plus d'alimenter ma carte de son mon dieu voyons voir si il va oser me le faire deux fois disons que je prends Beethoven merci il y a un truc avec le midi donc j'ai l'impression qu'il y a un conflit entre les deux cartes midi tant pis pour le midi vous pourrez y jeter un oeil par vous-même là où je vous l'envenis donc il y a des exemples si vous voulez les voir un peu où ça peut mener dans des processus un peu plus subtiles si on prend par exemple drops donc toutes les lignes sont verticales alors je pointe à un seul endroit dans le son et ce qui est assigné sur le y donc en x c'est toujours l'endroit où je me trouve dans le son et en y dans ce cas-ci c'est l'amplitude que j'ai sélectionné donc dans le fx window l'axe des y y j'ai décidé que c'était l'amplitude qui était assigné à la position en y et un petit peu de random sur la position et ici on a le contrôle du granulateur tel quel et donc ici si on le démarre ça fait des notes qui disparaissent plus la boule de sang plus la note disparaît et ça nous donne ceci ça ne tente pas de prendre le bon du premier coup et là où ça devient particulièrement agréable dans l'onglet playback vous pouvez choisir la trajectoire que vous voulez contrôler et décider donc de sa vitesse de pointeur en fait c'est des lignes solides mais en réalité c'est une succession de petits points en dessous de la ligne et ça c'est la vitesse à laquelle on change de point et le nombre de points qui sont sautés donc ici donc c'est ma ligne 1 donc on voit qu'en sautant 50 points à chaque coup de métronome ma ligne fait un peu n'importe quoi ici il y a un et donc j'ai des vitesses différentes 25, 26, 27, 28 et compagnie ce qui fait en sorte que les boules de la même vitesse se croisent pour donner pour donner les chutes il y a aussi, il y a ce que j'ai appelé les FX ball donc vous pouvez placer des balles de fait par exemple ici une balle avec le shader qui contrôle en fait le fade in fade out de la trajectoire dans l'effet et ça a comme impact qu'il y a que les petites boules qui passent dans la grosse boule qui subit l'effet et donc dans ce cas-ci on devrait entendre seulement quelques trajectoires qui sont distorsionnées et donc vous pouvez en mettre autant que vous voulez dans les effets il y a le multi FX qui transforme mon son de flûte en n'importe quoi donc ça va extrêmement vite avec SoundGrain pour générer des matières assez substantielles par exemple ici en donnant juste des trajectoires très ciblées ça fait un beau gros accord et là c'est les flèches avec les flèches on peut déplacer les trajectoires et si vous êtes chanceux si vous êtes chanceux je vais en prendre un que ça va paraître un peu plus si je prends check-in ça sonne comment ça en fait ça bouge trop vite bon alors si vous êtes chanceux vous avez droit à des petits mariaux qui courent sur les trajectoires et donc ils peuvent se courir après pendant longtemps mais ça c'est la fonction cachée je vous laisse la découvrir tout seul mais je l'ai glissé entre deux short cuts donc il y a des chances qu'on tombe dessus c'est fait exprès alors ici je pense qu'il y a beaucoup de choses à découvrir mais dans le contexte c'était pour montrer un exemple donc de logiciel de logiciel entier si on peut dire construit uniquement en piton en fait il n'y a rien d'autre que du piton alors petit interface graphique paillot pour gérer le son et voilà c'est tout vous voulez jouer plutôt une tune ou vous en avez assez de m'entendre on fait jouer une tune donc je vais faire jouer le fichier son de la tune run qui est un rendu donc un rendu en temps différé de la pièce donc à haute qualité alors si je vous souhaite dans quick time alors ben voilà