Petit projet associatif détente (clavier MIDI sur rapsberry)

9 contributions / 0 nouveau(x)
Dernière contribution
Petit projet associatif détente (clavier MIDI sur rapsberry)

Bonjour à tous,

Je suis un tout nouveau de passage. J'ai votre espace dans un coin de ma tête depuis longtemps mais j'ai jamais trouvé le temps de venir vous embêter jusque là. (Je suis passé une fois chez les gens de LabSud mais l'accueil m'a glacé le sang)

Bref, je viens vous embêter rapidement pour voir si certain-e-s auraient des petits conseils à me donner au sujet d'un projet pour un événement de l'association Terraludis. En effet, dans le cadre d'un Jeu de Rôle en Grandeur Nature (si ce sujet vous intrigue, on peut en discuter), j'aimerais construire un petit dispositif connectant un clavier MIDI (vieux piano électrique Yamaha que je possède), un Rapsberry Pi et une imprimante type ticket de caisse. L'idée serait qu'en fonction de combinaisons de touches simples tapées sur le clavier, l'imprimante sorte des messages préenregistrés.

J'ai étudié un peu la question de mon côté et j'ai déterminé qu'il fallait que j'investisse dans un M-Audio UNO qui m'a l'air d'être le connecteur MIDI-USB le plus compatible et le moins coûteux. Et j'ai vu qu'il existait des librairies Python et NodeJS pour essayer de communiquer via ce canal.

Est-ce que certain-e-s d'entre vous ont déjà expérimenté ce genre d'application ? Est-ce que vous auriez des retours sur la connectivité MIDI-USB ?

Je suis preneur de tous les conseils et retours d'expérience. En outre, si quelqu'un a du matériel qui me permettrait de tester un prototype avant d'investir, j'apprécierais beaucoup de pouvoir l'utiliser ou l'emprunter pour vérifier que mon idée tient debout, que mon clavier n'as pas les ports cramés ou autre plaisanterie du genre.

Merci pour votre attention !

PS : je peux troquer quelques compétences Drupal 7 & 8 / dev web / autre.

Salut !

Salut !



Je viens à peine de constater que tu as dépoussiéré le forum, qui n'avait plus publié de post depuis le 12/03/2015 !

Il n'y as pas trop de passage sur le forum actuellement. sachant qu'en plus il n'est pas tres mis en avant sur notre site.

Généralement nous utilisons IRC pour communiquer entre nous : https://lebib.org/content/webirc

Nous y sommes connectés en permanence, avec un temps de réponse allant de l'immédiat à quelques Heures.

Désolé en tout cas pour le temps de réponse !

Nous avons un peu de matériel pour le prototypage, sans pouvoir te donner de détails.

Tu devrais passer pour vérifier.



Et parce que le forum est vraiment désert, je me suis permis de relayer ton post sur la mailing list du bib.



à la r'voyure !





 

Merci pour la réponse et le

Merci pour la réponse et le relais !
Je me doutais un peu que le forum était à l'abandon, il faut que je configure mon bouncer pour aller faire un tour sur votre IRC alors (si tout le monde était sur freenode le monde serait tellement plus facile ^^)
À bientôt !

Salut Duael,

Salut Duael,

Réponse quelque peu tardive :).

Quelques questions concernant ton projet :

  • As-tu un modèle précis d'imprimante ? Si oui, lequel ?
  • Le type de communication de la dite imprimante (si c'est un truc pour les tickets de caisse, c'est a priori une liaison série mais à confirmer)
  • Quelle quantité de texte veux-tu stocker ? Veux-tu imprimer des images (en ascii art) ?

Selon, tu peux te tourner vers un Arduino Uno (officiel, clone, ou DIY) en lieu et place du Raspi.

Je m'explique.

Output :

L'Arduino Uno possède un "port série" matériel sur lequel tu peux brancher l'imprimante (si cette dernière communique en série).

Input :

Pour rappel, le MIDI n'est ni plus ni moins qu'une communication série ayant un baudrate de 31250kbps, que tu peux aisément gérer avec la lib SoftwareSerial Arduino.

Le cablage du MIDI in n'est pas bien compliqué : http://www.tigoe.net/pcomp/code/communication/midi/

