Chargement...
 
Skip to main content

4 - Toutes les autres applications, les émulateurs...


Du dessin au son, Wacom et MIDI

Articles: 21 France
Salut à tous !

Je suis tombé il y quelque temps déjà sur une vidéo qui m'avait marqué, à propos d'un instrument créé avec par un certain Nicolas d'Alessandro appellé le "handsketch"...Et croyez le ou non je crois que je suis tombé amoureux de cet instrument !

La vidéo :
http://vimeo.com/69538779

Je m'étais renseigné un petit peu sur la bête et l'objet est en fait une tablette Wacom haut de gamme, pimpé (c'est ça les lignes), et assemblé à un Iphone (ou Ipod j'en sais rien).
Je laisse mijoter quelques temps et là, qu'est-ce que c'est pas quoi donc que je vois d'occasion en magsin : Une vieille Wacom Bamboo (taille S) a vendre pour 1/4 du prix (bon elle a 4ans, mais est en parfait état ❗.

Je retourne donc me renseigner sur le handsketch dans l'espoir de pouvoir m'en bricoler un, je vois que le mec est à fond Apple (comme pas mal de musiciens d'ailleurs, n'est-ce pas U2 😀) et que si j'ai bien compris il a fait tout ça avec Max d'Ableton Live (ça, c'est pour ceux qui connaissent d'autres OS ;P ).

Je cherche pour Windows, ya des trucs mais c'est pas top (un certain Nicolas Fournel a fait des trucs pas mal mais un peu limité, un Teremin et un controleur, mais le problème du controleur c'est que ya pas de portamento entre les demis-tons).
Mac, ya peu, mais ya (et qui marche bien apparemmentp...

Et sous Linux...A mon grand étonnement (et déception) il y quasi rien, j'ai trouvé deux applications de 2011 et 2012 (respectivement miditouch et tablet2osc) mais je suis incapable de les faire fonctionner (j'ai une erreur lors de la compilation avec $make).

Voilà, j'aurais besoin de connaisseurs et/ou de passionnés comme moi cette drôle de bidouille pour réussir à faire ENFIN fonctionner ce truc, qu'on ai un controleur midi, pas chromatique mais continu, avec une tablette graphique qui fonctionne ailleurs que chez la pomme bordel !

Sur ce, c'est à vous 😀
Articles: 19429 France
Les 2 logiciels dont tu parles ont des pages dédiées ici : miditouch et tablet2osc.
Ils ont été créés par shanneton.

C'est quoi tes erreurs de compilation ?
Sous quelle distribution essaies-tu de compiler ?
Articles: 21 France
J'essaye de compiler depuis Tango Studio

Je décompresse, j'ouvre un terminal dans le dossier, je fais qmake ça me done un fichier Makefile, je fais make et ça me retourne :

Copy to clipboard
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp In file included from main.cpp:28:0: mainwindow.h:34:19: fatal error: lo/lo.h: Aucun fichier ou dossier de ce type compilation terminated. make: *** [main.o] Erreur 1


Voilà...sachant que je n'ai aucune connaissance en matière de compilation, j'ai essayé de me reseigner un peu partout (sur ubuntu.fr aussi) et j'ai aussi essayé avec checkinstall comme le conseillait un tuto ici mais...pas de résultats meilleurs...

