Overblog Suivre ce blog
Administration Créer mon blog
10 février 2009 2 10 /02 /février /2009 21:32

Manifester ne fait plaisir à personne, c'est toujours la preuve qu'il y a un problème. Et ce que les universitaires, étudiants comme personnels, voient arriver est un énorme problème.

L'Université est bien maltraitée, en dépit des "preuves d'amour" que prétend lui apporter sa ministre. Entre les suppressions de postes, les bouleversements des statuts des personnels, la mercantilisation à outrance de la Recherche, les réductions drastiques de budgets, etc. Et oui, contrairement à ce que veut faire croire le gouvernement en annonçant des chiffres mirobolants, les budgets des universités sont sabrés grâce à de nouvelles méthodes de comptabilité : informez vous sur le système SYMPA, pas si sympa que ça. C'est comme pour le chomâge : on change la formule de comptabilisation et hop, magie, des dizaines de milliers de chômeurs en moins.

Manifester ne me fait donc pas plaisir, mais ne pas réagir, c'est se rendre complice de l'inévitable chute de la qualité des diplômes universitaires qu'engendreraient ces réformes : comment pourrait-il en être autrement avec moins de personnels et moins de budget ? J'étais donc aujourd'hui dans les rues d'Aix en Provence avec 2000 autres manifestants, parmis lesquels beaucoup d'étudiants qui se rendent bien compte de l'ampleur des problèmes qui vont soit les toucher directement, soit toucher leurs successeurs.

Mention spéciale aux étudiantes de l'IUFM, très mobilisées, qui ont effectué une petite choregréphie contestataire devant les grilles du rectorat. Bravo les filles !



Le conseil du jour : lorsque vous préparez une banderole pour une manif, faites des trous dans le tissu - de manière si possible artistique (dans les "A", les "D", les "O", etc.) - sinon en cas de vent vous aurez une véritable voile à maitriser ^^'
Repost 0
Published by Stravingo - dans Général
commenter cet article
8 février 2009 7 08 /02 /février /2009 00:50
Je vous parlais dans le précédent article du séquenceur Reaper, dont je me sert en réalité pour deux choses :
  • Je m'en sert comme d'un séquenceur, normalement, quoi. Je bricole des musiques en m'enregistrant sur plusieurs pistes en jouant successivement de la guitare, de la basse, du clavier, et en rajoutant une batterie. Ça m'amuse beaucoup en dépit d'une qualité, heu, discutable
  • Je l'utilise aussi en temps que programmeur. En effet, Reaper offre la possibilité d'appliquer sur les pistes audios différents effets grâce à des plugins aux formats VST, DX et JS. Ces formats sont standards et peuvent être utilisés dans de très nombreux logiciels de traitement audio. N'importe quel programmeur peut créer un plugin VST grâce au SDK de Steinberg ou un plugin DX avec le SDK de Cakewalk.


Mais le format qui m'intéresse le plus actuellement est le JS, ou « JesuSonic ». D'ailleurs, pourquoi un tel nom ? Et bien parce que, outre le fait qu'il s'agisse d'un logiciel, ses concepteurs ont aussi pour projet d'intégrer ce soft dans un boitier hardware à la forme pour le moins mystique.



Contrairement aux plugins VST et DX qui sont développés en C++ puis compilés, les plugins JS ont la particularité de se présenter sous la forme d'un script, d'un fichier texte écrit dans un langage de programmation très simple qui s'apparente un peu au langage C. Du coup, ils ont pour gros avantage le fait de pouvoir être édités afin de modifier leur comportement, sans avoir à quitter Reaper ! Il est donc possible d'écrire un effet JS, de le tester, et de le modifier à volonté afin d'obtenir le résultat voulu. Le cycle de développement est ainsi accéléré. Les plugins JS offrent aussi l'avantage de pouvoir créer très facilement une interface graphique (sliders, menus déroulants) afin d'ajuster les paramètres de l'effet.


Je me sert donc actuellement de Reaper pour écrire des effets au format JS. Lorsqu'ils seront au point, je les adapterai ensuite en C pour la TCDDK. Bref, je me sert de JS pour prototyper des effets pour la ToneCore de line6. Pour vous montrer à quel point un script JS est simple, voici un effet d'écho très basique que j'ai bricolé vite fait :


