Je viens de retrouver une trace de mes travaux sur le site de Daniel
http://dcmoto.free.fr/forum/messages/592819_0.html
Peut-être cela pourra t'aider. Il y a le source du traitement de la partition et celui de la création du digit en page 2. Le tout commenté
Edit:
J'en profite pour répondre à Fool-duplex (vaux mieux tard que jamais
):
Avec cette routine, je visais les 10-11khz mais la routine de création du digit risque de ruiner cet espoir alors contentons nous de 8khz. Ce serait déjà pas si mal.
Pour info, cette routine est la copie conforme de celle que j'ai codé pour la gamme st-stf. Elle est inspirée du code de la demo froggies over the fence d'OVR (celui du menu). Elle joue la partition à 21khz en utilisant que la moitié de la tm contre 17khz pour l'originale
. J'ai pu la monter jusqu'à 23khz avec un cycle machine complet... Mais pas plus
Pour un simple st dépourvu de blitter c'est déjà pas si mal. Comme sur Thomson, la création du digit prend beaucoup de temps à la machine et plus la fréquence est grande et plus il faut de temps. Donc, la routine a été optimisée au maximum (du moins sur Atari). Le traitement des samples est légèrement différent que sur un player mod traditionnel pour justement gagner un peu de temps.
Pour les commandes, il n'est pas nécessaire de toutes les exporter. Les commandes classiques suffisent amplement dans un premier temps: 1, 2, 3, 4, 6, A, C, D, et F. Les commandes E sont des extensions aux commandes classiques et se traitent de la même manière. Peu utilisées du reste.
A ce propos on pourrait s'inspirer de cette commande pour grappiller quelques octets sur la partition. On aurait donc 3 octets par pistes à traiter au lieu de 4.
Le schéma deviendrait alors:
numéro de commande (1/2 o poids fort)
note (1/2 o poids faible + 1 o)
numéro du sample (1/2 o poids fort)
valeur de la commande (1/2 o poids faible)
Cela déstructure le pattern mais la chose n'est pas impossible. Seul défaut pour le volume (commande C). Il se retrouve codé sur 4 bits et prend donc une valeur de 0 à 15. Il faut voir si c'est pertinent.