(désolé si je confond un peu tout c'est assez flou pour moi tout ça)
Articles: 19429 France
Installe le paquet "liblo-dev" puis retente la compilation et dis moi.
Si ca plante, redonne le (nouveau) message d'erreur.
Articles: 21 France
Nickel, j'ai téléchargé le paquet "liblo-dev" et "libxi-dev" et j'ai réussit à compiler. J'avais vu le tuto mais j'avais pas compris qu'il fallait prendre les "-dev".

J'ai pas la tablette avec moi pour l'instant mais j'essaye dès que je rentre chez moi.
Articles: 19429 France
Chouette.
Par curiosité, c'est miditouch que tu as compilé ?
Tiens moi au jus.
Articles: 21 France
Nan j'ai compilé tablet2osc. Miditouch ne veut pas, il me renvoie au make :

Copy to clipboard
/usr/bin/uic-qt4 touchwindow.ui -o ui_touchwindow.h g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp In file included from main.cpp:24:0: touchwindow.h:30:41: fatal error: /usr/include/alsa/asoundlib.h: Aucun fichier ou dossier de ce type compilation terminated. make: *** [main.o] Erreur 1

Articles: 19429 France
Installe le paquet "libasound2-dev" puis retente la compilation et dis moi.
Si ca plante, redonne le (nouveau) message d'erreur.
Articles: 21 France
Copy to clipboard
/usr/bin/uic-qt4 touchwindow.ui -o ui_touchwindow.h g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o touchwindow.o touchwindow.cpp touchwindow.cpp:79:6: warning: unused parameter ‘event’ [-Wunused-parameter] g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o xtablet.o xtablet.cpp xtablet.cpp: In destructor ‘XTablet::~XTablet()’: xtablet.cpp:77:18: warning: possible problem detected in invocation of delete operator: [enabled by default] xtablet.cpp:77:18: warning: invalid use of incomplete type ‘struct _XDisplay’ [enabled by default] In file included from ./xtablet.h:40:0, from xtablet.cpp:26: /usr/include/X11/Xlib.h:263:8: warning: forward declaration of ‘struct _XDisplay’ [enabled by default] xtablet.cpp:77:18: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined xtablet.cpp: In member function ‘void XTablet::PrepareEvents()’: xtablet.cpp:118:62: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘XID {aka long unsigned int}’ [-Wformat] xtablet.cpp: In member function ‘void XTablet::DispatchEvents()’: xtablet.cpp:218:53: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:220:54: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:222:53: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:224:54: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp: In member function ‘char* XTablet::GetEventName(int)’: xtablet.cpp:337:39: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:338:41: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:339:42: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:340:44: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:341:43: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:342:42: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:343:42: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:344:38: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:345:39: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:346:43: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:347:37: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:348:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:349:39: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:350:47: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:351:43: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:352:44: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:353:42: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:354:40: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:355:41: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:356:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:357:46: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:358:47: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:359:44: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:360:44: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:361:46: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:362:47: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:363:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:364:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:365:47: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:366:46: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:367:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:368:44: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:369:44: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:373:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:375:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:377:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:379:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:381:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:383:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:385:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:387:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:389:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:391:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:393:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:395:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:397:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:399:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:401:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:403:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:405:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:407:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp:409:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] xtablet.cpp: At global scope: xtablet.cpp:437:9: warning: missing initializer for member ‘_FORMAT::type’ [-Wmissing-field-initializers] /usr/bin/moc-qt4 -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. touchwindow.h -o moc_touchwindow.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_touchwindow.o moc_touchwindow.cpp g++ -Wl,-O1 -o miditouch main.o touchwindow.o xtablet.o moc_touchwindow.o -L/usr/lib/i386-linux-gnu /usr/lib/libX11.so.6 /usr/lib/libXext.so /usr/lib/libXi.so /usr/lib/libasound.so -lQtGui -lQtCore -lpthread g++: error: /usr/lib/libX11.so.6: Aucun fichier ou dossier de ce type g++: error: /usr/lib/libXext.so: Aucun fichier ou dossier de ce type g++: error: /usr/lib/libXi.so: Aucun fichier ou dossier de ce type g++: error: /usr/lib/libasound.so: Aucun fichier ou dossier de ce type make: *** [miditouch] Erreur 1


Comment tu sais quel paquet installer suite aux fichier manquants ?
Articles: 19429 France
Pour les 3 premiers, il te faut installer les paquets : libx11-6 , libxext-dev et libxi-dev
Pour le 4eme, c'est bizarre, tu es censé l'avoir déjà installé avec "libasound2-dev". Ça doit être a cause du multi-arch. Donne moi le résultat de :
Copy to clipboard
su find / -name libasound.so