desc:echo

slider1:200<0,1000,1>length (ms)

slider2:-10<-20,0,1>feedback (dB)


@init

buffer=0;


@slider

delaylen=slider1*srate/1000;

feedback = 2 ^ (slider2/6);


@sample

buffer[0]=spl0 + buffer[0]*feedback;

buffer[1]=spl1 + buffer[1]*feedback;

spl0=buffer[0];

spl1=buffer[1];

buffer += 2;

buffer >= delaylen*2 ? buffer = 0;


Ce plugin comporte deux sliders, définis au début du script, qui permettent de régler la longueur de l'écho (entre 0 et 1000 ms) ainsi que le volume de l'écho (-20 à 0 dB).



Les plus programmeurs d'entre vous comprendront très facilement ce programme après avoir jeté un œil à la doc très concise du langage Jesusonic. Grosso modo, je mélange les échantillons en entrée (spl0 et spl1, pour les échantillons stéréo de gauche et de droite) à ceux que j'avais enregistré dans un buffer d'une longueur variable (donnée par le slider 1 de l'interface), en ajustant le volume de ce buffer grâce au slider 2, et je remet le tout dans spl0 et spl1 pour que ce mélange soit joué.


Et en voici le résultat. Tout d'abord, en enregistrant directement la guitare :


[Guitare → Pod XT → Reaper]


Puis en appliquant l'effet JS d'écho :


[Guitare → Pod XT → Reaper → Effet JS]


Oui, oui, l'effet d'écho est trèèèès basique et le guitariste est nul, mais c'est juste pour illustrer le principe ^^'


Pour l'anecdote, comme mes développements tournent beaucoup ces temps-ci autour de l'informatique musicale (TCDDK, Jesusonic), je programme très souvent maintenant avec une guitare sur les genoux – ce qui n'est pas des plus pratiques – afin de tester rapidement mes programmes. Et du coup, l'envie m'est venue de tester le jeu en slide avec une tone bar, car cette technique se joue justement avec la guitare posée à plat sur les cuisses. C'est donc aussi ce qui explique la piètre qualité du morceau d'exemple ci-dessus (outre les très modestes talents guitaristiques de votre serviteur), car je n'ai pas du tout réglé ma Stratocaster pour le slide : l'action est trop basse, le tirant des cordes trop léger, et du coup la Tone bar racle sur les frettes


Bon, il faut que j'améliore cet écho, et dès que j'arrive enfin à utiliser cette @%#!  de SRAM, je porte l'effet sur la TCDDK.


Repost 0
Published by Stravingo - dans Musique
commenter cet article
7 février 2009 6 07 /02 /février /2009 11:41
Au cours de mes expérimentations musicales, j'utilise beaucoup l'excellent Reaper , logiciel d'enregistrement et d'édition audio multipistes (sons échantillonnés et midi). Un séquenceur, quoi, autrement appelé un « DAW », pour « Digital Audio Workstation »


C'est un nouveau venu dans un milieu déjà occupé depuis des années par des mastodontes tels que Abbleton Live, Cakewalk, Cubase ou Pro Tools, mais il a cependant bien des avantages pour lui.


A commencer par son prix de 50$ pour une utilisation non commerciale, alors que ses concurrents sont 10 fois plus chers, ainsi qu'une interface très claire, très facile d'utilisation là où les ténors du genre présentent souvent une interface un peu trop touffue pour l'amateur moyen. La place occupée sur disque est aussi stupéfiante : l'installeur fait 3 Mo, le logiciel une fois installé prend moins de 12 Mo. Ça se voit ensuite au démarrage qui ne prend que quelques secondes !


Mais ce prix modeste, cette clarté de l'interface et cette taille réduite ne signifient pas pour autant que Reaper est un outil simpliste, bien loin de là.


Il est au contraire très puissant, rapide. Certes, il n'offre pas autant de fonctionnalités qu'un Cubase ou qu'un ProTools, mais il propose l'essentiel (et même plus) dont un amateur voire un semi pro a besoin pour créer. Le nombre de pistes est illimité, de nombreuses opérations sont possibles sur les sons, de nombreux formats de fichiers sont reconnus (AIFF, OGG, MP3, WAV, etc.), les effets et instruments virtuels standards sont utilisables (VST, VSTi, DX, DXi, JS), l'interface est customisable, etc.


