lol non a la fin de la vidéo j'ai mis la vrai, c'est pas du TO
pour gagner de la place et faire tenir ma boucle dans max 16000 ko (dans une bank), j'ai testé un truc un peu bizarre :
- j'ai mon .wav à 44100 16bits qualité cd (normale quoi)
- je l'ouvre dans Audacity
- je change le Taux du projet Hz à 5000 (le select en bas à gauche dans Audacity)
- en suite Pistes > rééchantillonneer > à 5000 aussi. (là j'ai toujours trop d'octets 40800 echantillons)
- et pour faire tenir mon sample dans max 16000 échantillons, je fais Effets > Etirement glissant et je mets 160% 160% (plus ou moins ! j'adapte)
jusqu'a optenir <= 16000 echantillons
- ensuite Outils > export de données d'echantillons (pour avoir un fichier txt)
- puis j'utilise mon outils web pour créer le fichier .BIN pour TO
ps :selon la boucle de sample que je veux jouer, j'adapte la temporisation (donc la vitesse de lecture, l'injection vers le CNA)
et pour la lecture j'ai une routine que j'appel avec genre une tete de lecture qui lit d'octet en octet avec une temporisation pour lire plus ou moins vite jusque la fin de l'adresse du sample !
Code:
AUDIO_OUTPUT macro
LDA ,X+ * X pointe sur sample, A = valeur digit sample
STA $E7CD * joue le son
endm
Selection du sample à jouer :
Code:
* INI le son a jouer (ici LOOP2.BIN)
LDA #40 * valeur temporisation pour LOOP2.BIN
STA audio_tmp
LDA #8
STA audio_bank
LDX #$A000
STX sample_start
STX audio_tete_lecture
LDX #$DC37 *pour LOOP2.BIN
STX sample_end
Boucle principal du splashscreen :
Code:
splash_screen_loop
JSR play1digitsample
CLRA
JSR JOYS
BCS ecran_intro
JMP splash_screen_loop
Lecture d'un digit sample avec test si fin pour boucler le son :
Code:
********************************************
* play 1 digit sample
********************************************
play1digitsample
PSHS A,B,X,Y
LDA audio_bank *|choix de la bank
STA $E7E5 *|commute la bank
LDX audio_tete_lecture
LEAX 1,X
STX audio_tete_lecture
CMPX sample_end
BEQ play1digitsample_reset
AUDIO_OUTPUT
LDB audio_tmp *temporisation
play1digitsample_TMP DECB
BNE play1digitsample_TMP
LDA #2 *|choix de la bank
STA $E7E5 *|commute la bank
PULS A,B,X,Y
RTS
play1digitsample_reset
LDX sample_start
STX audio_tete_lecture
LDA #2 *|choix de la bank
STA $E7E5 *|commute la bank
PULS A,B,X,Y
RTS
mais cette partie son j'améliorerais à la fin.