Héhé un peu de boulot c'est pas grand chose face à la satisfaction de retrouver ces sons mythiques
(même si la RX5 ne les joue évidemment pas comme un fairlight).
Heu ben voilà mon code source pascal qui fait le boulot déjà:
https://github.com/gligli/rx5usb/blob/m ... arsers.pas" onclick="window.open(this.href);return false;
En gros les fichiers sont au format .IMD, qui a été créé par un certain Dave Dunfield (
http://www.classiccmp.org/dunfield/img/index.htm" onclick="window.open(this.href);return false; ) pour faire des images exactes des disques de vieilles machines. Il y a du code source sur son site qui m'a servi à comprendre le format.
Donc dans l'ordre:
- Je commence par extraire une image binaire brute du fichier .IMD fairlight (fonction ConvertIMDToBinary dans mon code)
- Je lis la liste des fichiers de la disquette, en ne prenant que les entrées valides (fonction TCMI2xDiskParser.ImportFromRawDiskData, le premier 'for' en gros)
- Pour chaque fichier trouvé, je vérifie l'extension, si c'est 'VC', c'est un fichier d'échantillons, et on peut y trouver le numéro du secteur de début de la boucle, du secteur de fin, un flag qui dit si la boucle est activée, et un bloc de 16384 échantillons PCM en format 8bit non signé, (le deuxième 'for' de la même fonction).
- J'enlève la partie silence pur à la fin des échantillons (valeur d'échantillon $80 en hexa)
Là où j'ai bien galéré, c'est que je ne suis pas arrivé à trouver comment est stockée l'information de fréquence d'échantillonage / note de base dans un fichier VC (et pourtant croyez-moi, j'ai cherché !), donc pour le moment, je laisse à l'utilisateur le choix de ces paramètres dans mon appli...