Et surtout, il y a derrière une équipe de développement très dynamique qui sort une nouvelle mise à jour tous les mois avec des nouveautés, améliorations et corrections par dizaines. Les bugs sont donc très rapidement corrigés, ce qui en fait un logiciel particulièrement stable.


Vraiment, si vous vous intéressez à la création musicale, je vous conseille d'essayer Reaper.


...et non, ils ne me sponsorisent pas pour leur faire de la pub, mais c'est vraiment un logiciel que j'apprécie et qui offre des possibilités pour un développeur comme moi, mais je vous en reparlerai.

Repost 0
Published by Stravingo - dans Musique
commenter cet article
5 février 2009 4 05 /02 /février /2009 19:46
 

Une fois n'est pas coutume, je ne parlerai pas dans cet article de programmation. J'ai battu cet après midi le pavé marseillais en compagnie de quelques milliers de profs, personnels et étudiants d'universités, comme dans une vingtaine d'autres villes, pour protester contre une réforme assez incroyable de l'Université par le gouvernement qui vise à en faire ni plus ni moins qu'une entreprise, bafouant les statuts des personnels, réduisant les budgets, supprimant des postes, méprisant la Recherche en la formattant dans un carcan purement utilitariste sans vision à long terme.

Ajoutez à cela une ministre obtue qui a trop peur de son chef pour céder...

Bref, en résumé, la situation est grave, et j'ai l'impression que le grand public ne se rend pas bien compte des dégâts que va engendrer la politique libérale du gouvernement en matière d'enseignement supérieur et de recherche. La logique économique ne doit pas s'appliquer à tous les domaines.

Bon, allez, pour terminer sur une note plus légère je vais quand même parler technologie. N'achetez pas un Sony Ericsson w910i pour son appareil photo, la qualité est vraiment toute pourrie
Repost 0
Published by Stravingo - dans Général
commenter cet article
4 février 2009 3 04 /02 /février /2009 10:09
Le TCDDK m'offre un challenge à bien des niveaux. Non seulement je découvre la programmation sur DSP et je me forme sur le traitement du signal, mais en plus de cela je dois composer avec les restrictions mémoire très importantes de cette plateforme.

En effet, le DSP 56364 possède 3 RAM différentes :
  • mémoire P : 1,25k x 24 bits pour stocker le programme.
  • mémoire X : 1K x 24 bits pour stocker des données.
  • mémoire Y : 0,75K x 24 bits pour stocker des données.
Il y a aussi des subtilités permettant de faire des vases communiquants entre les mémoires P, X et Y, afin d'allouer plus ou moins de mémoire au programme en prenant sur l'espace des données, mais je ne vais pas vous embêter outre mesure avec ça. Vous l'aurez constaté, le DSP possède vraiment très peu de mémoire.

En particulier, les 1,25k de la mémoire P ne pèsent pas bien lourd, mais c'est cohérent avec le fait que ce programme doit être éxecuté en temps réel sur tous les échantillons sonores reçus, soit 40000 fois par seconde (x2 si on traite le son en stéréo) car le convertisseur analogique / digital fonctionne avec une fréquence de 40KHz. Bon, il y a vraiment intérêt à faire des programmes courts, optimisés, et on comprend pourquoi le développement doit être fait en assembleur ou en C. Un programme en C++ aurait été beaucoup trop gros. Ca me rappelle mes tout premiers programmes sur ZX81 et son glorieux kilo octet de mémoire. Comme quoi les 4 Mo de la DS, c'est vraiment du luxe :)


Heureusement, le TCDDK possède une extension mémoire, une SRAM de 512 Ko permettant d'étendre la mémoire P, X ou Y.

Je bloque actuellement sur l'utilisation de cette SRAM en raison du manque d'info dans la doc de Line 6. Il n'y a qu'un exemple en assembleur DSP 56364, que je ne connais pas et que je vais donc devoir apprendre ne serait-ce que pour décrypter cet exemple. Mes connaissances en assembleur 68000 et 80x86 me permettent de le comprendre dans sa globalité, mais je n'en saisis pas toutes les subtilités.

