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, 19:45, mer. 25 Nov 2020: Bonjour et bienvenue à endymion93 cool
calixtus06, 07:13, mar. 24 Nov 2020: Bonjour et bienvenue à Noxanera ! :-)
sub26nico, 10:40, lun. 23 Nov 2020: Ardour 6.5 est disponible, le bogue d'export a été corrigé
Houston4444, 20:35, dim. 22 Nov 2020: Ardour 6.4 a de serieux soucis selon robin gareus lui-même. Attendez la 6.5 !
sub26nico, 18:00, dim. 22 Nov 2020: Ardour 6.4 est disponible :[Lien]
olinuxx, 14:48, dim. 22 Nov 2020: Bonjour et bienvenue à ykrons cool
olinuxx, 14:47, dim. 22 Nov 2020: @diigitae : [Lien]
diigitae, 02:54, dim. 22 Nov 2020: comment faire pour cloturer mon compte de linuxmao diigitae
olinuxx, 11:40, sam. 21 Nov 2020: LibraZiK-3 dispose à présent d'un live ! [Lien]
Sahaathyva, 20:42, jeu. 19 Nov 2020: Hey!
niquoi, 14:39, jeu. 19 Nov 2020: Merci :-)
olinuxx, 12:31, jeu. 19 Nov 2020: Bonjour et bienvenue à niquoi cool