Alors pour vous surprendre, il est possible de faire n'importe quelle signal avec des ondes carré mais par approximation, donc ce que dit Orion est réalisable mais pas comme son graphique, plutôt niveau son, le problème c'est à cause de jouer en permanence des états rapide du port I/O on superpose une fréquence qui est égale à 1/2 de la bande passante. J'ai réussit à plusieurs fois de sortir du son 2, 4 ,7 bits mais le problème était cette fréquence, c'est pourquoi j'avais abandonner, pour éliminer cette fréquence, il faut au moins une bande passante de 44 KHz car les son de 20 KHz son presque inaudible.
Alors maintenanat Orion_ si tu veut avoir une interruption en même temps que tu joue du son 4 bits, ça doit être possible mais je ne sais pas comment faire, maintenaant si tu te fiche de l'interruption, alors ce que tu dis est réalisable.
Si tu veut je te fait un programme en ASM qui joue du 4 bit? Sans interruption bien sûr.
A savoir que si tu veut du vrai son 4 bits, il faudra automatiquement que tu convertisse des données 8 bits en 4 bits avec un convertisseur comme convertie, ma formule la plus performante est celle-ci pour du 1 bit:
1^(bit_avant|bit_en_cours);
A savoir que le son produit est mieux que du son 1 bit sur PC mais reste très médiocre.
Voilà ce que j'arrivé à faire avec du son 4 bits ou 7 bits, je sais plus dans l'interruption de PolySnd:
http://perso.wanadoo.fr/tisofts/divers/will2.mp3
Si tu regarde les courbes tu verras que par alternances en quelque sorte une fréquence ce superpose.
En 4 bits il me semble que le son reste identique à part les sons grave qui produisent des souffles.
En tout cas test l'exemple madonna dans le dernier pack de PolySnd pour te donner du son 1 bit et si tu veut je te fait un programme sans l'interruption qui joue un WAV en 4 bits.