Et pourtant l'utilisation de cette SRAM est indispensable, soit pour stocker des tableaux importants, des tables précalculées, mais aussi pour bufferiser le signal reçu, afin de réaliser des effets tels que des échos, des délais, des flangers, qui ont besoin de mémoriser le son afin de le mélanger au son traité par la suite. Bon, inutile tout de même de songer à programmer un looper, car les 512 Ko ne permettent de mémoriser que 4,37 secondes de son en mono à 40KHz. On comprend pourquoi la pédale ToneCore Echo Park de Line 6, basée sur la même architecture, annonce un délai d'écho maximum de 2,2 secondes en stéréo.


Je ne dois pas être le seul à éprouver quelques difficultés à coder sur le TCDDK, car le nombre d'effets publiés jusque là est très faible. Je n'en ai compté que 5 alors que le TCDDK est sorti en octobre 2008 :
  • 2 Band Filter EQ, écrit en assembleur (exemple de Line 6)
  • Tremolo, écrit en assembleur (exemple de Line 6)
  • Tremolo 2, écrit en C (Brian Soderberg)
  • BadRubix, écrit en C (Luke Durback)
  • ST-Fuzz, écrit en C (Stravingo)
Ces programmes sont disponibles sur le forum officiel du TCDDK et sur le Wiki officieux. Pour avoir un peu fouillé dans les recoins du net, je n'en ai pas trouvé d'autres. Cher lecteur, si tu as la connaissance d'un autre effet, merci de me le signaler :)

Line 6 a vraiment tout intérêt à diffuser plus d'exemples en C et à étoffer sa doc si il souhaite que son TCDDK touche un plus large public.

Repost 0
Published by Stravingo - dans Musique
commenter cet article
25 janvier 2009 7 25 /01 /janvier /2009 21:41
J'ai rédigé un avis sur le TCDDK sur l'excellent site Audiofanzine que je lis avec plaisir régulièrement depuis des années. L'article est un peu trop long pour que je le reproduise ici, mais sachez que j'en dis du bien .

Je ne regrette que la doc minimaliste de Line 6, le faible nombre d'exemples (deux ) et le SDK en C très incomplet mais en cours de développement.

Je regrette aussi l'appétit vorace de la bestiole qui me descend une pile en 4h . Il va d'ailleurs falloir que j'achète l'adaptateur secteur (le DC-1 de Line 6), qui sera bien pratique à l'usage.


Mais globalement, je suis très satisfait de mon nouveau joujou qui va m'amuser  (et me servir !) pendant je pense pas mal de temps. Mais bon, sachez fidèles lecteurs que je ne délaisserai pas le développement sur DS pour autant
Repost 0
Published by Stravingo - dans Musique
commenter cet article
24 janvier 2009 6 24 /01 /janvier /2009 23:25
J'ai commencé à regarder ce qu'il était possible de faire avec le ToneCore DSP Development Kit (TCDDK, pour les intimes). Certes, il est possible de développer en assembleur pour le DSP56364, et d'ailleurs Freescale Semiconductor met à disposition tout un environnement de programmation (basé sur Eclipse), mais cela suppose un temps de formation assez élevé avant d'obtenir le moindre résultat satisfaisant.

Heureusement, Line 6 a commencé à diffuser un Kit de développement en langage C pour son TCDDK, s'appuyant sur l'environnement de développement de Freescale Semiconductor, mais il est pour le moment très embryonnaire. Cela permet en tout cas de réaliser assez rapidement de petits programmes. Je regarderai un jour l'assembleur du DSP56364, mais j'étais impatient de tester la bestiole.

J'ai écrit en langage C un programme permettant de simuler une pédale de type "Fuzz", qui modifie le signal provenant de la guitare en le boostant et en l'écrêtant. Le résultat est un son sale, saturé, très largement utilisé en rock, blues, métal, etc. Je l'ai ensuite compilé, puis transferré sur le TCDDK.

Pour tester l'effet de mon programme, j'ai joué (massacré ?) un riff en branchant ma stratocaster dans la pédale mais sans l'activer, et en reliant celle-ci à mon Pod XT pour simuler un ampli. J'ai utilisé une simulation de Marshall Super Lead jumped. Le résultat, sans le moindre effet, est un son plutôt clair :

[Guitare -> TCDDK désactivée -> Pod XT]

Bon, pour jouer du Metallica, le son clair c'est pas terrible. Et puis j'ai enclenché la pédale pour exécuter mon programme. Et là, c'est le drame :