Pour info, l'usage d'un optocoupleur sur le MIDI in n'est pas obligatoire mais très fortement conseillé (il permet d'éviter les boucles de masse, et donc de ne pas capter et d'injecter les perturbations électromagnétiques dans le signal utile).

Stockage :

Bon bah pour le stockage, si tu veux stocker l'intégrale de Game of Thrones, il vaut mieux te rabattre sur une carte SD.

Sinon, l'atmega328 (de l'Arduino Uno) possède une mémoire EEPROM pour stocker la data, et accroche toi bien, tu as 1KB rien que pour toi, soit 1024 caractères (espace compris).

Alors pourquoi un Arduino en lieu et place d'un Raspi ?

Plusieurs raisons :

  • y a une tripoté de projet MIDI, d'exemples
  • démarre instantanément
  • plus fiable, pas d'OS
  • beaucoup moins énergivore
  • il "parle" en 5v contrairement au Raspi (3.3v), pas de level-shifter à utiliser
  • tu peux l'interfacer facilement avec le monde extérieur (moteur, LEDs, potentiomètres, photorésistance, centrale nucléaire ...)
  • je préfére le bas-niveau ;)

En bref, si tu n'as pas de "gros traitement" de donnée, de besoin impératif de réseau, de vidéo ou de son à lire, le Raspi est un poil overkill.

Bonne journée.

p33k

Pas de souci pour le "délai",

Pas de souci pour le "délai", une semaine c'est bien moins que ce à quoi je pouvais m'attendre ;)

La raison d'aller vers le Raspi plutôt qu'un Arduino est très simple : je suis un dev plutôt haut niveau et je me sentirai plus à l'aise à manipuler un objet qui se comporte plus ou moins comme un ordinateur plutôt qu'un objet bien plus bas niveau. Si j'avais un temps illimité à y consacrer je me ferais sans doute plaisir pour apprendre de nouvelles choses mais là je ne me sens pas capable. Peut-être que je me plante totalement parce que je ne maîtrise pas le sujet mais ça m'a quand même l'air d'une complexité différente quand on part de loin comme moi.

Concernant l'imprimante, je n'ai pas encore choisi de modèle. J'envisageais de m'orienter vers un modèle USB par souci de simplicité aussi. Cela dit je viens de voir le prix des engins et ça me fait un peu chier ^^ J'ai peur que ce soit le maillon faible de mon idée.

En ce qui concerne les réponses du soft aux inputs du clavier MIDI, ça devrait rester de simples textes, sans forcément de mise en forme (c'est un «nice to have» mais loin d'être essentiel dans mon proto).

Je profite de votre attention pour une petite question qui me taraude : mon clavier MIDI a une entrée et une sortie. À quoi sert l'entrée ? Est-ce qu'elle pourrait me permettre de commander l'émission de son au clavier ?

Merci encore pour vos conseils éclairés et bonne journée également !

Slaut Duael,

Slaut Duael,

j'utilise une interface midi prodipe 1i/1o ça coûte 15 balles et ça marche nickel sur raspi.

Pour gérer des fichier texte -et ça ne va pas surprendre grand monde ici- j'utilise pure data. À la base puredata c'est un soft qui s'appelle patcher créer en 1988 pour justement la gestion du MIDI. Avec pure data tu peux très facilement éditer et générer des fichier textes.

Le truc drôle c'est que j'ai justement un projet avec une imprimante et un raspi (et donc pure data) pour du live, avec une gestion relativement complexe du midi et de l'audio.

Si tu veux venir avec ton clavier et/ou ton raspi, je fais un atelier pure data au bib le mercredi 18 janvier à 19h :

https://lebib.org/date/atelier-pure-data-0

On aura certainement pas le temps de tout monter, mais ça peut t'éclairer et ce sera l'occasion de se rencontrer.

Comme disait p33k, sur Arduino se serait super classe, et 100% dédié !

Pour parler du côté overkill du raspi, c'est pas une baie 19', ce n'est pas super énergivore non plus, et pour le coup c'est quand même de l'embarqué et je trouve ça super stable. Pour info j'ai fais tourner des raspis sous pure data pendant 3 mois sur des installations (à la Panacée avec un public pas forcément soigneux) et c'est super stable.

