<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://www.jibhaine.fr/feed/rss2/xslt" ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>JibHaine's Blog - Programmation</title>
    <link></link>
    <atom:link href="https://www.jibhaine.fr/feed/category/Programmation/rss2" rel="self" type="application/rss+xml" />
    <description>Le Blog d'un développeur web, musicien multi-instrumentiste compositeur de chansons et de sites web...</description>
    <language></language>
    <pubDate>Thu, 18 Nov 2021 10:56:58 +0100</pubDate>
    <copyright>jibHaine</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>Dotclear</generator>
          <item>
        <title>Générer du son avec Flash 10</title>
        <link>https://www.jibhaine.fr/post/2009/04/29/G%C3%A9n%C3%A9rer-du-son-avec-Flash-10</link>
        <guid isPermaLink="false">urn:md5:636c7a22c5b243afef4ffc3bb3fe9c68</guid>
        <pubDate>Wed, 29 Apr 2009 01:16:00 +0200</pubDate>
        <dc:creator>jibHaine</dc:creator>
                  <category>Programmation</category>
                          <category>audio</category>
                  <category>flash</category>
                  <category>flex</category>
                  <category>MS-20</category>
                <description>&lt;p&gt;La suite de mes expérimentations avec flash, un petit générateur de son tout simple. Il vous faut le Flash Player 10 pour que ça fonctionne.
&lt;br /&gt;&lt;br /&gt;
ATTENTION, BAISSEZ LE SON : CA FAIT MAL AUX OREILLES ! &lt;img src=&quot;/themes/jibHaine2008bis/smilies/grin.png&quot; alt=&quot;:-D&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;
&lt;object id=&quot;jibHaineSynth&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://www.jibhaine.fr/flash/jibSynth.swf&quot;  width=&quot;330&quot; height=&quot;256&quot; &gt;
&lt;param name=&quot;movie&quot; value=&quot;http://jibhaine.fr/flash/jibSynth.swf&quot; /&gt;
&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
&lt;param name=&quot;menu&quot; value=&quot;false&quot; /&gt;
&lt;/object&gt;&lt;br/&gt;
Cliquez sur les touches pour déclenchez une note, vous pouvez changer l'octave et la forme de l'onde.
&lt;/div&gt;
&lt;p&gt;Je pense que je me suis trompé dans la formule du son de forme triangulaire, c'est plutôt affreux.&lt;br /&gt;&lt;br /&gt;
En fait tous les sons sont très moche à écouter, mais c'est la base de la musique électronique.&lt;br /&gt; il faut pas mal d'effets derrière pour en faire quelque chose d'audible.&lt;br /&gt;
Me voilà donc avec un nouveau projet annexe, créer un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Synth%C3%A8se_sonore_soustractive&quot;&gt;synthétiseur&lt;/a&gt; type MS-20.&lt;br/&gt;
&lt;br /&gt;des explications détaillées dans la suite du billet...
&lt;/p&gt;          En fait tout est parti de là :

http://www.kaourantin.net/2008/05/adobe-is-making-some-noise-part-2.html

et surtout des quelques lignes de code que je me permets de remettre ici :
&lt;code&gt;
 var sound:Sound = new Sound();