[Guitare -> TCDDK activée -> Pod XT]

Bon, mon effet est beaaauuucoup plus cheap que ce que permettent de faire les pédales les plus connues dans le domaine de la distortion (Big Muff, Tube Screamer, Rat, etc.), mais je trouve le résultat intéressant pour les quelques heures de boulot que j'y ai consacré.

L'effet n'est pour le moment pas trop paramétrable. Dans mon programme, j'adapte la saturation du son en fonction de la position du premier des six potentiomètres de la pédale. En le mettant à 0, on a le son clair original, comme si la pédale était désactivée, et en le mettant à fond... on peut se racheter des oreilles  Dans l'exemple ci-dessus, je n'ai mis la saturation qu'à 50 %.

J'améliorerai cet effet et j'en développerai prochainement d'autres. J'ai entre autres une idée assez délirante qui pourrait être amusante si j'y parviens
En attendant, les heureux possesseurs de la TCDDK peuvent télécharger le fichier .cld à transférer sur leur pédale :

  [Download TCDDK-Stravingo-Fuzz]

Repost 0
Published by Stravingo - dans Musique
commenter cet article
22 janvier 2009 4 22 /01 /janvier /2009 23:05
Je ne vous en ai jamais parlé, mais j'ai une autre grande passion outre l'informatique, une passion pour la musique et en particulier pour les instruments de musique. Je gratouille à mes moments perdus de la guitare (Fender Stratocaster) et de la basse (Fender Jazz Bass, Cort Artisan A4).

Si je vous en parle dans ce blog plutôt dédié à mes activités en programmation, c'est que j'ai enfin la possibilité de faire se rejoindre ces deux passions grâce à une petite merveille concoctée par la société Line 6, bien connue auprès des guitaristes et bassistes pour ses équipements à base de simulation numérique sonore.

La merveille, la voici, le ToneCore DSP Development Kit, commandée aux States et fraîchement reçue hier (sans avoir fait l'objet de frais de douane :p) :



Je vois d'ici votre réaction : "Heu... wow ?". Et bien oui, wow.

Pour comprendre l'intérêt de la chose, il faut savoir qu'une guitare ou une basse électrique ne produit que très peu de son naturellement en l'absence de caisse de résonnance, contrairement à une guitare acoustique. Elles sont dotées de micro, et il faut les brancher sur un amplificateur pour entendre quelque chose. Sur les amplificateurs et sur les guitares elles mêmes on trouve des potentiomètres qui permettent de modifier le son, mais le guitariste "sculpte" réellement le son de son intrument au moyen de "pédales d'effet", qu'il intercale entre la sortie de sa guitare et l'entrée de son ampli.

Et de telles pédales d'effet, on en trouve une foultitude, que ce soit pour appliquer un effet de volume sonore, de wah-wah, d'écho, de réverbération, de chorus, de flanger, de saturation, etc. En les chaînant entre elles, en ajustant leurs propriétés grâce à leurs potentiomètres, on peut donc faire subir au signal provenant de la guitare des transformations très complexes avant qu'il ne soit rendu audible par l'ampli.

Tout guitariste éléctrique a donc sa petite collection de pédales d'effet qui lui permet d'obtenir LE son qu'il souhaite. Parfois certains... heu... exagèrent un peu, quand même O_O
Le pedalboard de John Frusciante, guitariste des Red Hot Chili Peppers, est, heu, conséquent.

Le set de l'image de gauche n'est pas à moi ! (bien que je trouve les deux PRS bien jolies. La Thinline Esquire est magnifique elle aussi).

Non, pour ma part, j'utilise beaucoup plus simplement un "ampli virtuel", une petite boîte qui contient un microprocesseur qui simule numériquement des dizaines de pédales et des dizaines d'amplis. Ca prend tout de même moins de place et on peut y brancher un casque pour éviter les descentes de voisins ou de flics :) J'utilise un POD XT de Line 6 et un V-Amp2 de Behringer. Certains "puristes" décrient la qualité sonore de ce genre d'amplis virtuels, mais pour mes modestes compétences guitaristiques, ça me suffit très largement :)


Mais revenons à nos moutons, ou plutôt à ce fameux ToneCore DSP Development Kit que je viens donc de m'offrir.


