Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

1 - Le matériel et les pilotes ALSA, FFADO, ...

Dernier post

[résolu] patchage de aseqjoy

nitz utilisateur non connecté
Salut tout le monde,

je cherche à modifier le code source de aseqjoy afin que les boutons du joystick envoient des control change (et/ou des program change, mais on verra ça dans un deuxième temps), et non des channel assign comme c'est le cas dans la version proposée par l'auteur.

Voici la portion de code qui, à mon avis, est à modifier, et voici ce que je propose. Je ne suis pas programmeur, je connais assez bien PHP mais presque pas C, n'hésitez pas à me donner votre avis sur mon code.

ATTENTION je ne suis pas programmeur ! Testez ce code à vos risques et périls.

case JS_EVENT_BUTTON:
if(js.value){
   current_channel=js.number+1;
   if(verbose) { printf("Switched to MIDI channel %i.\n", current_channel); }
}
break;


case JS_EVENT_BUTTON:	

if (js.value){ 

/* si le boutton était sur OFF (valeur 0), on le met sur ON (valeur 127), 
si le bouton était sur ON (127), on le met sur OFF (0) */

if(values[js.number].last_value == 0){ val_i = 127; 
if (verbose) { printf("Controller %i is now ON.\n", values[js.number].controller, 127); }
}

else{ val_i = 0; if (verbose) { printf("Controller %i is now OFF.\n", values[js.number].controller, 127); }
}

snd_seq_ev_set_controller(&ev, current_channel, values[js.number].controller, val_i);
snd_seq_event_output_direct(seq_handle, &ev);	

}

break;


EDIT : cette modif ne fonctionne pas correctement, le changement ne se fait pas...

A+
Nico

nitz utilisateur non connecté
A la réflexion, je crois que j'ai pris un chemin un peu difficile pour pas grand chose : est-ce que j'ai vraiment besoin de ces boutons on/off ? Ca peut servir, mais pour commencer je peux me contenter de program changes ! Pour les 'triggers' on verra dans un deuxième temps.

Et là, c'est plus facile, et j'ai réussi à patcher aseqjoy !

Voici la portion de code source à placer :

case JS_EVENT_BUTTON:	

if (js.value){ 

/* send program change */

snd_seq_ev_set_pgmchange(&ev, current_channel, js.number);
snd_seq_event_output_direct(seq_handle, &ev);
if (verbose) { printf("Program Change sent : %i\n", js.number); }

}

break;


Après quelques recherches, je suis tombé sur cette page : http://www.alsa-project.org/alsa-doc/alsa-lib/group_seq_middle.html qui liste les commandes qui permettent d'envoyer du midi à Alsa. A partir de là tout devient facile et envisageable !

Maintenant, mes boutons envoient leur numéro comme program change.

TODO :
- Faire que certains boutons envoient des program changes
- Faire que deux de ces boutons servent de bank up / bank down (program +1 / -1)
- Faire que certains de ces boutons se comportent comme des interrupteurs (triggers) on /off, soit en midi 0 / 127.
- permettre l'édition des paramètres des boutons au début de la boucle aseqjoy
- penser à un éditeur graphique pour aseqjoy ?

Nota : je place le sujet en résolu, mais je posterai certainement mes updates ici. Néanmoins, lorsque mon projet ser aplus abouti (créer un contrôleur midi à pédale à partir de vieux joysticks et volents/pédaliers de jeu), je pense faire une page de wiki.

pianolivier utilisateur non connecté France
tu devrai regarder du coté de mididings, qui peut t'aider dans les démarches suivantes :
Citation :
Faire que deux de ces boutons servent de bank up / bank down (program +1 / -1)
Faire que certains de ces boutons se comportent comme des interrupteurs (triggers) on /off, soit en midi 0 / 127.


beau boulot en tout cas, ca donne envie...wink

nitz utilisateur non connecté
Merci ! Ce n'est pas grand chose, pour le moment... Pour mididings, je me suis pas encore penché dessus, je vais m'y mettre, merci du conseil.

Édition admin Olinuxx - 18 août 2013 : sujet fermé car [résolu].

Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

olinuxx, 13:17, dim. 15 Sep 2019: Bonjour et bienvenue à wwp et à Kraod cool
sub26nico, 22:18, sam. 14 Sep 2019: Salut et bienvenue à Gretsh56 :-)
olinuxx, 13:44, sam. 14 Sep 2019: Bonjour et bienvenue à T-Yo cool
PenZyh, 16:09, mar. 10 Sep 2019: Merci ^^
olinuxx, 16:08, mar. 10 Sep 2019: Bienvenue e bonjour également à PenZyh cool
olinuxx, 14:47, mar. 10 Sep 2019: Bonjour et bienvenue à SKUNKLOAD cool
sub26nico, 10:29, lun. 09 Sep 2019: Salut et bienvenue à aldepr :-)
olinuxx, 09:01, dim. 08 Sep 2019: Bonjour et bienvenue à nuka cool
sub26nico, 20:21, jeu. 05 Sep 2019: Salut et bienvenue à smo :-)
olinuxx, 10:31, jeu. 05 Sep 2019: Il est tout beau, il est tout chaud, c'est l'édito de linuxmao ! [Lien]
olinuxx, 20:15, dim. 01 Sep 2019: Bonjour et bienvenue à Gordus cool
olinuxx, 01:46, ven. 30 Aug 2019: Bonjour et bienvenue à leouiche et à Bellus cool