&lt;br/&gt;
function sineWavGenerator(event:SampleDataEvent):void {
&lt;br/&gt;
for ( var c:int=0; c&lt;1234; c++ ) {
&lt;br/&gt;
var sample:Number = Math.sin((Number(c+event.position)/Math.PI/2))*0.25;
&lt;br/&gt;
event.data.writeFloat(sample);
&lt;br/&gt;
event.data.writeFloat(sample);
&lt;br/&gt;
}
&lt;br/&gt;
}
&lt;br/&gt;
sound.addEventListener(&quot;sampleData&quot;,sineWavGenerator);
&lt;br/&gt;
sound.play();
&lt;/code&gt;
Et la je me suis dit merde c'est tout ? &lt;br /&gt;
en fait on rempli un buffer de son avec une courbe , sachant que toute courbe est une fonction mathématique,&lt;br /&gt;
mes cours de physique me reviennent à la gueule, un petit tour sur wikipedia simpose, particulièrement ca : &lt;a href=&quot;http://en.wikipedia.org/wiki/Waveform&quot;&gt;waveform&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
On peut donc génrer plusieurs types de courbes, différents sons&lt;br/&gt;
en ajustant la fréquence de la courbe, on génère différentes notes. En cherchant un peu je suis tombé sur ce site : maths et musique
&lt;br/&gt;
Les prochaines étapes : 
&lt;ul&gt;
 &lt;li&gt;Deux oscillateurs, avec sélection du type de forme, de l'octave.&lt;/li&gt;
 &lt;li&gt;De quoi mixer les deux, pour bien faire, il me faudrait un composant de potentiomètre circulaire (rotary knob) .&lt;/li&gt;
 &lt;li&gt;Un&lt;a href=&quot;http://fr.wikipedia.org/wiki/Enveloppe_temporelle&quot; hreflang=&quot;fr&quot;&gt; générateur d'enveloppe&lt;/a&gt; ( attack /decay / sustain / release ) pour pouvoir faire des notes plus jolies, et pas un signal continu.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;</description>
        
                  <comments>https://www.jibhaine.fr/post/2009/04/29/G%C3%A9n%C3%A9rer-du-son-avec-Flash-10#comment-form</comments>
          <wfw:comment>https://www.jibhaine.fr/post/2009/04/29/G%C3%A9n%C3%A9rer-du-son-avec-Flash-10#comment-form</wfw:comment>
          <wfw:commentRss>https://www.jibhaine.fr/feed/atom/comments/277</wfw:commentRss>
              </item>
          <item>
        <title>RadioClock</title>
        <link>https://www.jibhaine.fr/post/2007/12/22/RadioClock</link>
        <guid isPermaLink="false">urn:md5:1501323e22047befd8ab53bc7ac2a061</guid>
        <pubDate>Sat, 22 Dec 2007 22:20:00 +0100</pubDate>
        <dc:creator>jibHaine</dc:creator>
                  <category>Programmation</category>
                          <category>diodes</category>
                  <category>horloge</category>
                  <category>java</category>
                  <category>maths</category>
                  <category>rouge</category>
                  <category>studio</category>
                <description>Ca fait un bout de temps que je voulais m'acheter une &lt;strong&gt;&lt;a href=&quot;http://www.pearl.fr/article-PE3891.html&quot; hreflang=&quot;fr&quot; title=&quot;Horloge murale - leds rouges&quot;&gt;horloge de studio&lt;/a&gt;&lt;/strong&gt;, genre radio, bien visible, bien grosse. Je comptais me l'offrir pour noël, mais vu le manque de temps, d'argent, et l'absence d'internet @home. Je l'ai un peu zappée...
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.pearl.fr/article-PE3891.html&quot; hreflang=&quot;fr&quot; title=&quot;Horloge murale - leds rouges&quot;&gt;
&lt;img src=&quot;https://www.jibhaine.fr/public/radioclock/horloge.png&quot; alt=&quot;Horloge&quot; style=&quot;margin: 0 auto; display: block;&quot; /&gt;
&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
Du coup je me suis mis à en programmer une en java, à partir de mes maigres connaissances en maths...&lt;br /&gt;&lt;br /&gt;
Voici donc comment j'ai fait mon écran de veille 'horloge de studio' ...
&lt;br /&gt;          &lt;br /&gt;
Un midi de partiel j'ai eu l'idée de faire cette horloge sur pc, tout de suite, le premier problème rencontré après avoir fait les images c'est :
&lt;br /&gt;
&lt;h3&gt;Comment afficher un cercle de diodes ?&lt;/h3&gt;
&lt;br /&gt;
Allez c'est parti pour un peu de maths...&lt;br /&gt;

Vous vous souvenez des cours de &lt;a href=&quot;http://fr.wikipedia.org/wiki/Trigonom%C3%A9trie&quot; hreflang=&quot;fr&quot; title=&quot;Trigonométrie&quot;&gt;trigonométrie&lt;/a&gt; ?&lt;br /&gt;
cos, sin, tan tout ca ? relou hein...&lt;br /&gt;
&lt;img src=&quot;https://www.jibhaine.fr/public/radioclock/trigo.png&quot; alt=&quot;Cercle Trigonométrique&quot; style=&quot;margin: 0 auto; display: block;&quot; /&gt;
Ben finalement c'est plutot utile quand on veut afficher 60 diodes sur un cercle de 360°(ou 2*PI)...&lt;br /&gt;

