Captation de vibration (pour guitare)

Salut à toutes et tous,

Je voudrais capter la vibration venant des cordes de ma guitare. Mon idée est de mettre un micro piezzo "pas loin" de chaque corde, et ensuite de récupérer dans mon arduino la valeur de vibration de chaque micro.

Pour le moment je prototype dans mon coin avec juste un piezzo. Pour mes stests j'utilise celui-là, dont les carac' sont les suivantes :
type de signal: commande externe
tension d'opération: 3-28Vca
tension nominale: 5Vca
consommation de courant: 1.5mA
fréquence de résonance: 4.0 ± 0.5kHz
niveau de pression acoustique: 85dB

J'ai collé le piezzo avec de la patafix sur une planche en bois, j'ai utilisé le script "knock" pour récupérer les données en changeant le threshold à 10 au lieu de 100, et le résultat n'est pas celui escompté. Lorsque je tape le micro piezzo, une mesure est bien récupérée (bien qu'assez faible). En revanche si je tape sur le bois sur lequel le piezzo est collé, je ne récupère rien.

Question : est-ce qu'il existe différentes sensibilité de piezzo ? est-ce que ce sera le bon capteur pour récupérer les données que je veux ?

J'attends vos avis !

Florian

Bonjour

est-ce que ce sera le bon capteur pour récupérer les données que je veux ?

Non.

Une tension alternative appliquée sur cet élément provoquera une contraction ou une expansion diamétrale de l'élément. Cette caractéristique est utilisée afin de plisser une plaque vibrante, ce qui génère les sons

L'élément piezo choisi est conçu pour faire vibrer un disque métallique à 4kHz (résonnance) et générer un son .(les dimensions de la cavité et du disque vont dans ce sens)

L'effet piezo a beau être réversible cet élément , vu sa construction, ne peut capter de manière satisfaisante les vibrations de la table d'harmonie ou des cordes sur la bonne plage de fréquence (en gros 82Hz, : mi grave à 660Hz : 12ème case du mi aigü)

Aujourd'hui les capteurs piezo pour guitare travaillent le plus souvent en compression et sont placés entre sillet et chevalet. Ils sont conçus pour la bonne plage de fréquence. (capteur unique ou un capteur par corde selon les cas)

pour avoir un son correct, il faudra échantilloner chaque micro à au moins 32 kHz, voire 44.1 kHz.
Et il y en a 6.
En plus, faire un traitement de chaque signal (sinon, à quoi bon échantilloner ?)
Je ne suis pas bien sûr qu'un Arduino soit assez puissant...

Je précise mon besoin : je veux juste savoir quelle corde vibre, je n'ai pas besoin du son, juste de l'intensité de la vibration. Mon but n'est PAS de reproduire le son, mais de savoir quelle corde est jouée.

@al1fch : du coup il me faut quoi comme composant ?

J'ai vu qu'il existait des capteurs de vibration (là par ex), ça donne quoi ?

[Edit] j'ai trouvé dans un autre post qu'on peut utiliser un accéléromètre. Un avis ?

cordes nylon ? cordes métalliques ?

(Eviter d'ajouter des informations au fur et à mesure.....ça ne motive pas beaucoup pour répondre pusique ça donne l'impression désagréable que le message suivant va changer la donne)

peu importe, les cordes. Par contre je devrais partir sur une guitare acoustique.

(désolé pour les rajouts)

peu importe, les cordes.

Les cordes métalliques permettent l'utilisation de capteurs électromagnétiques... pas le nylon

Si le montage doit accepter les deux types de cordes c'est un nouveau paramètre qui s'ajoute.... pas cool
Faire l'effort de tout décrire, tout mettre sur la table dès le début

Ok, j'essaie.

Description du besoin
Je veux pouvoir capter deux choses sur une guitare : quelle corde est jouée, et quelle touche est jouée, et ce à tout instant.

Dispositif théorique
Pour les cordes, je suis parti sur de la captation de vibration. Je mets, pas loin de là où les cordes sont attachées du côté du chevalet, 6 capteurs de vibration, un par corde. J'enregistre les vibrations. A base d'essais / erreurs, j'étalonne afin de pouvoir repérer finement quelle corde est jouée.

