home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 4: The Falcon Archive / nf_archive_four_v1.0.iso / ARCHIVE / WORK / MSX / JINGLE.ZIP / FORMATS.DOC next >
Text File  |  2004-09-25  |  17KB  |  388 lines

  1.  
  2.  
  3.  
  4.                                 Salut,
  5.  
  6.  
  7.  
  8.  
  9.    Ce fichier a pour modeste but de vous expliquer la   structure   des 
  10. fichiers  de  samples qu'utilise Jingle-Mix V.1.00 (c'est  α  dire  les 
  11. fichiers _.SMP, _.AVR, _.DVS et surtout _.JGL).
  12.    Ainsi, si vous ètes programmeur, bidouilleur ou passionnΘ de sons et 
  13. de musique sur Atari (je sais qu'il y en a beaucoup) vous pourrez enfin 
  14. utiliser ces fameux fichiers dans vos crΘations personnelles sans  vous 
  15. planter...
  16.    Bon,  je vais commencer par expliquer quelques notions de base  pour 
  17. les  dΘbutants.  Ceux qui connaissent peuvent directement passer  α  la 
  18. suite...
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.    Dans la rΘalitΘ  le son est  une ondulation de l'air.  Ceux  qui  se 
  27. rappellent  de leurs cours de Sciences-physiques savent qu'une  onde  a 
  28. deux caracteristiques principales : la FrΘquence et l'Amplitude.
  29.  
  30.  Amplitude
  31.     ^                                SchΘma d'exemple
  32.     |                               d'une onde sonore.
  33.     |    .... 
  34.     |  ..    ..
  35.     | .        .              .
  36.     |.          .            . 
  37.    ------------------------------> FrΘquence
  38.     |            .          .
  39.     |             .        .
  40.     |              ..    ..
  41.     |                ....
  42.     |
  43.  
  44.    Lorsque l'on Θcoute un son,  l'onde sonore entre dans notre  oreille 
  45. et  fait vibrer le tympant.  Notre cerveau dΘcode ce signal  reτut  par 
  46. l'oreille et c'est ainsi que l'on entend.
  47.     Les  magnΘtophones fonctionnent exactement comme  notre  oreille  : 
  48. l'onde  sonore  arrive  sur le micro et fait  vibrer  une  membrane  de 
  49. plastique  mou.  Cette membrane est reliΘe α un systΦme Θlectrique  (un 
  50. aimant  dans  une bobine).  Ainsi l'onde sonore se transforme  en  onde 
  51. Θlectrique  (que l'on stocke sur une cassette magnΘtique  ensuite).  Ce 
  52. systΦme  est dit Analogique,  car l'onde Θlectrique est  exactement  la 
  53. mΦme que l'onde sonore...
  54.  
  55.     Sur  Falcon  (et en gΘnΘral sur tout les ordinateurs)  le  son  est 
  56. NumΘrique  (par  opposition α l'Analogique).  C'est α dire  que  l'onde 
  57. sonore va Φtre dΘcodΘe par une puce Θlectronique (dans le Falcon  cette 
  58. puce s'appelle le Codec car elle code et elle dΘcode).  Bon  reprenons, 
  59. l'onde  sonore va Φtre dΘcodΘe par le Codec pour ensuite  Φtre  stockΘe 
  60. sous  forme d'octets dans la mΘmoire RAM de  l'ordinateur.  Pourquoi  ? 
  61. Tout  simplement parce qu'un ordinateur ne peut lire et Θcrire que  des 
  62. chiffres (des octets), alors qu'il ne peut pas lire et Θcrire des ondes 
  63. Θlectriques.
  64. Le chiffre reprΘsentΘ par l'octet correspondra α l'Amplitude
  65. Le nombre d'octets lus ou Θcrit par seconde correspondra α la FrΘquence
  66.  
  67. Un exemple pour mieux comprendre :
  68. Un  sample  en 8 Bit α 25 KHz veut dire que,  pour dΘcrire  ce  sample, 
  69. l'ordinateur  code  l'amplitude sur 8 Bit (1 octet,  donc  les  valeurs 
  70. d'amplitude  iront de 0 α 255) et qu'il y a 25000 amplitudes codΘes  en 
  71. 1 seconde.
  72. Bref, 3 secondes de ce sample prendront 3*1*25000=75000 octets en RAM.
  73.  
  74. Un autre exemple pour vΘrifier que vous avez bien compris :
  75. Un  sample en 16 Bit α 50 Khz veut dire que,  pour dΘcrire  ce  sample, 
  76. l'ordinateur  code l'amplitude sur 16 Bit (2 octets,  donc les  valeurs 
  77. d'amplitude seront beaucoup plus prΘcises car elles iront de 0 α 65535) 
  78. et qu'il y a 50000 amplitudes codΘes en 1 seconde.
  79. Bref, 5 secondes de ce sample prendront 5*2*50000=500000 octets en RAM.
  80.  
  81.     Je pense que vous comprendrez aisement que pour avoir un sample  de 
  82. meilleur qualitΘ il faut :
  83. Augmenter le nombre d'amplitude possibles (donc 16 Bit plutot que 8).
  84. Augmenter le nombre d'amplitudes α la seconde (50000 plutot que 25000).
  85.  
  86. Sachez que l'Amiga est en 8 Bit α 28 KHz (pas mal), 
  87.        que le CD  est en 16 Bit α 44 KHz (excellent),
  88.        que le DAT est en 16 Bit α 48 KHz (encore mieux),
  89.     et que le Falcon peut faire du 16 Bit α 50 KHz (the best).
  90.  
  91. Voilα, vous savez beaucoup    de    choses    sur la thΘorie du sample,
  92. maintenant    passez α la    pratique, ce ne sont pas les logiciels qui 
  93. manquent sur Falcon...
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.     Bon,  maintenant  nous  allons  passer α  ce  qui  nous  interresse 
  103. vraiment,  α  savoir la description des principaux fichiers de  samples 
  104. sur Falcon...
  105.  
  106.  
  107. -----------------------------------------------------------------------
  108.                            LES FICHIERS _.SMP
  109.                            ------------------
  110.  
  111.     Ce  sont  les fichiers les plus simples car ils  ne  possΦdent  pas 
  112. d'entΦte. Mais cette simplicitΘ entraine un gros dΘfaut : on ne connait 
  113. rien sur le sample.  C'est  dommage car on ne pourra pas savoir  si  le 
  114. sample est en 16 Bit ou en 8 Bit,  et on ne connaitra pas sa  frΘquence 
  115. (qui pourra trΘs bien Φtre 17 KHz, ou 23 KHz, ou 2 KHz, ou 80 KHz, etc) 
  116. Bref, les fichiers _.SMP ne sont pas trΘs interressants...
  117. En  fait,  les  fichiers _.SMP correspondent aux fichiers  _.SPL  (bien 
  118. connus par ceux qui viennent de l'Atari ST).  La seule diffΘrence entre 
  119. les _.SMP et les _.SPL est la suivante :
  120.  
  121. Dans les _.SMP, l'amplitude est signée (-128   à +127   en 8 Bit)
  122.                                        (-32768 à +32767 en 16 Bit)
  123.  
  124. Dans les _.SPL, l'amplitude est non signée (0 à +255   en 8 Bit)
  125.                                            (0 à +65535 en 16 Bit)
  126.  
  127. NB : Le Codec du Falcon ne lit que les samples signΘs, donc les _.SMP.
  128. -----------------------------------------------------------------------
  129.  
  130.  
  131.  
  132.  
  133.  
  134. -----------------------------------------------------------------------
  135.                          LES FICHIERS _.AVR
  136.                          ------------------
  137.  
  138.     Personnellement,  ce  sont  les fichiers que  je  prΘfΦre. C'est la 
  139. rΘfΘrence  dans  le monde Atari et je pense que cela  devrait  Φtre  la 
  140. rΘfΘrence  sur  tous  les ordinateurs (mais ce n'est pas  le  cas,  car 
  141. l'informatique est dirigΘe par une bande de blaireaux et suivit par une 
  142. bande  de  moutons  abrutis).   Bref,  ne  philosophons  pas,  y'a  des 
  143. possesseurs de PC qui pourraient se sentir visΘs...
  144.    Les _.AVR possΦdent une entΦte qui donne plein d'informations sur le 
  145. sample. En fait, un fichier _.AVR a deux parties distinctes :
  146.  
  147.      ------------ 0
  148.      |          |
  149.      |  ENTETE  |               SchΘma d'un
  150.      |          |              fichier _.AVR
  151.      ------------ 128
  152.      |          |
  153.      |          |
  154.      |          |
  155.      |  SAMPLE  |
  156.      |          | 
  157.      |          |
  158.      |          |
  159.      ------------ ???
  160.  
  161.    Lorsque vous chargez un fichier _.AVR vous devez impΘrativement lire 
  162. l'entΦte et utiliser les informations contenues dans cette entΦte, afin 
  163. de traiter le sample comme il se doit.
  164.  
  165.    Lorsque vous sauvegardez un fichier _.AVR vous devez obligatoirement 
  166. respecter   la   structure   de  l'entΦte, et   valider   le   maxximum 
  167. d'informations sur le sample en question.
  168.  
  169. Structure de l'entΦte :
  170. -----------------------
  171. OFFSET  TAILLE  DESCRIPTION
  172.  0- 3      4    Ces 4 octets doivent TOUJOURS contenir la chaine  ASCII
  173.                 suivante : "2BIT"               (Identificateur)
  174.  4-11      8    8 octets ASCII pour le nom      (Nom du sample)
  175. 12-13      2    $0000=Mono, $FFFF=StΘrΘo        (Nombre de voies)
  176. 14-15      2    $0008=8 Bit, $0010=16 Bit       (Format du sample)
  177. 16-17      2    $0000=Non signΘ, $FFFF=SignΘ    (Signe)
  178. 18-19      2    $0000=Non boucle, $FFFF=Boucle  (Loop)
  179. 20-21      2    $FFFF=Non midi, $FFXX=Note midi (XX=No de la note)
  180. 22         1    $FF                             (Pas important)
  181. 23-25      3    $XXXXXX   (3 octets pour la FrΘquence en Hertz)
  182. 26-29      4    $XXXXXXXX (Longueur du sample (sans l'entΦte))
  183. 30-33      4    $XXXXXXXX (DΘbut de la boucle (si boucle il y a))
  184.                           (sinon remplir avec $00000000 par dΘfaut)
  185. 34-37      4    $XXXXXXXX (Fin de la boucle (si boucle il y a))
  186.                           (sinon remplir avec $00000000)
  187. 38-63      26   Remplir avec des 0 (cette zone est rΘservΘe)
  188. 64-127     64   Remplir avec ce que vous voulez (zone libre)
  189.  
  190. 128-XX     XX   -SAMPLE- (Dans le format indiquΘ dans l'entΦte)
  191.  
  192.  
  193.    Pour la petite histoire, sachez que les _.AVR  viennent de  l'Θquipe 
  194. de  2BIT System (Tony RACINE,  David WOODHOUSE...) lorsque apparut  ST-
  195. REPLAY.
  196.  
  197. -----------------------------------------------------------------------
  198.  
  199.  
  200.  
  201.  
  202.  
  203. -----------------------------------------------------------------------
  204.                           LES FICHIERS _.DVS
  205.                           ------------------
  206.  
  207.     On les appelle les DVSM.  Ce sont des fichiers α entΦte (comme  les 
  208. _.AVR)  mais  contrairement α ces derniers,  ils  sont  beaucoup  moins 
  209. interressants car ils ne prennent en compte QUE les caractΘristiques du 
  210. Falcon.  Certes,  le  Falcon a beau Φtre une des meilleures machine  du 
  211. marchΘ,  il ne faut pas oublier qu'il en existe d'autres dans le  monde 
  212. et  que la mode est α l'Θchange des fichiers entre machines sans  avoir 
  213. besoin  de  passer par des convertisseurs  (par  exemple  les  fichiers 
  214. de  modules _.MOD ou les images _.GIF deviennent universelles, pour  le 
  215. plus grand bonheur de tous).
  216.     Les _.DVS ne seront jamais universelles (mais les  _.AVR  devraient 
  217. l'Φtre depuis longtemps si il n'y avait pas ces merdes de _.WAV).
  218.     Ceci dit,  les DVSM peuvent parfaitement convenir  aux  Falconistes 
  219. bornΘs.  Et  puis bon,  comme les DVSM existent,  il serait stupide  de 
  220. passer α cotΘ. Voici donc la description de leur entΦte...
  221.  
  222. Structure de l'entΦte :
  223. -----------------------
  224. OFFSET  TAILLE  DESCRIPTION
  225.  0- 5      6    Ces 6 octets  doivent  toujours  contenir la  chaine de 
  226.                 caractΦres ASCII suivante : "DVSM  "   (Identificateur)
  227.  6- 7      2    $0010 par dΘfaut            (Longueur de l'entΦte)
  228.  8- 9      2    $00XX                       (FrΘquence du sample)
  229.                 Les différentes valeurs de XX sont :
  230.                    00= 8 KHz (8195 Hz)
  231.                    01=10 KHz (9834 Hz)
  232.                    02=12 KHz (12292 Hz) 
  233.                    03=16 KHz (16490 Hz)
  234.                    04=21 KHz (20770 Hz)
  235.                    05=25 KHz (24858 Hz)
  236.                    06=34 KHz (33880 Hz)
  237.                    07=50 KHz (49170 Hz)
  238. 10         1    $00=Normal, $02=Compression Deltapack
  239. 11         1    $00=8 Bit StΘrΘo, $01=16 Bit StΘrΘo, $02=8 Bit Mono
  240. 12-15      4    Longueur d'un block compressΘ (si compression il y a)
  241.  
  242. 16-XX     XX    -SAMPLE- (dans le format indiquΘ dans l'entète) 
  243.  
  244.  
  245.      Lorsque  vous  chargez  ou  sauvegardez  un   DVSM,   vous   devez 
  246. impΘrativement respecter la structure de l'entΦte.  Bref,  je vous fais 
  247. les mΦmes recommandations qu'avec les _.AVR...
  248.  
  249. -----------------------------------------------------------------------
  250.  
  251.  
  252.  
  253.  
  254.  
  255. -----------------------------------------------------------------------
  256.                           LES FICHIERS _.JGL
  257.                           ------------------
  258.  
  259.    Contrairement aux trois formats prΘcΘdents (_.SMP,  _.AVR et _.DVS), 
  260. les  fichiers  _.JGL ne servent pas α sauvegarder UN seul  sample, mais 
  261. PLUSIEURS samples...
  262. Ces fichiers peuvent Φtre considΘrΘsé comme des Banques-de-samples.
  263.  
  264.     Pour  la petite histoire,  sachez que les _.JGL ont  ΘtΘ  crΘΘ  par 
  265. moi  (Maxx-C  Benny of LogiTron).  Je ne les ais pas crΘΘ dans  le  but 
  266. stupide  et  inutile de faire un format en plus  parmis  tant  d'autres 
  267. (bien que ce soit la mode depuis quelque temps...).  Mais il y avait lα 
  268. un vΘritable besoin pour moi et mon logiciel (Jingle-Mix) de constituer 
  269. des  banques  de  samples (ou plutot je devrais  dire  des  banques  de 
  270. jingles).  Avec les _.JGL, je n'ais pas l'intention de rΘvolutionner le 
  271. monde  musical.  Mais pour ceux qui voudraient faire des  logiciels  du 
  272. mΦme  type  que  Jingle-Mix  ou compatible  _.JGL,  je  vous  donne  la 
  273. structure d'un fichier _.JGL...
  274.  
  275.     Tout d'abord sachez qu'un _.JGL est beaucoup plus  compliquΘ  qu'un 
  276. _.AVR  ou  qu'un _.DVS.  Comprenez qu'il y a une entΦte composΘe  de  2 
  277. parties  bien  distinctes,  et  qu'aprΦs l'entΦte il y  a  les  samples 
  278. stockΘs α la queue leu leu...
  279.     La premiΦre partie de l'entΦte (48 octets) donne  les  informations 
  280. gΘnΘrales sur le fichier _.JGL en question.
  281.     La deuxiΦme partie (2000 octets par dΘfaut) donne les  informations 
  282. sur les samples.
  283.    Bref, cela donne le schΘma suivant :
  284.  
  285.      ----------- 0                        \
  286.      |         | <=== PremiΦre partie      \
  287.      |---------| 48                         |
  288.      |         |                            | EntΦte
  289.      |         | <=== DeuxiΦme partie       |
  290.      |         |                           /
  291.      ----------- 2048                     <
  292.      |         | <=== Sample #1            \
  293.      |- - - - -|                            |
  294.      |         | <=== Sample #2             |
  295.      |         |                            | Samples
  296.      |- - - - -|                            |
  297.      |         | <=== Sample #3             |
  298.      |- - - - -|                            |
  299.      |         | <=== Sample #4            /
  300.      ----------- XX                       /
  301.  
  302.     Ca  parait  monstrueux  au dΘbut,  mais lisez  bien  tout  et  vous 
  303. comprendrez...
  304.  
  305. Structure de l'entΦte :
  306. -----------------------
  307. OFFSET  TAILLE  DESCRIPTION
  308.  0- 7      8    Ces 8 octets  doivent  toujours  contenir la  chaine de 
  309.                 caractΦres ASCII suivante : "BENNYJGL" (Identificateur)
  310.  8- 9      2    $0800=2048 par dΘfaut   (Taille de l'entΦte)
  311. 10-13      4    $XXXXXXXX               (Taille des samples)                   
  312. 14-15      2    $0032=50 par dΘfaut     (Nombre de  samples)
  313. 16-47     32    Remplir avec ce que vous voulez (Zone libre)
  314.  
  315. Fin de la premiΦre partie de l'entΦte.  Maintenant nous allons attaquer 
  316. la  deuxiΦme partie (celle qui donne des infos sur les  samples).  Mais 
  317. avant sachez que Jingle-Mix sauve les _.JGL avec 50 samples (c'est pour 
  318. τa  que j'ai mis "50 par dΘfaut" au nombre de samples dans la  premiΦre 
  319. partie de l'entΦte).
  320. Il sauve donc 50 samples MEME LORSQU'IL N'Y EN A PAS 50 ?!?!?
  321. Oui,  car  ainsi  l'entΦte totale fait 2048 octets ce qui  est  trΦΦΦΦs 
  322. pratique (ceux qui programment comprendront pourquoi).
  323.  
  324. Je vais prendre un exemple pour ceux qui n'ont pas tout saisi :
  325. Imaginons que je veuille sauvegarder 14 samples dans un fichier  _.JGL. 
  326. Je ne vais pas bΦtement mettre 14 dans 'Nombre de sample' (offset  14), 
  327. car je vais y mettre 50 (comme c'est indiquΘ par dΘfaut).
  328. Mais j'aurais 50 samples me diront ceux qui ont suivit ?!?
  329. Je leur rΘponds qu'ils ont tout α fait raison, on aura bien 50 samples. 
  330. Mais  pour  arriver α n'avoir que 14 samples on va tout  simplement  en 
  331. annuler 36...
  332. De  quelle  maniΦre  ?  Tout  simplement en  mettant  des  0  dans  les 
  333. informations des 36 samples dont on ne se sert pas...
  334.  
  335.     Les  informations sur les samples sont dans la deuxiΦme  partie  de 
  336. l'entΦte.  Comme  il  y  a  50  samples,  il y  a  50  fois  les  mΦmes 
  337. types  d'informations  qui  se rΘpΦtent.  Je ne vais  dΘcrire  que  les 
  338. informations sur le premier sample.  Vous devez rajouter 40 aux offsets 
  339. pour le sample suivant, et ainsi de suite jusqu'au 50ieme sample...
  340.  
  341. OFFSET  TAILLE  DESCRIPTION
  342. 48-59     12    Nom du sample (avec le point et son extension)
  343. 60-63      4    Adresse du dΘbut
  344. 64-67      4    Adresse de fin
  345. 68         1    Format de l'amplitude ($08=8 Bit, $10=16 Bit, etc)
  346. 69         1    Nombre de voies       ($01=Mono, $02=StΘrΘo, etc)
  347. 70-73      4    FrΘquence en Hertz    ($XXXXXXXX)
  348. 74         1    Signe                 ($00=Non signΘ, $01=SignΘ)
  349. 75         1    Pack/Loop             ($00 par dΘfaut)
  350.                 Sinon $01=Compression
  351.                       $10=Boucle 
  352. 76-87      12   Remplir avec des 0 par dΘfaut (Zone rΘservΘe  pour  les 
  353.                 informations sur la compression ou la boucle)
  354.  
  355. Fin des informations sur le sample #1 (pour l'annuler mettre des 0)
  356.  
  357. 88-127     40   Informations sur le sample #2
  358.  
  359. 128-167    40   Informations sur le sample #3
  360.  
  361. 168-207    40   Informations sur le sample #4
  362.    .        .                .
  363.    .        .                .
  364.    .        .                .
  365.   etc      etc              etc
  366.    .        .                .
  367.    .        .                .
  368.    .        .                .
  369. 2008-2047  40   Informations sur le sample #50
  370.  
  371. Fin de l'entète (ouf!), on passe aux samples
  372.  
  373. 2048-XX    XX   Samples stockΘs α la suite (α la queue leu leu)
  374.  
  375.  
  376.    Et voila, c'est fini, ce fut assez hard mais on y est arrivΘ...
  377. Si  vous  avez  des questions,  vous pouvez  toujours  me  contacter  : 
  378.  
  379. maxxcbenny@hotmail.com
  380.  
  381.                                                     Tchao...
  382.  
  383.                                                   Maxx-C Benny
  384.  
  385. Ecrit le 19/04/94 et mis α jour le 25/09/2004 (10 ans + tard, whaouuu)
  386.  
  387.  
  388.