Son bizarrement grave

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #29972
    zisquier
    Participant

    Hello Targhan !

    Bon je suis en train d’essayer de comprendre Arkos Tracker, j’ai fait d’ailleurs 2 streams dessus avec les gens qui m’aidaient sur des trucs. J’ai pas mal avancé surtout grace à l’import MIDI ! Je suis en train de faire un Zelda CPC+ et donc forcement j’ai voulu intégrer du son. C’est chose faites, les soundfx sont ok, et le theme principal “in game” aussi.

    Seulement j’ai voulu explorer les subsongs, dans Arkos même aucun souris, j’exporte comme d’habitude avec le player AKG. Et au lieu du ld a,0 on choisit la chanson suivante avec un ld a,1.
    Mais c’est comme si le son était genre 4 octaves trop bas et ralentit.
    De plus lorsque je souhaite intégrer des arpèges, nickel dans Arkos, mais même soucis à la lecture dans le jeu, et pourtant j’utilise bien de fichier de config d’init .asm généré avec celui de la musique.

    Bref j’ai tournée en rond toute l’après midi demander à tout le monde, niet … Donc je vient t’emmerder avec çà du coup 🙂

    #29973
    Targhan
    Keymaster

    Salut,

    Peux-tu m’envoyer le AKS et tes essais assembleurs pour jouer la musique ? Mon contact est dans la rubrique du même nom. Merci !

    #29974
    zisquier
    Participant

    Et bien écoute après plus de 4h de stream hier soir et avec l’aide de la bande à Siko, on a trouvé ! il y avait 2 nop que le source du playerAKG écrivait dans la partie “stopSoundEffect”.
    J’avais mis partout un ld a,4 (reg a pour désigner le n° du SFX à stopper). Ce qui causait un gros bug dans le player. Résolut en faisant :

    ld 	c,2 
    call 	PLY_AKG_StopSoundEffectFromChannel

    Alors j’ai du mal à comprendre car dans ton tuto tu met le reg a :

     ld a,0   ;Channel (0-2)
     call PLY_AKG_StopSoundEffectFromChannel

    Car pour sélectionner un n° de sfx c’est le reg a, pour le channel c’est le reg c
    mais pour l’arrêter via le channel ce n’est plus le reg c mais le reg a selon l’exemple.
    Bref c’est assez confus pour un noob comme moi.

    Bon le principal c’est que tout soit rentrée dans l’ordre : mes sfx et mes subsongs sont ok, mais c’était vraiment pas simple ! (j’ai aussi découvert que le player “s’agrandissait” quand par exemple on rajoutait dans la musique un effet arpège)

    #29975
    Targhan
    Keymaster

    Ahhh, je crois que je comprends. A mon avis tu te trompes ! PLY_AKG_StopSoundEffectFromChannel stoppe le son d’un CANAL, il n’enlève pas le SON désigné par son numéro !!

    Tes deux octets qui se retrouvent à 0, c’est parce que dans A, tu mets un numéro de son, donc ça va bousiller deux octets, car dans A, il y a une valeur qui n’est ni 0, 1 ou 2.

    Donc, comme dis dans la doc, dans A, 3 valeurs possible : 0, 1 ou 2 (pour canal 1, 2, ou 3).
    Peux-tu confirmer ?

    Par contre, qu’en est-il du bug des subsongs?

    #29976
    Targhan
    Keymaster

    Le player “grandit”, c’est normal, car il est en fait optimisé grace au “player configuration”. Moins tu utilises de features (pitch, arpegges, etc.) et plus le player est petit. Donc si tu ajoutes des choses dans ta musique, le player grandit.

    #29977
    Targhan
    Keymaster

    J’en rajoute une couche, histoire d’être clair.

    “J’avais mis partout un ld a,4 (reg a pour désigner le n° du SFX à stopper)”
    Le voilà, le problème. Dans la doc, c’est clairement écrit :
    ld a,0 ;Channel (0-2)
    Donc valeur de 0 à 2 dans A.

    Moralité : suivre la doc c’est important :).

    Mais surtout, pas la peine de chercher des heures, contacte moi avec un bout de code et je peux t’aider plus rapidement que n’importe qui !

    #29978
    zisquier
    Participant

    Oui j’ai mis le temps, mais comme on désigne le channel par C pour la lecture et que j’ai vu A dans la doc pour stopper le channel du son, alors que A servait en premier lieu à sélectionner un son … tu vois mon embrouille ?

    Alors pour le coup les subsongs fonctionnent donc je touche plus à rien ! lol
    Actuellement çà fonctionne pour stopper un sfx avec ld c,2 (sachant que j’ai plus haut dans ma routine un xor a, car j’efface un event dans ma boucle, donc A est aussi à zero)
    Mais si tu me dit que c’est ld a,2 je vais tester et je te redit.

    #29979
    Targhan
    Keymaster

    >Alors pour le coup les subsongs fonctionnent donc je touche plus à rien !
    J’aurais voulu en savoir plus. Qu’as-tu changé pour que ça fonctionne ?

    >Actuellement çà fonctionne pour stopper un sfx avec ld c,2
    Non, c’est très grave ! C n’est PAS utilisé. Tu as une valeur de A qui est “fantôme”, c’est-à-dire que tu ne connais pas sa valeur, donc si ça marche, c’est juste un coup de chance ! Et ça pourra très bien planter aléatoirement. Fait comme écrit dans la doc ! En assembleur, ça ne pardonne pas.

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.