Octave, sound

Bonjour,

Je suis en train de programmer quelques petits trucs sous octave ( logiciel de mathématique comme matlab mais gratuit ).

Mais lorsque j’essaye de lancer un “sound(x)” pour jouer ma fonction ( un beau petit sinus à 440 ), je me retrouve avec l’erreur suivante :

sh: play: command not found

warning: warn_fortran_indexing is no longer a built-in variable; please read the NEWS file or type `news' for details

warning: warn_fortran_indexing is no longer a built-in variable; please read the NEWS file or type `news' for details

warning: broken pipe -- some output may be lost

Comment est ce que je peut remédier à ça?

C’est peut être plus une question de midi que de programmation ?
Tu joues les .mid ?
(locate .mid pour en trouver si tu en as sur ton disque)

[quote]sh: play: command not found

warning: warn_fortran_indexing is no[…] [/quote]

apt-get install sox

pour les warnings, octave doit utiliser une syntaxe obsolète, ça doit encore passer…

Bonjour,

J’ai essayé le “apt-get install sox” mais en relançant mon script, il me donne cette erreur-ci :

@mattotop :
Non je ne fait rien avec les midi ( du moins pas explicitement ).
Voici mon code, si ça peut vous aider :

function S=sonBasique(n)
	% Fréquence d'echantillonage
	Fe=n;
	
	% Vecteur d'abscisse allant de 0 a 2
	t=0:1/Fe:2;
	
	% Fonction symbolisant la note "la"
	x=sin(2*pi*440*t);
	
	% On joue le son
	sound(x);
endfunction

quote=“Elverion”
@mattotop :
Non je ne fait rien avec les midi ( du moins pas explicitement ).
(…)[/quote] Non, mais je me disais que ce type de manipulation de l’audio qui repose sur de la synthèse de son, et pas sur de la restitution d’un son analogique en PCM sollicitait peut être les fonctionnalités de synthèse midi. Donc mon conseil était de t’assurer que tu réussissais bien à jouer des .mid, pour voir si ça ne venait pas d’une absence de configuration de ces fonctionnalités midi dont je me doutais justement que tu ne les avais jamais vérifiées.
Mais je laisse fran.b, je suis sûr que sa piste est plus sérieuse que la mienne.

Je n’arrive pas a résoudre mon problème…
Quelqu’un à une solution?

Laz commande play seule marche?

A la commande play(x) donné a la place de sound, octave me répond que la commande play n’existe pas.

Je viens de faire le test, avec sonBasique(440), je n’ai rien mais avec 4400 j’ai un très beau son et avec 400 aussiii octave-audio 1.1.1-2 functions to work with audio files in Octave ii octave2.9 1:3.0.1-6lenny1 GNU Octave language for numerical computatio ii octave3.0 1:3.0.1-6lenny1 GNU Octave language for numerical computatio ii octave3.0-htmldoc 1:3.0.1-6lenny1 HTML documentation on the GNU Octave languag ii qtoctave 0.7.4+dfsg-3 A Qt front-end to Octave francois@bling:~$

Ca fonctionne à peu près.

J’ai lancé un apt-get des paquets que tu as marqué plus haut et il me manquait le octave2.9 ( alors que le 3.0 était installé … ? ) et depuis, lorsque j’essai un sound :

octave:11> sonBasique(4400)
play au: header size 24 is too small

-: (au)

  Encoding: Signed PCM    
  Channels: 1 @ 16-bit   
Samplerate: 8000Hz       
Replaygain: off         
  Duration: unknown      


In:0.00% 00:00:00.00 [00:00:00.00] Out:0     [      |      ]        Clip:0    
In:0.00% 00:00:01.10 [00:00:00.00] Out:24.6k [!=====|=====!]        Clip:1    
In:0.00% 00:00:01.10 [00:00:00.00] Out:32.8k [!=====|=====!] Hd:0.0 Clip:1    
In:0.00% 00:00:01.10 [00:00:00.00] Out:41.0k [!=====|=====!] Hd:0.0 Clip:1    
In:0.00% 00:00:01.10 [00:00:00.00] Out:49.0k [!=====|=====!] Hd:0.0 Clip:1    
In:0.00% 00:00:01.10 [00:00:00.00] Out:52.8k [!=====|=====!] Hd:0.0 Clip:4    
play effects: rate clipped 2 samples; decrease volume?
play sox: alsa: output clipped 2 samples; decrease volume?
Done.

Mais j’entend le son!!!

Arrivais-tu a le faire fonctionner avec play, playaudio ou sound?

En tout cas, merci pour le coup de main!!

Ce que je voulais dire c’est que

$ play /usr/share/sounds/alsa/Rear_Right.wavme sort un son. Octave passe par cette commande je pense.

Je sais que quand tu écris ton vecteur dans un fichier .wav, il faut le normaliser.

qqchose comme x = x/max(abs(x));
mon prof faisait meme x = x/(1.1*max(abs(x))); je sais plus pourquoi

Tu as aussi soundsc (pour scaled) comme ça c’est réglé.

Je ne me suis jamais servi de sound mais il a besoin d’un 2eme paramètre, la fréquence de lecture…
“n” pour toi.
Un fichier wav va contenir des info sur la fréquence à laquelle lire le signal ainsi que sur les bits de quantifiaction il me semble bref… tu perds rien à tester qqchose comme soundsc(x,n).

Et je confirme le midi n’a rien à voir là dedans.
Le midi c’est une banque de sons (simulés ou non) dans laquelle on pioche. On peut faire de la simulation musicale en tps réel controlé par un controleur midi.
Exemple: les pianos numériques.
On appuie sur une touche, un capteur mesure la vitesse avec laquelle on appuyé.
Ce paramètre part dans un simulateur (script octave) qui pond un vecteur, le signal sonore final.
On peut aussi créer un fichier midi qui contient plusieurs notes avec le paramètre de vitesse pour chacune. Octave peut ensuite generer chacune des notes (il crée la banque de sons) et ensuite on peut faire jouer un morceau.