Alors, késako ? Et bien la bestiole est une pédale d'effet PROGRAMMABLE !!!

En effet, elle contient un microprocesseur (un DSP plus précisemment, le DSP56364 de Freescale Semiconductor) que vous pouvez programmer en assembleur ou en langage C, afin d'élaborer l'effet QUE VOUS VOULEZ.

Vous branchez votre guitare sur la pédale, le signal de la guitare est transformé en valeurs numériques qui sont transmises au DSP et c'est alors à vous de jouer : à vous de modifier ces valeurs numériques pour en faire ce que vous voulez. Vous pouvez écrire un programme qui ajoutera de l'écho, de la saturation, qui inversera le son, qui le hachera, tout est libre. De plus, la pédale comporte 6 potentiomètres et deux interrupteurs à 3 positions dont vous pouvez lire les valeurs dans votre programme pour ajuster les paramètres de votre effet. En sortie de la pédale, ces valeurs numériques que vous avez modifiées sont retransformées en analogique et suivent le reste de la châine jusqu'à votre ampli qui vous permettra de constater le désastre résultant de vos maltraitances numériques :)

En pratique, le développement du programme se fait sur un PC, en assembleur ou en C, et il est ensuite transféré sur la pédale en la reliant au PC grâce à un câble USB. Le programme est alors conservé dans la mémoire de la pédale, inutile de la raccorder au PC, sauf si vous souhaitez transferrer un autre programme.

Alors, WOW, hein ?


Bon, yapuka, comme on dit. Je vais me jeter dessus ce week end, j'ai en tête quelques idées d'effets à programmer :)

Repost 0
Published by Stravingo - dans Musique
commenter cet article
29 août 2008 5 29 /08 /août /2008 15:23
OK, OK, n'en jetez plus, après une longue interruption je reprends enfin le développement du Hordes Survival Device ^^'

Merci à tous ceux qui ont posté ici des commentaires ou qui m'ont envoyé des mails à ce sujet, pour exprimer leur frustration, m'encourager ou me proposer leur aide. Je n'ai pas eu le courage de répondre à tous pour m'expliquer, donc le plus simple est encore de reprendre le développement :-)

Aller, hop, je ressors ce vieux boîtier métallique tout rouillé de son tiroir, je m'empare d'un fer à souder, d'une clé à molette, et au boulot !

Les premiers résultats bientôt...
Repost 0
20 juin 2008 5 20 /06 /juin /2008 12:55
Motion Twin a sorti officiellement il y a deux semaines son nouveau jeu, Hordes. Il se joue entièrement dans un navigateur, pas la peine de télécharger quoi que ce soit. Certes, il n'y a pas de 3D ou d'animations à couper le souffle, mais son ambiance est très prenante. C'est un jeu plutôt stratégique, social, où tout repose sur les liens que vous allez établir avec les autres joueurs.

En quelques mots, Hordes est un jeu de survie communautaire dans un monde crépusculaire envahi de morts vivants. En vous inscrivant, vous rejoignez une ville de 40 citoyens, tous des joueurs comme vous. Votre but est de faire durer votre ville le plus longtemps possible, en construisant différents bâtiments et des défenses permettant d'endiguer les attaques de morts vivants qui ont lieu toutes les nuits à minuit.

Attention c'est un jeu à l'ambiance morbide, avec des éléments très adultes, mais le tout est contrebalancé par un humour très noir, très cynique, qui donne au cocktail final un goût assez original et vraiment prenant. Je précise que le jeu est interdit aux moins de 13 ans !

Ayant eu la chance de participer à la phase de bêta test (merci encore à toute l'équipe de Motion Twin !), je m'étais lancé dans le développement de Hordes Survival Device, un outil pour Nintendo DS permettant d'afficher des informations provenant du jeu.

J'ai essayé de lui donner une origine militaire avec un look cadrant avec l'ambiance du jeu, usé, sale, tâché de sang. Pour renforcer l'ambiance, des mouches attirées par les morts vivants en putrefaction viennent se promener sur l'appareil, mais peuvent être chassées en leur soufflant dessus.
Vous trouverez plus de détails sur mon logiciel sur cette page.

Je ne m'étendrai pas plus sur la description de mon logiciel car j'ai décidé d'en arrêter le développement.


Repost 0