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]

allany


Mégaphone [Afficher / Cacher]

olinuxx, 23:31, sam. 18 Jan 2020: Bonjour et bienvenue à sebacross et à saintel cool
sub26nico, 12:37, ven. 17 Jan 2020: Salut et bienvenue à dawooda :-)
r1, 18:23, jeu. 16 Jan 2020: @Sylv_01: le logiciel a été ajouté ici : [Lien] n'hésite pas à te/nous faire plaisir en écrivant une page de doc si tu l'utilises :-D
Sylv_01, 10:51, jeu. 16 Jan 2020: Hello et bonne année musicale à tous... Pour info un nouveau soft midi MCMidiPlayer, détecté ici : [Lien] Je ne sais pas si quelqu'un l'avait déjà signalé, alors dans le doute...
bluedid29, 09:31, jeu. 16 Jan 2020: Felicitation olinuxx, c'est top ! :-)
sub26nico, 11:13, mer. 15 Jan 2020: Salut et bienvenue à moncopainalain,1franc50, Dremtheat et L'amiseul :-)
olinuxx, 20:12, lun. 13 Jan 2020: Cette semaine, très bonne nouvelle pour LibraZiK ! [Lien] cool
sub26nico, 10:15, lun. 13 Jan 2020: Salut et bienvenue à saimyx, SLIME et rico05 :-)
sub26nico, 16:14, sam. 11 Jan 2020: Salut et bienvenue à anamix01 :-)
olinuxx, 14:17, sam. 11 Jan 2020: Bonjour et bienvenue à Supertouffe cool
FrMinet, 14:01, mar. 07 Jan 2020: Ca c'est bien gentil... Bonjour à tous et toutes !
olinuxx, 12:58, mar. 07 Jan 2020: Bonjour et bienvenue à FrMinet cool