le capteur fonctionne, le logiciel sonic-pi reçoit bien les valeurs renvoyées par le capteur via python, mais je n’ai aucun son, je ne comprends pas pourquoi ?
J’ai testé la sortie son du raspberry, elle fonctionne.
Citation
C’est des ultrason et tu veux dire que tu n’entends rien?? ?
Je ne sais pas si c’est de l’humour mais je vais quand même détailler un peu plus le fonctionnement :
Un script python détecte la distance entre le capteur à ultra-sons et la main de l’utilisateur, puis il envoie via python-osc les valeurs au logiciel sonic-pi qui joue les sons (+ on est loin, + c’est aigu, + on se rapproche + c’est grave, par ex.), et c’est ce son que je n’entends pas…
voici le code python
Citation
from gpiozero import DistanceSensor
from time import sleep
from pythonosc import osc_message_builder
from pythonosc import udp_client
Il y a des personnes de niveaux techniques différents qui interviennent ici, par habitude, il est toujours bon de commencer par les choses les plus simples pour être sur que l’on se comprends.
niveau programmation, je ne suis pas suffisamment calé.
Juste pour ce mettre d’accord, le son plus ou moins aigu, c’est l’effet Doppler, cela ne permet pas d’estimer la distance mais la vitesse relative. https://fr.wikipedia.org/wiki/Effet_Doppler
La distance, c’est le temps qui s’écoule entre l’émission du son et la réception de l’écho
Donc si le programme a été écris sur le principe que tu dis, peut être est-ce là l’erreur?
Oui sonic-pi fonctionne en dehors de python, et il reçoit les données du script python.
La distance mesurée est converti en numéro de 0 à 127 qui correspond à la notation des notes au format midi.
/play_this renvoie une liste de note en MIDI, et le play[0] joue l’index 0 de la liste, je vois s’afficher les notes dans sonic-pi mais je n’ai pas de sons
quand je parle de sons, je veux parler de sons audibles que devrait produire le logiciel sonic-pi. Je ne parle pas du capteur, qui lui envoie des ultra-sons, et en déduit la distance en analysant la vitesse à laquelle lui revient l’echo.
Le capteur fonctionne et me renvoie des valeurs cohérentes de distance.
Pour ce qui est du sons + ou - aigu, c’est moi qui décide à l’aide du script python d’interpréter la mesure du capteur en hauteur de son.
Maintenant, il est possible que sonic-pi émette bien du son, mais que celui-ci ne soit pas transmis à l’enceinte, sauf que sonic-pi sans python fonctionne et j’entends le son… Donc je pense qu’il s’agit soit d’un problème de lien entre python et sonic-pi, soit d’un problème de codage quelque part… ou dernière possibilité le serveur de sons de raspbian…
Il faut faire des tests.
Quelle est la carte son utilisée, et sur quelle sortie ? Carte son interne, ou USB ?
Ensuite
1 - Tester la sortie son avec mplayer ou autre logiciel de son standard.
2 - Vérifier si il y a des paramètre dans /boot/config.txt https://www.raspberrypi.org/forums/viewtopic.php?t=215339
2 bis (ça modifie également config.txt) - Essayer de passer par le menu raspi-config pour voir si tout est OK
3 - Eventuellement corriger/modifier les paramètres de sortie son avec alsamixer
4 - Tester sonic-pi en autonome.
Quand ce sera Ok, le programme Python pourra être démarré pour piloter sonic-pi.
J’utilise la sortie son hdmi avec un adaptateur qui permet de séparer l’audio de la vidéo.
J’utilise la carte son interne.
J’ai testé la sortie son avec vlc --> ok
J’ai testé la sortie son avec sonic-pi --> Non ok pourtant ça fonctionnait avant, mais j’ai installé jack, portaudio, et ça ne marche plus
et evidement sonic-pi via python --> non ok
Je vais tester, mais quand je parlais de jack, je parlais du serveur audio jack, mais je pense que je vais repartir d’une install propre parce qu’à force de tester pleins de trucs, ça a peut-être foutu le bordel dans le système…