Pour les touches, je prévoie de mettre un capteur capacitif sur chaque frette.

Où j'en suis ?
La partie "touche" a déjà été implémentée, le capteur capacitif fonctionne, donc rien à faire sur ce côté.
Par contre je bloque sur la partie "détection de la corde jouée". Je suis ouvert aux différentes solutions.

A noter : je ne veux PAS passer par le traitement du son. Ce qui m'intéresse, c'est comment c'est joué, pas ce qui est joué.
Egalement : je n'ai pas de prérequis sur le type de guitare ni de corde. J'irai au plus simple, j'ai pour objectif de faire un truc qui marche, je rajouterai des contraintes une fois un premier proto prêt.

al1fch:
Les cordes métalliques permettent l'utilisation de capteurs électromagnétiques... pas le nylon

Faire l'effort de tout décrire, tout mettre sur la table dès le début

al1fch, c'est toi qui embrouille, là.
Un capteur piézo se moque de la nature de la corde. Généralement installé sous le chevalet, il produit un courant sous l'effet d'une contrainte mécanique, qui varie lorsque la corde vibre.
MrFlo666 n'a pas parlé de captation électromagnétique...

J'ai écrit que les cordes métalliques permettent l'utilisation de capteurs électromagnétiques , permettent .... pas imposent !!

Le capteur piezo , travaillant en compression entre sillet et table produit une tension alternative globale résultant de l'ensemble des vibrations de toutes les cordes. Cela fonctionne bien évidement pour tout type de corde (j'ai ça sur une Takamine et , avec le préampli derrière, ça rend bien !!)

Je vois mal MrFlo666 faire réaliser 6 capteurs piezos placés entre un sillet fractionné et le chevalet de manière à capter la vibration individuelle de chaque corde (objectif recherché)

un bricoleur habile est peut être par contre capable de fabriquer 6 bobinages indépendants autour de petits aimants cylindriques. Le capteur individuel (1 par corde) electro-magnétique me parait un peu moins inaccessible que le capteur piezo individuel piezo .. d'où ma question sur le type de cordes.... vu que ça prpouvait faciliter les choses
(Les cordes métalliques permettent aussi d'être traitées comme capteur 'touch'...)

La difficulté vient du fait que MrFlo666 veut , sans traitement audio, détecter la mise en mouvement de chacune des 6 cordes, repérer quelles cordes sont , à un moment donné jouées......C'est chaud !!
Pas évident de trouver un type de capteur adapté et suffisement petit pour rendre compte de manière fiable des vibrations d'une corde parmi 6.

Entretemps j'ai acheté deux capteurs de vibration, et ça marche pas, c'est pas assez sensible.

@al1fch : comme je l'ai dit, les contraintes, c'est moi qui les fixe. Si je décide qu'il y aura des cordes métalliques, alors il y aura des cordes métalliques :slight_smile:

Et oui, le projet est chaud. J'ai un premier proto tout simple où je repère uniquement les cases touchées (peinture qui transmet l'électricité + script pour capteur capacitif), mais le résultat est pas fou. Moi, je veux le nec plus ultra (et en plus je suis pas bon en électricité / électronique).

Pour ton histoire de bobinages indépendants, en fait c'est un peu comme je recréais un micro, non ?

Après, je suis ouvert à toutes les suggestions. J'ai pensé par ex à un moment à mettre un capteur capacitif par corde + jouer avec un médiateur fait dans une matière qui peut transmettre l'électricité.

En vrai, ce que je veux faire se rapproche d'une guitare midi... de loin !

Pour ton histoire de bobinages indépendants, en fait c'est un peu comme je recréais un micro, non ?

Oui , mais avec un bobinage par corde et non un bobinage glogal comme c'est en général le cas

J'ai pensé par ex à un moment à mettre un capteur capacitif par corde + jouer avec un médiateur fait dans une matière qui peut transmettre l'électricité.

