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]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]


tezere

Mégaphone [Afficher / Cacher]

funroad34, 15:50, lun. 20 Sep 2021: c est surtout lors de la connection que ça rame sinon c 'est correct niveau timming a l'ouverture des pages..
funroad34, 15:43, lun. 20 Sep 2021: slt Oui patience et perseverence...
Houston4444, 11:17, lun. 20 Sep 2021: Ici on apprend la patience, bientôt la cafetière aura terminé sa mission avant que la page soit chargée...
sub26nico, 17:50, dim. 19 Sep 2021: pas de souci ici
funroad34, 14:14, dim. 19 Sep 2021: Bonjour idem chez moi
Geis007, 18:03, sam. 18 Sep 2021: binjch, c'est très lent, en effet !
binjch, 22:51, ven. 17 Sep 2021: Salut c'est hyper lent chez tout le monde là? Ou c'est moi qui ai un problème?
olinuxx, 18:46, jeu. 16 Sep 2021: Bonjour et bienvenue à pierre2 cool
zicstef, 22:40, mer. 15 Sep 2021: Hello, il y a bien longtemps que je n'ai pas eu la joie de passer. Découvert au détour d'un surf: /
olinuxx, 18:30, lun. 13 Sep 2021: [INFO] nouveau compte Diaspora pour linuxmao : [Lien] Venez nous y rejoindre cool
Samuel, 02:44, dim. 12 Sep 2021: [Lien] C'est la video de présentation du futur de VCV RACK, un synthé modulaire
olinuxx, 18:55, jeu. 09 Sep 2021: @dugalandco : utilises le forum pour mener des discussions. Le mégaphone n'est pas utilisé pour des discussions, mais pour informer de façon rapide.