> Méthode trivial (Bit à 1, Port à 3 V, bit à 0 port à 0 V???).
Euh je ne connais pas la valeur en volts mais ça doit être ça
> le fait de faire ça créer une fréquence de 4 Khz tout au l'on du WAV
Ah c'est juste ça, seulement pour les sons à plus de 1 bits? Je croyais que c'était une fréquence de 8 kHz quoi qu'il arrive. S'il n'y a pas de fréquence supplémentaire pour les sons 1 bits, alors pas de pb
Et pour ce qui est de la qualité médiocre du son 1 bit, ça doit être améliorable dans le convertisseur (en particulier en rajoutant du bruit), c'est à mon avis la meilleure méthode sinon on se retrouve effectivement avec des fréquences indésirables.
> J'utilise aucune fonctions en ROM, la fonction d'attente n'est juste une fonction qui diminue virtuellement la fréquence de l'auto int. Je pense réelement que c'est à cause de mettre le port à 100% ou 0% et de ne pas avoir d'intermédiaire.
OK. Evidemment, ça c'est parfaitement normal
> C'est une bonne idée.
Ouais, mais c'est chiant à implémenter (relogements...) => j'ai la flemme de le finir
> Faudrait que tu me montre comment c'est fait, parce que la je suis surpris.
En C, l'équivalent ressemblerait à :
void Int5() {
IO_write(read_stereo_sample());
switch (quick_counter--) {
case 0: decompress_next_4_samples(); quick_counter+=4; break;
case 1: if (!slow_counter--) OldInt5(),slow_counter+=oldfreq; break;
}
}
> Là encore plus surpris. Comment tu fait?????
Ben le but serait de faire :
void Int5() {
IO_write(read_last_event().content);
if (!slow_counter) OldInt5(),slow_counter+=oldfreq; /* pas de '--' ! */
EVENT next=lookahead_next_lowlevel_event();
if ((slow_counter-=next.timeoffset)<0) next.timeoffset-=slow_counter,slow_counter=0,next.content=0;
else {
skip_next_lowlevel_event();
if (!quick_counter--) decompress_next_lowlevel_events();
}
pokeIO(0x600017,1-next.timeoffset);
}
Et on pourrait utiliser une méthode similaire pour jouer du MIDI.