méthode la plus simple puisqu'elle revient à surveiller 6 contact

contraintes : le son doit-il être préservé ? (un système de captage en contact avec chaque corde et amortissant les vibrations et-il admissible ?)

Oui , mais avec un bobinage par corde et non un bobinage glogal comme c'est en général le cas

Je vais regarder par là

méthode la plus simple puisqu'elle revient à surveiller 6 contact

Sauf que si je joue un accord plaqué, les 6 cordes seront toutes en contact, quand bien même je ne joue pas toutes les cordes.

contraintes : le son doit-il être préservé ? (un système de captage en contact avec chaque corde et amortissant les vibrations et-il admissible ?)

J'aurai tendance à dire que oui, il doit être préservé. Mais peut-être l'amortissement peut être acceptable. A quoi penses-tu ?

je pensais à ce type de lamelle piezo flexible qui pourrait être positionnée de manière à effleurer la corde près du sillet de chevalet (le contact avec la corde amortirait ses oscillations , réduirait le 'sustain' :frowning: )

(Attention :je n'ai jamais utilisé ce composant ni étudié la doc pour voir si la faible amplitiude de vibration de la corde engendrerait une tension exploitable après amplification. C'est juste une idée en passant.... 13 mm de largeur c'est un poil trop élevé pour l'écartement des cordes d'une guitare classique)

Bonjour
Perso je n'ai pas (encore) bien compris quel était précisément le souhait exact 8)

  • déterminer si une corde quelque soit sa constitution (métallique ou pas) parmi x est simplement "touchée" ?
    -- sans se préoccuper de savoir où est la "touche" sur sa longueur

  • recuperer/determiner la F° des cordes sollicitées ?

Il y avait eu une discussion il n'y a pas longtemps avec karistouf qui avait eu besoin de faire du DMX en partant d'un capteur guitare du commerce , je ne retrouve pas le topic

Bonjour Artouste

le besoin est exprimé au message #7.....
détection touche + détection cordes jouées pour faire une sorte de guitare MIDI

al1fch:
Bonjour Artouste

le besoin est exprimé au message #7.....
détection touche + détection cordes jouées pour faire une sorte de guitare MIDI

Bonjour Al1
au #8 tu veux dire ? ;D

Bon je resume :
1- detection du toucher de corde x/n c'est fait il semble

reste donc à determiner
2- F° emise par cette corde x/n

Compte tenu du point 1 tenu pour acquis

il reste ensuite à determiner le point 2
La F° est il me semble contrainte par

le Min et le Max possible de cette corde entre tete et chevalet et par l'endroit où elle est "coincée" (frette)

Cette info est dispo sur la table d'harmonie

Une petite FFT bien ciblée (fonction du point1) permettrait peut etre de s'en sortir "assez simplement"
Tout dépend du souhait exact et de la précision recherchée)

Mais bon ça releve plus d'un traitement DSP , l'arduino n'est peut être pas là le bon candidat :grin:

J'ai retrouvé le topic de Christophe

De l'ensemble des messages de MrFlo666 se dégage , pour moi, l'impression qu'il ne s'intéresse pas aux notes jouées, ne veut pas traiter le signal mais tient à repérer en permanence la position des doigts sur le manche et l'action sur les cordes.
Il veut suivre les causes, pas les effets (sons émis)
Gros doutes sur la faisabilité avec des moyens d''amateur'

al1fch:
De l'ensemble des messages de MrFlo666 se dégage , pour moi, l'impression qu'il ne s'intéresse pas aux notes jouées, ne veut pas traiter le signal mais tient à réparer en permanence la position des doigts sur le manche et l'action sur les cordes. Il veut gérer les causes, pas les effets (sons émis)

Il est donc urgent d'attendre :grin: d'avoir plus d'info de MrFlo666

Si le besoin final est simplement de savoir "à instant T" quelle(s) corde est "coincée" sur quelle frette , ça peut enormement simplifier la résolution du probléme

"à l'instant T quelles cordes coincées vibrent ... et sur quelles frettes elles sont coincées"... la totale....(pas les cordes coincées non jouées)