Fichier ROL
Un fichier .ROL est un type de fichier qui décrit une musique. Il s'apparente aux fichiers MIDI par le fait qu'il décrit l'intention de la musique plutôt que son extension ; les notes sont décrites par des événements plutôt que par un échantillonnage. Toutefois, ses possibilités sont plus limitées.
Il s'agit du format utilisé par le logiciel Visual Composer de la compagnie Ad Lib, développé dans les années 1980 et conçu pour fonctionner avec la carte-son Ad Lib.
Description du format
Tous les champs sont des entiers par défaut. Les champs qui sont marqués «float» sont au format «float» des processeurs 80x86. Le fichier est structuré par les champs suivants, dans l'ordre :
1. Numéro majeur de la version, doit être 0. : 2 octets
2. Numéro mineur de la version, doit être 4. : 2 octets
3. Espace inutilisé : 40 octets
4. Nombre de «tics» par temps : 2 octets
5. Nombre de temps par mesure : 2 octets
6. Échelle de l'éditeur en Y pour le logiciel Visual Composer : 2 octets
7. Échelle de l'éditeur en X pour le logiciel Visual Composer : 2 octets
8. Espace inutilisé : 1 octet
9. Mode de canaux (1 = 9 voix mélodiques+0 voix percussives ; 1=6 voix mélodiques+5 voix percussives) : 1 octet
10. Espace inutilisé, doit être rempli avec des zéros. : 90 octets
11. Remplissage (?) : 38 octets
12. Remplissage (?) : 15 octets
13. Tempo, sous forme d'un nombre à virgule flottante (float en langage C) : 4 octets (float).
14. Nombre de répétitions des champs #15 et #16 : 2 octets
15. Moment où un événement de changement de tempo survient, en «tics» : 2 octets
16. Valeur de multiplication du tempo pour un événement de changement de tempo (de 0.01 à 10.0) : 4 octets (float)
Répéter les champs #17 à #34 pour chacune des 9 (en mode mélodique) ou 11 (en mode percussif) voix :
17. Remplissage (?) : 15 octets
18. Moment de la dernière note+1 pour la voix courante, en «tics». : 2 octets
Répéter les champs #19 et #20 tant et aussi longtemps que la somme de 20 est inférieure à la valeur du champ #18 :
19. Numéro de la note pour un événement de note, de 12 à 107, où 60 donne le do central, 61 donne do#, 62 donne ré, etc. Pour un silence, c'est 0. 2 octets
20. Durée de la note, en «tics» : 2 octets.
21. Remplissage (?) : 15 octets
22. Nombre de répétitions des champs #23 à #26 : 2 octets
23. Moment où un événement de changement d'instrument survient, en «tics» : 2 octets.
24. Nom de l'instrument pour un événement de changement d'instrument, sous forme d'une chaine de caractères fixée à 9 octets : 9 octets
25. Remplissage (?) : 1 octet
26. Inutilisé : 2 octets
27. Remplissage (?) : 15 octets
28. Nombre de répétitions des champs #29 et #30 : 2 octets
29. Moment d'un événement de changement de volume, en «tics» : 2 octets
30. Multiplicateur de volume pour un événement de changement de volume, de 0.0 à 1.0 : 4 octets (float)
31. Remplissage (?) : 15 octets
32. Nombre de répétitions des champs #33 et #34 : 2 octets
33. Moment d'un événement de modification précise de la fréquence des notes, en «tics» : 2 octets
34. Modification précise de la fréquence des notes, de 0.0 à 2.0, où 1.0 veut dire que la note est juste : 4 octets (float)