Quelques nouvelles: j'ai trouvé la cause profonde
le calcul de la longueur d'un instrument ne marchait pas pour ce MOD. En effet la longueur de répétition + l'offset de répétition étaient plus petits que la longueur totale de l'instrument (normalement c'est identique). J'ai corrigé et ca marche bien bien mieux (dans les limites de 5khz).
J'ai aussi ré-écrit la routine de sous-échantillonage pour qu'elle puisse marcher avec des fractions non entières d'échantillons (par exemple regrouper les échantillons par paquets de 4,17) et traiter bien mieux le rebouclage (reste le cas éventuel où div<1).
En outre pour éviter les imprécisions sur les instruments avec seulement 11 à 32 échantillons thomson, on réduit le sur-échantillonage de sorte qu'il y ait beaucoup plus de données pour définir l'instrument. Typiquement pour ces instruments à problèmes, on passe de 4 échantillons amiga pour un échantillon thomson, à un rapport de 1 pour 1. On gagne ainsi 2 bits de précision et pour la fréquence ca change beaucoup de choses au niveau de la justesse.
Similairement les échantillons qui sont plus gros que 4ko sur thomson, sont sous-échantillonnés (par exemple 8 échantillons amiga pour un chantillon thomson) pour être réduit en taille et gagner de la préciseuse RAM. Cela combiné à une compression LZW inroduite de façon transparente dans l'encodage des "patterns" (ce fut mon travail très intéréssant de ces derniers jours. La compression LZW est finalement très simple) et on arrive à faire tenir en RAM des morceaux qui me faisaient baver devant l'amiga des copains quand j'étais petit. Je vous le laisse découvrir..
Fichier(s) joint(s):
xenon2.zip [63.67 Kio]
Téléchargé 654 fois
A présent j'aimerais bien ajouter la supperposition d'échantillons dans le même octet pour pouvoir convertir des mods encore plus gros. Pour indication, celui-là par exemple fait 357ko sur amiga et 27ko sur thomson