Concernant le raspi ce n'est pas "un objet qui se comporte plus ou moins comme un ordinateur", mais bel et bien un ordinateur, relativement plug & play.

Le côté moins overkill de l'arduino, tu le perd peut-être en dev ??? Si tu ne fais pas du bas niveau (comme moi), le raspi permet de faire les mêmes choses (complexes) que ta tour ou ton laptop, mais de façon plus dédiée et plus rapidement.

Perso j'utilise beaucoup la combinaison des deux raspi + arduino et pour des install ça marche bien.

 

Quelles sont tes deadlines ? Est-ce que une touche = une impression, ou une touche = une phrase ou un mot ?

Après pour l'impression, il existe plein de projet du raspi comme serveur d'impression, peut être une piste ?

Il y a des gens compètents au bib pour ça.

 

Une dernière chose : l'entrée MIDI de ton clavier c'est très certainement pour piloter les sons avec un autre appareil MIDI, et pour intégrer le clavier dans une chaîne MIDI, copie des commandes MIDI de l'entrée vers la sortie (MIDI THRU).

Envoi le nom du modèle pour en savoir plus.

 

 

 

J'ai pas bien compris ce que

J'ai pas bien compris ce que tu as raconté concernant les possibilité du MIDI IN ;)
Mon clavier est... attention antiquité... un Yamaha CD1 Hyperkeyboard (il a plus de 20 ans). J'ai cherché de la doc sur le net sans grand succès ^^

Côté deadlines, j'aimerais avoir un proto fonctionnel d'ici la fin janvier. Ce que j'attends de ce proto pour le moment c'est d'arriver à récupérer les entrées du clavier sur mon laptop et à les identifier de manière sûre.

Je n'ai pas encore de vision totalement claire sur ce que fera l'appli au final, j'imaginais faire réagir l'imprimante à des séries de notes plus ou moins longues. Une fois la possibilité de récupérer des notes via le programme, je pense que je m'en sortirai pour faire l'algo qui me convient.

J'ai noté la session de mercredi. Je viendrai avec mon chéquier (faut bien adhérer à un moment ^^), mon clavier et mon laptop et je me brancherai tout ça dans un coin pour voir si j'arrive à les faire communiquer.

Ok, cool pour mercredi, je

Ok, cool pour mercredi, je viendrai avec mon interface midi.

L'entrée midi de ton clavier c'est pour qu'il reçoive des notes MIDI ! Par exemple, tu créer une partition sur ordi pour l'envoyer sur ton clavier (en MIDI). Une chaine MIDI c'est par exemple, piloter plusieur synthés avec un seul controlleur (un controlleur est tout ce qui envoi du MIDI par la prise "MIDI OUT", ton clavier par exemple). Ce que j'appelle un synthé c'est tout ce qui recoit du MIDI et en sort du son (ce qui est aussi le cas de ton clavier par la prise "MIDI IN"). Sur certain appareils on peut filter certain message MIDI ou rebalancer les messages entrants directement vers la sortie, ça s'appelle "MIDI THRU", il y a beaucoup machine avec une prise dédiée "MIDI THRU". C'est super utile quand tu commences à avoir pas mal (plus que deux en fait) d'appareils MIDI et quand ils ne recoivent pas tous les mêmes messages MIDI, car  il en existe plusieur type : des notes, des changements de programme, une horloge....  Un sampler (NOTE), une boîte à rythme(HORLOGE) et une reverb(PROG CHANGE) sont souvent équipés en MIDI mais pas pour recevoir les mêmes messages.

J'ai réussi à changer d

J'ai réussi à changer d'instrument sur mon clavier via PureData \o/
Vive le reverse engeneering et l'aide interactive du soft ;)

Il fallait donc que j'envoie un code de 1 à 128 (numéro de l'instrument en façade du clavier +1) sur le canal voulu (entre 2 et 6) via un objet pgmout. Bon maintenant j'ai plus qu'à faire pareil via NodeJS :)

Merci pour le pied à l'étrier en tout cas, c'est bien amusant comme projet.