{"id":3461,"date":"2020-05-25T20:28:26","date_gmt":"2020-05-25T18:28:26","guid":{"rendered":"https:\/\/ceo.oric.org\/?p=3461"},"modified":"2020-05-25T20:28:26","modified_gmt":"2020-05-25T18:28:26","slug":"les-enveloppes-du-psg-8912","status":"publish","type":"post","link":"https:\/\/oric.bqtt.net\/index.php\/2020\/05\/25\/les-enveloppes-du-psg-8912\/","title":{"rendered":"Les enveloppes du PSG 8912"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>par Andr\u00e9 C.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cet a<em>rticle fait suite \u00e0 &#8220;PLAY, MUSIC, SOUND&#8221;, paru en avril 2000, dans le CEO-mag n\u00b0119-120 page 35 \u00e0 39. Mais il est plus particuli\u00e8rement consacr\u00e9 aux enveloppes du PSG 8912.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/oric.bqtt.net\/wp-content\/uploads\/2020\/05\/ENVELOPs.gif\" alt=\"\" class=\"wp-image-3466\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;Oric permet de g\u00e9n\u00e9rer deux sortes de sons\u00a0: Soit des sons continus dont on peut fixer (entre autre) le volume sonore, soit des sons complexes dont le volume \u00e9volue avec le temps selon un profil appel\u00e9 &#8220;enveloppe&#8221;. Par exemple, l&#8217;enveloppe du fameux PING est une rampe descendante allant du volume maximum \u00e0 z\u00e9ro : <strong>\\<\/strong><\/p>\n\n\n\n<h3 class=\"has-text-align-center wp-block-heading\">Probl\u00e8mes de n\u00b0 d&#8217;enveloppe<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pour le registre &#8220;Num\u00e9ro de l&#8217;enveloppe&#8221;, le PSG 8912 accepte des valeurs de #00 \u00e0 #0F soit 16 possibilit\u00e9s (voir &#8220;L&#8217;Oric \u00e0 nu&#8221; de Fabrice Broche, page 23). Mais certaines valeurs donnent des r\u00e9sultats identiques : d&#8217;une part #00, #01, #02, #03, #9 et d&#8217;autre part #04, #05, #06, #07, #0F. Cela ram\u00e8ne le nombre r\u00e9el d&#8217;enveloppes \u00e0 8 (voir tableau page suivante).<br>Mais 7 enveloppes seulement sont d\u00e9crites dans le manuel de l&#8217;Oric-1 (page 111) et dans celui de l&#8217;Atmos (page 124). En fait les concepteurs de la commande PLAY ont fait un mauvais choix : La table pour de conversion des valeurs de 0 \u00e0 7 de la commande PLAY en valeurs de #00 \u00e0 #FF \u00e0 envoyer au PSG (soit : #00, #00, #04, #08, #0A, 0B, #0C et #0D) fait l&#8217;impasse sur l&#8217;enveloppe #0E, tandis que l&#8217;enveloppe #00 y figure (inutilement) deux fois ! (cf. &#8220;L&#8217;Oric \u00e0 nu&#8221;, page 380).<\/p>\n\n\n\n<h3 class=\"has-text-align-center wp-block-heading\">Probl\u00e8mes de profils<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La forme de ces 16 enveloppes est un peu d\u00e9licate \u00e0 comprendre. Comme d\u00e9j\u00e0 indiqu\u00e9, leur num\u00e9ro va de #00 \u00e0 #0F, soit en binaire, de 0000 0000 \u00e0 0000 1111. Ce num\u00e9ro pilote en fait 4 param\u00e8tres correspondants aux bits b0 \u00e0 b3 (actif lorsqu&#8217;ils sont mis \u00e0 un) :<br>\u25cf Bit0 (HOLD) : Si 0 = r\u00e9p\u00e8te ind\u00e9finiment le profil initial, si 1 = maintient (HOLD) ind\u00e9finiment le dernier son.<br>\u25cf Bit1 (ALT) : Si 0 = garde profil initial, si 1 = ALTerne front montant et front descendant.<br>\u25cf Bit2 (ATT) : Si 0 = ATTaque avec un front initial descendant, si 1 = ATTaque avec un front initial montant.<br>\u25cf Bit3 (CONT) : Si 0 = son limit\u00e9 dans la dur\u00e9e, si 1 = son CONTinu.<br>En fait il n&#8217;y a que deux profils de base : Rampe descendante (ATT = 0, soit <strong>\\<\/strong>) et rampe montante (ATT = 1, soit <strong>\/<\/strong>). Le profil peut alors en rester l\u00e0 (CONT = 0) ou le son \u00eatre prolong\u00e9 (CONT = 1). Il y a deux mani\u00e8res de le prolonger : soit le dernier son est maintenu (HOLD = 1), soit le profil est r\u00e9p\u00e9t\u00e9 (HOLD = 0). Enfin, si le profil est r\u00e9p\u00e9t\u00e9, il peut soit garder sa forme initiale (ALT = 0, la forme est r\u00e9p\u00e9t\u00e9e telle quelle et on a alors un r\u00e9sultat en dents de scie (<strong>\/\/\/\/<\/strong> ou<strong> \\\\\\\\<\/strong>), soit la forme est altern\u00e9e (ALT = 1) et on a alors un r\u00e9sultat en <strong>\\\/\\\/\\\/<\/strong> ou en <strong>\/\\\/\\\/\\<\/strong> selon que l&#8217;on commence par un front descendant ou un front montant.<br>Certaines enveloppes me laissent songeur (par exemple l&#8217;enveloppe #0B : rampe descendante qui se termine par un niveau sonore nul mais dont le niveau maintenu est haut ou \u00e0 l&#8217;inverse l&#8217;enveloppe #0F : la rampe monte jusqu&#8217;au volume maximum, suivi par un niveau maintenu bas ! En fait ce niveau bas est inaudible et on est ramen\u00e9 \u00e0 l&#8217;enveloppe #04 Le fichier ENVELOP.TAP qui accompagne cet article vous permettra d&#8217;\u00e9tudier vous-m\u00eame ce que cela donne. Dans cette d\u00e9mo, le PSG 8912 acceptant des valeurs de #00 \u00e0 #0F j&#8217;ai retenu ces valeurs pour tester les 16 enveloppes. C&#8217;est le moment de vous faire l&#8217;oreille\u2026<br>Pour ma part, je suis arriv\u00e9 \u00e0 la conclusion suivante :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-subtle-light-gray-background-color has-background\"><tbody><tr><td>n\u00b0 pour<br>le PSG<\/td><td>n\u00b0 pour PLAY<\/td><td>Description et profil<\/td><\/tr><tr><td>#00 *<\/td><td>0 &amp; 1<\/td><td>Rampe descendante puis arr\u00eat <strong>\\<\/strong><\/td><\/tr><tr><td>#04 *<\/td><td>2<\/td><td>Rampe montante puis arr\u00eat <strong>\/<\/strong><\/td><\/tr><tr><td>#08<\/td><td>3<\/td><td>R\u00e9p\u00e9tition de la rampe descendante <strong>\\\\\\\\<\/strong><\/td><\/tr><tr><td>#0A<\/td><td>4<\/td><td>Rampe descendante, puis rampes altern\u00e9es <strong>\\\/\\\/\\<\/strong><\/td><\/tr><tr><td>#0B<\/td><td>5<\/td><td>Rampe descendante, puis plateau haut continu<strong>\\ \u035e<\/strong><\/td><\/tr><tr><td>#0C<\/td><td>6<\/td><td>R\u00e9p\u00e9tition de la rampe montante <strong>\/\/\/\/<\/strong><\/td><\/tr><tr><td>#0D<\/td><td>7<\/td><td>Rampe montante, puis plateau haut continu<strong> \/ \u035e<\/strong><\/td><\/tr><tr><td>#0E **<\/td><td>.<\/td><td>Rampe montante, puis rampes altern\u00e9es <strong>\/\\\/\\\/<\/strong><\/td><\/tr><\/tbody><\/table><figcaption>Les diff\u00e9rentes enveloppes g\u00e9r\u00e9e par le PSG 8912<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Note : Dans ce tableau, les num\u00e9ros d&#8217;enveloppe \u00e0 envoyer au PSG figurent en hexad\u00e9cimal, tandis que les num\u00e9ros destin\u00e9s \u00e0 la commande Basic PLAY figurent en d\u00e9cimal. Il s&#8217;agit seulement d&#8217;un artifice de pr\u00e9sentation.<br>Note *: Pour le PSG, les num\u00e9ros d&#8217;enveloppe #00, #01, #02, #03 et #9 sont identiques. Idem pour les num\u00e9ros #04, #05, #06, #07 et #15. Les enveloppes #09 <strong>\\ _ <\/strong>et #0F<strong> \/_<\/strong> se terminent par un niveau bas continu donc inaudible et on est ramen\u00e9 aux enveloppes #00 et #04 respectivement.<br>Note **: Cette enveloppe n&#8217;est pas accessible avec PLAY.<\/p>\n\n\n\n<h3 class=\"has-text-align-center wp-block-heading\">Dur\u00e9e de l&#8217;enveloppe<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Derni\u00e8re ombre au sujet des enveloppes : Le registre &#8220;P\u00e9riode de l&#8217;enveloppe&#8221; du PSG 8912. Ce terme de &#8220;p\u00e9riode&#8221; entra\u00eene une confusion avec le m\u00eame terme utilis\u00e9 pour la commande SOUND pour d\u00e9signer la hauteur du son \u00e0 g\u00e9n\u00e9rer.<br>En fait, ce param\u00e8tre fixe la dur\u00e9e des enveloppes. Mais son usage n&#8217;est pas \u00e9vident car sur les 8 enveloppes existantes, seules 2 ont une dur\u00e9e d\u00e9termin\u00e9e, les 6 autres durent sans fin (jusqu&#8217;\u00e0 ce qu&#8217;on envoie de nouveaux param\u00e8tres au PSG).<br>J&#8217;ai \u00e9crit plus haut &#8220;il n&#8217;y a que deux profils de base : Rampe descendante <strong>\\<\/strong> et rampe montante <strong>\/<\/strong>&#8221; et justement le param\u00e8tre &#8220;dur\u00e9e&#8221; fixe la dur\u00e9e de ces rampes. Dans le cas o\u00f9 les rampes sont r\u00e9p\u00e9t\u00e9es sans fin, leur dur\u00e9e individuelle est celle indiqu\u00e9e par le param\u00e8tre &#8220;dur\u00e9e&#8221;.<br>Dans &#8220;L&#8217;oric \u00e0 nu&#8221; page 23, Fabrice Broche indique que ce param\u00e8tre &#8220;va de #0000 \u00e0 #FFFF et qu&#8217;il faut multiplier par 16 pour avoir la p\u00e9riode en \u00b5s, soit de 0 \u00e0 1 seconde environ&#8221;. En r\u00e9alit\u00e9, c&#8217;est par 256 qu&#8217;il faut multiplier. Comme tout un chacun peut le v\u00e9rifier, la dur\u00e9e des enveloppes va de 0 \u00e0 16 secondes environ. Avec la dur\u00e9e maximum #FFFF, on a 65535&#215;256 = 16776960 \u00b5s, soit un peu plus de 16 secondes. Et c&#8217;est bien cela qu&#8217;on obtient en pratique lorsqu&#8217;on envoie #FFFF au PSG 8912.<br>C&#8217;est encore diff\u00e9rent avec la commande Basic PLAY, qui permet (entre autres) de fixer la dur\u00e9e l&#8217;enveloppe \u00e0 utiliser. PLAY accepte des valeurs de 0 \u00e0 #7FFF (32767), ce qui g\u00e9n\u00e8re des sons durant environ 16 s. Pour toute valeur sup\u00e9rieure \u00e0 #7FFF, le PSG ne prend pas en compte le bit de poids le plus fort. Ainsi #8000 est ramen\u00e9 \u00e0 #0000 et #FFFF est ramen\u00e9 \u00e0 #7FFF, c&#8217;est-\u00e0-dire environ 16 s.<\/p>\n\n\n\n<h3 class=\"has-text-align-center wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;esp\u00e8re que cet article vous donne toutes les clefs pour utiliser des enveloppes dans la production de sons avec votre Oric. Il n&#8217;en reste pas moins que l&#8217;usage de ces enveloppes n&#8217;est pas \u00e9vident et il faut t\u00e2tonner avant d&#8217;obtenir ce que l&#8217;on d\u00e9sire. Mais quel plaisir de combiner plusieurs enveloppes \u00e0 la suite les unes des autres pour produire un son complexe, comme par exemple le lancement d&#8217;un missile, le sifflement de sa trajectoire et son explosion au contact de la cible ! Le PSG 8912 est un beau jouet, pour peu que l&#8217;on soit patient\u2026<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/oric.bqtt.net\/wp-content\/uploads\/2020\/05\/Envelop.zip\">Envelop.zip<\/a><a href=\"https:\/\/oric.bqtt.net\/wp-content\/uploads\/2020\/05\/Envelop.zip\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>par Andr\u00e9 C. Cet article fait suite \u00e0 &#8220;PLAY, MUSIC, SOUND&#8221;, paru en avril 2000, dans le CEO-mag n\u00b0119-120 page 35 \u00e0 39. Mais il est plus particuli\u00e8rement consacr\u00e9 aux enveloppes du PSG 8912. L&#8217;Oric permet de g\u00e9n\u00e9rer deux sortes de sons\u00a0: Soit des sons continus dont on peut fixer (entre autre) le volume sonore, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3466,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[338,346,347,348,22,320],"tags":[856],"class_list":["post-3461","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-338","category-assembleur","category-atmos","category-basic","category-ceomag","category-tap-file","tag-psg-8912"],"_links":{"self":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts\/3461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/comments?post=3461"}],"version-history":[{"count":0,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts\/3461\/revisions"}],"wp:attachment":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/media?parent=3461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/categories?post=3461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/tags?post=3461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}