stefmo :
je vois pas trop quoi faire de ton premier point. j'ai énuméré et obtiens les différents "device" par index et toutes leurs info, et après...? vu que je sais pas vraiment lequel il utilise qd je m'occupe pas de ça.
Je pense que les différents "devices" sont par exemple: Wave_Out, Digital_Out, HDMI_Out, Mic_In, Line_In...
Actuellement ça prend le device par défaut, chez toi ça tombe sur ta sortie son que tu utilises. Mais est-ce que ça sera toujours le cas sur d'autres systèmes? Je ne sais pas, je pense simplement qu'il serait bien de pouvoir configurer ça facilement quelque-part.
Peut-être qu'il y a un device "wave_out_loop", qui permettrait d’arranger ce problème de fréquence...
stefmo :
pour le deuxième point, j'ai essayé de tout baissé au max comme tu m'as dit, mais curieusement, le resultat mets beaucoup moins de temps a sortir qd je laisse format à paInt16 et rate à 44100 ou 48000, et rien de mieux en mettant frame_per_buffer et rate à la même valeur...
Normal que ce soit plus long.
- rate = nombre de captures par seconde
- frame_per_buffer = nombre de captures à faire
donc temps = frame_per_buffer / rate [secondes]
-> 32 / 44100 = 0.725 ms
Si tu met un plus petit rate sans changer frame_per_buffer, par exemple 100:
-> 32 / 100 = 320 ms
Et si tu met tout à 1 comme je te l'ai dis avant:
-> 1 / 1 = 1 seconde
Ce qui fait 1 mesure par seconde. Mais donc évidemment, ça bloque ton thread pendant 1 seconde si tu fais ça en synchrone.
Mais le PaInt16 ou PaInt8 ne va rien changer à cela, si? La capture en 8 bit serait amplement suffisante et prend moins de ressources.
stefmo :
par contre j'ai un comportement embêtant: une fois que je lance le script, l'échantillonnage de la carte son semble ne plus pouvoir se modifier.
par exemple : j'écoute un morceau à 44100, derrière j'obtiens un message d'erreur de foobar (ASIO) dès que je veux lire un morceau en 48000 (Unrecoverable playback error: Sample rate of 48000 Hz not supported by this device). De même dans le pilote de ma carte je peux plus modifier le sample rate qui reste coincé à 44100.
Et ce indépendamment de la valeur de rate que je renseigne dans mon script, l'inverse étant vrai (44100 vers 48000 et vice-versa).
D'autres lecteurs tels que vlc ou le lecteur de mediaportal (même en ASIO) ne me posent pas ce soucis de refus de lecture.
Hummm... Con ça...
Je comprend pas trop le problème des 48000 Hz... donc même si tu mets un rate d'enregistrement de 48 kHz?
Comme ça je vois pas, faudrait que j'essaie moi-même... (et voir ce que disent les infos au sujet des devices aussi).
stefmo :
Pour régler l'affaire, il faut que je ferme complétement Eventghost (qui "héberge" python), et là je peux changer mon rate et écouter autre chose.
J'imagine qu'il faudrait que je "libère" dans python les fonctions audio ou qqch comme ça (je le dis avec mes mots, hein
). J'ai essayé pyaudio.terminate() mais ça donne rien.
PyAudio.close(stream)
stefmo :
mais je reste à un test par seconde pour pouvoir relancer l'ampli qd un son se joue, et 10 secondes de latence c'est trop.
Ouais, clair que 10 secondes c'est long