(ça peut être assez long, jusqu'à plusieurs minutes)
A mon avis, il suffira de créer un lien symbolique.

Comment je sais ? Je cherche sur la toile, rien de plus 😊
(et il y en a que je commence à connaitre par cœur)
Articles: 21 France
Il est bien présent mais dans /usr/lib/i386-linux-gnu/libasound.so

Il faut que je le cp dans /usr/lib ?

(j'avais oublié de précisé que j'était pas en 64bit)
Articles: 19429 France
Mr GOODMOOD écrit:
Il faut que je le cp dans /usr/lib ?

Ça pourrait fonctionner mais c'est pas tres propre. Nous allons faire mieux, on va créer un lien symbolique.
Pour ceci, il te faut taper la commande :
Copy to clipboard
ln -s /usr/lib/libasound.so /usr/lib/i386-linux-gnu/libasound.so

Ensuite, tu devrais avoir un fichier (en fait un lien symbolique) "/usr/lib/libasound.so" qui pointe vers "/usr/lib/i386-linux-gnu/libasound.so".
Pour vérifier, après avoir fait la commande, donne moi le retour de
Copy to clipboard
ls -la /usr/lib/libasound.so

Articles: 21 France
La première commande m'a retouré :
"ln: impossible de créer le lien symbolique « /usr/lib/i386-linux-gnu/libasound.so »: Le fichier existe"

J'ai donc inversé la commande
Copy to clipboard
ln -s /usr/lib/i386-linux-gnu/libasound.so /usr/lib/libasound.so


Là ça a marché.

La deuxième commande me renvoie

Copy to clipboard
lrwxrwxrwx 1 root root 36 sept. 28 12:13 /usr/lib/libasound.so -> /usr/lib/i386-linux-gnu/libasound.so


Je réesaye un make, l'application ne me renvoie plus
Copy to clipboard
g++: error: /usr/lib/libasound.so: Aucun fichier ou dossier de ce type


Donc je vais faire la même opération avec les 3 autres fichiers manquants (libX11.so.6, libXext.so et libXi.so) et je reessaye une compilation.
Articles: 21 France
Ok, compilation réussie mais je n'arrive absolument pas à utliser les logiciel. Miditouch se ferme lorsque je clique sur Start (et QJackCtl ne détecte aucun port midi) et pour OSC il faut normalement utiliser dans le terminal la commande "tablet2osc" que l'on me renvoie comme introuvable...

Je commence à croire que j'ai pas de chance...
Articles: 19429 France
Bon, c'est chouette si ca compile !

Pour le "ln -s /usr/lib/i386-linux-gnu/* /usr/lib", non je ne pense pas que ce soit une bonne idée car c'est un peu bourrin comme système. Je viens de faire un rapport de bogue au développeur, on verra bien s'il répond.

Tiens moi au jus.
Articles: 21 France
Donc j'arrive à lancer de manière stable miditouch, et je crois que j'arrive également à lancer tablet2osc comme le dit la notice.
(Je dit je crois parce-que la commande tablet2osc n'existe pas chez moi et je n'arrive pas à l'installer. J'utilise donc en étant dans le répertoire qui contient tablet2osc
Copy to clipboard
ex tablet2osc"Wacom Bamboo blablabla....

au lieu de
Copy to clipboard
tablet2osc"Wacom Bamboo blablablabla...

J'arrive de cette manière à lancer l'application dans le terminal.

MAIS !!

C'est bien beau de réussir à lancer une application mais je ne sais pas récupérer le signal MIDI ou OSC.

Je suis passé par QJackCtl mais dans l'onglet MIDI je ne vois pas s'afficher miditouch, je le vois dans l'onglet ALSA mais je ne sais pas quoi en faire après...
J'ai réussi à connecter miditouch et amSynth par ALSA mais je sais pas comment faire pour me connecter à un synthé MIDI (Yoshimi par exemple)...

(NB : miditouch c'est un peu n'importe quoi chez moi, au lieu d'avoir la gamme une seule fois sur toute la largeur de la tablette je l'ai un vingtaine de fois -_-' du coup c'est pas précis ! je crois que j'ai une note par valeur de position X et que du coup la gamme se répète. Avec une tablette qui a plus de 1000dpi c'est vraiment impossible de faire quoi que ce soit qui n'ai pas un air de "musique expérimentale"...)

Quant à tablet2osc, je n'arrive rien à avoir DU TOUT !
(Je précise que je ne connais strictement rien de la norme OSC 😀)

Bref un peu d'aide serait la bienvenue :/
Articles: 19429 France
Mr.GOODMOOD écrit:
Je suis passé par QJackCtl mais dans l'onglet MIDI je ne vois pas s'afficher miditouch, je le vois dans l'onglet ALSA mais je ne sais pas quoi en faire après...
J'ai réussi à connecter miditouch et amSynth par ALSA mais je sais pas comment faire pour me connecter à un synthé MIDI (Yoshimi par exemple)...

Il va te falloir utiliser a2jmidid pour faire le lien entre ALSA-MIDI et JACK-MIDI.

Pour OSC, le mieux est de commencer par la lecture de la page OSC.
Articles: 21 France
Ok, pour le ASLA-MIDI a2jmidi_bridge dans le terminal et ça marche nickel !
Par contre pour les notes c'est toujours pas ça :/

Pour le OSC, j'ai téléchargé le logiciel IanniX que semble utiliser shanneton. Je vais essayer de faire marcher tout ça ensemble maintenant.

Je te tiens au jus ;D
Articles: 19429 France
Avec plaisir! 😊