WAV output with patterns information

What is Arkos Tracker? Forums Arkos Tracker forum Feature requests WAV output with patterns information

Tagged: 

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #30531
    hlide
    Participant

    I noted the possibility of outputting a WAV audio file to experiment with an audio manipulation tool I’m writing. However, I need to know at which sample a pattern starts in a sequence and at which sample a loop is marked.

    Would it be possible to create an optional binary file that would be a 64-bit integer sequence:
    – the most significant bit indicates the LOOP marking.
    – the 15 other high order bits indicate the pattern number.
    – the 48 remaining bits indicate the position of the sample at the beginning of the pattern.

    Or maybe a form where I could copy the contents (sample position per pattern being the key for this feature request)?

    That would help the tool to be able to pool recurring pattern sequences, etc.

    I don’t know how complicated it is to have such a possibility.

    Thanks for reading.

    #30532
    hlide
    Participant

    It seems I cannot edit my post.

    “That would help the tool to be able to pool recurring pattern sequences in the WAV file, etc.”

    #30533
    Targhan
    Keymaster

    Hi,

    Sorry for the forum bug :).
    What you are asking for seems *very* specific, so I’m very reluctant in coding things like that, as it would only fit one person.

    However, there might be a solution. You could put events (in the Event column, after the Speed column) where you want (with a number from 1 to 255). Then export this (File > export > export events). This output a source or binary which can be easily parsed. The format is described the package of the software (but by changing the Source Profile, you could generate some kind of DSL). It will basically indicate how much frame one must wait between two events (in 1/50 of a second). The main use of this is to synchronize your prod with events put in the music. But you could divert this to find out when such event is triggered.

    Could that satisfy your need?

    #30534
    hlide
    Participant

    Salut,
    je passe en français pour être sûr de ne pas passer à côté. Ma demande est sans doute spécifique si on la regarde uniquement à travers le prisme WAV. Etant moi-même un développeur, si j’en fait la demande, c’est que je n’ai pas trouvé le code source de ce tracker pour en faire une modification, disons, locale. D’autre part, je considère qu’un outil doit être en mesure d’automatiser les tâches et non de forcer l’utilisateur à reconstruire des méta-données quand celles-ci existent déjà. Je m’explique, la source même de la musique est une suite de patterns. C’est ce que j’appelle une information réflexive et je trouve dommage que l’on soit obligé de récréer cette information.

    S’il existait effectivement une option pour recréer automatiquement des events qui marquent les séparations des patterns alors oui pourquoi pas via l’exportation des events si on peut récupérer précisément le temps et donc la position dans le WAV. Mais s’il faut le faire à la main, alors non parce que c’est récréer de l’information existante (réflexive) avec potentiellement des erreurs.

    Je ne suis pas le musicien qui va composer. Pour moi, l’idéal c’est de lui offrir un environnement préparé pour que ce dernier puisse obtenir le WAV et les informations de pattern et laisser le musicien reconstruire mon jeu et le tester par un simple clic. Et pour ça, j’ai besoin que le tracker soit un peu plus bavard en information.

    Petite parenthèse, je pensais augmenter le fichier WAV – ce format est souple mine de rien – avec un bloc additionnel qui contiendrait effectivement le découpage en pattern avec les positions d’échantillons de séparation pour que mon outil puisse le repérer et s’en servir pour analyser et compresser en fonction de ces données. Mais comme le source du tracker n’apparaît pas disponible, j’ai vite déchanté.

    Comme je ne connais pas la difficulté d’implémentation, je pensais donc demander ici si cela est possible sous quelque forme que ce soit (ça peut se faire indépendamment du WAV en question) du moment que c’est fabriqué automatiquement (et donc sans erreurs potentiels).

    Merci de m’avoir lu jusqu’au bout et désolé si j’aurais dû rester en anglais.

    #30535
    Targhan
    Keymaster

    Tu trouves dommage, certes, mais n’oublie pas que le WAV est un “bonus” et que la cible d’AT est avant tout les players assembleurs, qui eux, possèdent toutes les infos. Le WAV n’a pour le moment été qu’utilisé que pour montrer des previews de travail, ou de poster un truc sur un SoundCloud. Car pour faire un vrai enregistrement, il faut idéalement passer par le hardware.

    Ajouter un marqueur par pattern est une idée que je note, car ça peut être utile, mais on ne m’en a jamais fait la demande.

    D’où les events. As-tu essayé de le faire en regardant les events ? Via ligne de commande, tu peux les exporter, donc ce n’est pas au musicien de le faire (tout comme le WAV). Il aura juste à marquer le début d’une pattern par un Event, n’importe lequel, et il n’aura même qu’à le faire une seule fois, car s’il fait ça sur l’Event Track 0 (celle par défaut), ce sera recopié sur tout le reste de la musique ! Donc très simple.

    Une fois exporté, soit tu parses le binaire (très facile), soit le source directement (encore plus facile vu, il te suffit presque de faire une recherche sur les DW et c’est gagné).

    Et même si avait le source du tracker (ce qui sera fait relativement prochainement), ça ne se serait pas fait en un clin d’oeil. La génération étant bufferisée/resamplée, ce n’est pas si simple de choper le timestamp exact du début de pattern. C’est faisable bien sûr :).

    Tiens moi au courant.

    #30536
    hlide
    Participant

    Je ne parviens pas à créer un event. J’ai bien noté la présence de cette colonne, tenté de cliquer sur l’une des deux cases, taper un chiffre mais rien ne se passe. Je ne parviens pas à trouver dans la documentation du site une information sur comment créer un event.

    Clavier Azerty, Windows 10.

    #30537
    Admin
    Keymaster

    Il faut se mettre en mode Record, sinon on ne peut pas modifier la musique.

    #30538
    Nouille2Feu
    Participant

    Je profite de ce post pour poser la question suivante.

    Seul le player AKG gère les Events ( très utile pour envoyer un digit au psg tout au long d’une frame >> Exemple : OneScreen-colonie 0 ).

    Le problème de l’AKG c’est qu’il n’est pas stable.
    On peut certes se caler avec une synchro en fin de frame cependant la stabilité permet plus de choses en terme de timing.
    Sans parler du premier appel à “PLY_AKG_Play” plutôt long.

    Il existe bien la version AKY en stable mais il ne gère pas les events.

    – Existera t’il une version stable du player AKG ?
    – Existera t’il une version AKY qui renvoi l’information “PLY_AKG_Event” ?

    Note : j’ai bien réussi à stabiliser le player mais alors uniquement compatible avec le track que je voulais jouer. Je m’étendrais pas sur ce que j’ai fais car c’est du travail de cochon.

    #30539
    Targhan
    Keymaster

    1) Il est très très difficile de stabiliser la player AKG, surtout avec les “player configurations” qui enclenchent ou enlèvent des parties du code en fonction de la musique. Ce n’est pas le but de ce player. De plus, s’il était stable, de par sa complexité, il prendrait beaucoup de temps machine. Au final, autant attendre un HALT après avoir joué le player ! C’est ce que je te conseille de faire, ça reviendra plus ou moins au même.
    Pour la stabilité, il faut prendre le player AKY.

    2) Bonne nouvelle, pas besoin de modifier quoi que ce soit pour prendre en compte les events. Il te suffit d’exporter les Events. Le source généré est très simple à lire (et le format est décrit dans le package). Tu auras les durées à attendre (en VBL) entre deux events. Donc tu peux utiliser ces events, même sans utiliser de player d’ailleurs !

    #30540
    Nouille2Feu
    Participant

    Je viens de tester.
    C’est parfait.

    même sans utiliser de player d’ailleurs

    Effectivement, mais pour le coup j’en ai besoin 🙂

    Ha tiens cela me fait penser à une chose.

    Actuellement, il n’existe qu’un event par ligne. Vu que c’est une information sur 8 bits, il serait peut être possible de faire un event par piste/ligne

    Ex :
    86 = Voie 1, Event 6
    A2 = Voie 3, Event 2

    Ok ca limiterait à 16 events mais bon c’est quand même déjà beaucoup ( surtout en terme de mémoire au vu d’un digit )

    C’est juste une idée comme ça.

    Ps : Bon courage pour la futur version d’Arkos Player.

    #30541
    Targhan
    Keymaster

    Content que ça marche. Non, les events par piste n’est pas prévu, ce n’est pas le but. De plus, ton exemple fonctionne car tu as 3 canaux, mais que se passe-t-il pour les musiques avec 6, 9 ou plus?

    Si on en a vraiment besoin, alors autant que le musicien encode l’event lui-même avec un format dont il a besoin. Le code des events est entièrement libre.

    #30542
    Nouille2Feu
    Participant

    Effectivement, désolé j’ai pensé qu’a l’Amstrad de base en oubliant le reste.

    Je n’avais pas du tout fait attention qu’on pouvais modifier les codes des events qui par défaut prennent la valeur de position ce qui au final amène une multitude de possibilité et d’optimisation.

    Encore une fois Merci.

    #30543
    Targhan
    Keymaster

    Euh, je ne vois pas ce que tu veux dire par “la valeur par défaut”. Tu l’entres manuellement donc il n’y a pas de valeur par défaut…

    Ou tu veux peut-être parler du numéro de piste dans le Linker en haut ? Il est à 0 par défaut, mais tu peux bien sûr en créer autant que tu veux, ou garder toujours la même piste (use case pratique : tu mets l’event 01 en première ligne dans le Pattern Viewer, et tu auras ainsi un signal pour détecter simplement le début de chaque pattern).

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