Gestion d'un "gap-buffer" dans un séquenceur MIDI - Algo - Programmation
Marsh Posté le 11-05-2015 à 03:55:30
Donc,
J'ai trois positions de trois curseur, le courant le gauche et le droit.
Les curseurs peuvent prendre des valeurs de 0.0s à 23:59:59.99h.
Donc mon curseur gauche sera à 24h max de mon curseur courant.
Et mon curseur droit à 24h max de mon curseur gauche.
Pour insérer et/ou supprimer des mesure (en spécifiant signature et tempo).
les donnée après insertion sont donc après 48h maximum de zone éditable.
Plutôt !
Voilà, je réfléchissais à voix haute.
Qu'en pensez vous ?
Marsh Posté le 11-05-2015 à 04:02:57
Editable, Editible, Editée !
Je ne sais plus.
En tout cas c'est pas simple.
Peut-être mesurer en mesure et fractions de mesure aussi !
Marsh Posté le 11-05-2015 à 07:09:51
Bonjour,
Je pense que j'ai trouvé un truc pas mal pour avancer, c'est de faire un séquenceur qui donnee l'heure.
On écrit l'heures au fur et à mesure qu'on crée des mesure on boucle toutes les 48h
Dans un autre process on attend l'heure indiquée par le séquenceur.
De l'idée non ?
Marsh Posté le 11-05-2015 à 07:30:57
Pour faire ça : une liste chaîné (circulaire mais c'est pour looper sur 48h) je commence avec :
- une mesure à l'heure 0.0s ;
- une mesure à l'heure 86399.0s ;
- une mesure à l'heure 172799.0s,
et trois pointeurs sur la première mesure.
Je peux alors ajouter autant de mesure la ou je souhaite d'ici 47:59:59.99h.
Qu'en pensez vous ?
S'il vous plait !
Merci.
Marsh Posté le 11-05-2015 à 08:46:15
Je reviens avec du code avec Ada.
Donc, avec Ada.... Un paquetage generique, qui va en fait prendre la durée minimum d'un projet en paramètre.
Code :
|
Après on poura selection pour copier et coller des mesures.
Je sais pas bien si ça tient la route par contre.
Marsh Posté le 11-05-2015 à 13:37:43
Bonjour,
Je sais pas si ça va être efficace mais ça tourne.
D'abord j'ai initialisé ma liste.
Code :
|
J'ai implémenté une fonction set_Next pour passer d'élément en élément.
Code :
|
J'ai initialisé un timeout :
Code :
|
Et écris une fonction interface :
Code :
|
Marsh Posté le 11-05-2015 à 15:34:27
Merci Gilou !
Marsh Posté le 10-05-2015 à 23:18:04
Bonjour,
En réalité, je suis pas encore documenté ou très peu sur le Gap-Buffer dont je souhaiterais trouver une adaptation pour un séquenceur MIDI.
Donc j'ai une ou deux listes de mesures diverses et variées, j'ai une position courante dans une des deux listes, et j'ai deux curseurs à position variable dans les liste pour insérer ou supprimer des mesures.
Les mesures avant la position courante, ne peuvent pas être éditées car elle sont déjà jouées.
Donc, j'avais en tête de créer deux listes de mesures, une marquée "remain" l'autre "exhaust".
Mon buffer ne peut donc se trouver que dans remain.
Je cherche d'avantage d'information sur les gap-buffer, en français.
Je cherche des idée pour gérer mon truc.
S'il vous plait !
Merci.
Je pense,
Peut-être calculer les curseur "left" et "right" relativement à la position courante.
Par exemple, dans la liste remain, on aura toujours right après left et left après courant.
Donc calculer left de courant+N et right de courant+M.
avec courant<N ou M<= fin de séquence.
Ah oui, l'objectif est de pouvoir insérer ou supprimer des mesures dans la liste remain,
et de pouvoir écrire entre les deux curseurs.
Message édité par par l'anneau de l'ia le 10-05-2015 à 23:37:17
---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.