Sachant que les coordonnées x et y des diodes sur le cercle peuvent être définies via un angle, on commence notre parcours à PI/2&lt;br /&gt;
et on ajoute à chaque fois... attention....&lt;br /&gt;
&lt;br /&gt;
360/60=6° soit un angle de PI/30, bravo les enfants...
&lt;br /&gt;
&lt;br /&gt;
Ce qui nous donne, avec un peu de java (simplifié pour les néophytes) par dessus :&lt;br /&gt;&lt;br /&gt;

&lt;div class=&quot;quote&quot;&gt;
//angle de decalage entre chaque seconde&lt;br /&gt;
&lt;code&gt;Odec = (6*PI)/180;&lt;/code&gt;&lt;br /&gt;
//angle variable pour faire le tour, initialisé à midi (pi/2)&lt;br /&gt;
&lt;code&gt;Ovar = -(PI/2);&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;for(int i=0;i&lt;60;i++){&lt;/code&gt;//on répète 60x&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//calcul des coordonnées
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;code&gt;x=rayon*cos(Ovar);&lt;/code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;code&gt;y=rayon*sin(Ovar);&lt;/code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//affichage de l'image en (x,y) si i est inférieur à la seconde actuelle&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;code&gt;Ovar = 0var+0dec;&lt;/code&gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
Au final je suis plutot content de moi, parfois je m'étonne même, j'ai eu l'idée jeudi midi, j'y ai passé 30min directement (dont 10 pour créer les images) et en a peine 1h30 le soir même, c'était fini.
&lt;br /&gt;&lt;br /&gt;
La position des éléments est proportionnelle à la résolution d'écran (ca passe même bien en 800x600), les images sont pas trop moches, ca fonctionne sans ramer...
&lt;br /&gt;&lt;br /&gt;
Ca à beau être un projet tout con, je suis de plus en plus rapide à mettre en oeuvre mes idées, c'est pareil pour &lt;a href=&quot;http://themes.jibhaine.fr&quot; hreflang=&quot;fr&quot; title=&quot;Labo Thèmes&quot;&gt;mes thèmes&lt;/a&gt;, plus ca va, moins je perds de temps...&lt;br /&gt;&lt;br /&gt;
Voici donc au final avec mes petites images :
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.jibhaine.fr/public/radioclock/radioclockscreenshot.jpg&quot; title=&quot;RadioClock Screenshot&quot; rel=&quot;lightbox&quot;&gt;&lt;img src=&quot;https://www.jibhaine.fr/public/radioclock/.radioclockscreenshot_s.jpg&quot; alt=&quot;RadioClock Screenshot&quot; style=&quot;margin: 0 auto; display: block;&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
Le deuxième truc c'est :
&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Comment en faire un écran de veille ?&lt;/h3&gt;
&lt;br /&gt;&lt;br /&gt;
J'ai utilisé un petit utilitaire pour en faire un &lt;strong&gt;écran de veille&lt;/strong&gt; sous windows, il s'agit de ScreenSaverExec que j'ai &lt;a href=&quot;http://preverdy.free.fr/preverdy/utilities.html&quot; hreflang=&quot;fr&quot; title=&quot;ScreenSaverExec&quot;&gt;trouvé ici&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
il vous suffit ensuite, après avoir placé le ScreenSaverExec.scr dans C:\Windows\ et extrait le répertoire RadioClock ou vous voulez, (dans program files par exemple) , d'indiquer dans les paramètres de cet écran de veille, l'adresse du fichier radioclock.bat.
&lt;br /&gt;&lt;br /&gt;
Il vous faudra bien sûr &lt;a href=&quot;http://www.java.com/getjava/&quot; title=&quot;Java download&quot;&gt;une machine virtuelle&lt;/a&gt; Java d'installée...
&lt;br /&gt;&lt;br /&gt;
Voili voilou, sur ce , Joyeux Noël à tous...</description>
        
                  <comments>https://www.jibhaine.fr/post/2007/12/22/RadioClock#comment-form</comments>
          <wfw:comment>https://www.jibhaine.fr/post/2007/12/22/RadioClock#comment-form</wfw:comment>
          <wfw:commentRss>https://www.jibhaine.fr/feed/atom/comments/168</wfw:commentRss>
              </item>
      </channel>
</rss>
