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]



Mégaphone [Afficher / Cacher]

sub26nico, 20:34, jeu. 13 mai 2021: Bonjour et bienvenue à julienm :-)
sub26nico, 11:32, mer. 12 mai 2021: Bonjour et bienvenue à Neelix,Fab74, mager et Moum :-)
sub26nico, 10:25, dim. 09 mai 2021: Salut et bienvenue à ZatGuy et Xdl :-)
r1, 21:23, jeu. 06 mai 2021: Les zigotos de l'édito sont vraiment de super héros !
allany, 07:38, jeu. 06 mai 2021: Héoooo, du bateau ! C'est l'édito, matelots ! [Lien]
eric_p, 21:54, mar. 04 mai 2021: News glanée à l'instant: "Audacity has just joined Muse Group, a collection of brands that includes another popular open source music app called MuseScore" [Lien]
Samuel, 13:56, mar. 04 mai 2021: Dernières 24h pour proposer des idées de thèmes pour les prochaines joutes musicales de linuxmao. C'est par ici [Lien]
sub26nico, 23:09, dim. 02 mai 2021: Salut et bienvenue à citronvert :-)
sub26nico, 16:52, dim. 02 mai 2021: Bonjour et bienvenue à midve :-)
youki, 16:34, ven. 30 Apr 2021: Je ne sais pas si ça a déjà été évoqué. Je regardais par hasard cette vidéo : A et surprise, il y a une version vst3 Linux de ce compresseur gratuit. [Lien]
olinuxx, 12:01, mar. 27 Apr 2021: Bonjour et bienvenue à ThM cool
sub26nico, 23:51, lun. 26 Apr 2021: Salut et bienvenue à prederour, jchmsq et caster33 :-)