# Octave, sound

**URL:** <https://www.debian-fr.org/t/octave-sound/17106>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 6:41 UTC](https://www.debian-fr.org/t/octave-sound/17106 "2016-02-20T18:41:03Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Elverion](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/b5e925/32.png) [@Elverion](https://www.debian-fr.org/u/Elverion)\
**Post date:** [Février 20, 2016, 6:41 UTC](https://www.debian-fr.org/t/octave-sound/17106/1 "2016-02-20T18:41:03Z")

</div>

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 :

```auto
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?

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 6:41 UTC](https://www.debian-fr.org/t/octave-sound/17106/2 "2016-02-20T18:41:04Z")

</div>

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)

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:41 UTC](https://www.debian-fr.org/t/octave-sound/17106/3 "2016-02-20T18:41:05Z")

</div>

[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…

---

<div class="post-metadata">

**Author:** ![Elverion](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/b5e925/32.png) [@Elverion](https://www.debian-fr.org/u/Elverion)\
**Post date:** [Février 20, 2016, 6:41 UTC](https://www.debian-fr.org/t/octave-sound/17106/4 "2016-02-20T18:41:21Z")

</div>

Bonjour,

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

> [@](#):
>
> warning: warn\_fortran\_indexing is no longer a built-in variable; please read th  
> e NEWS file or type `news' for details warning: warn_fortran_indexing is no longer a built-in variable; please read th e NEWS file or type`news’ for details  
> 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:00.01 [00:00:00.00] Out:486 [|] Clip:0  
> Done.

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

```auto
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
```

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 6:41 UTC](https://www.debian-fr.org/t/octave-sound/17106/5 "2016-02-20T18:41:22Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Elverion](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/b5e925/32.png) [@Elverion](https://www.debian-fr.org/u/Elverion)\
**Post date:** [Février 20, 2016, 6:42 UTC](https://www.debian-fr.org/t/octave-sound/17106/6 "2016-02-20T18:42:10Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:42 UTC](https://www.debian-fr.org/t/octave-sound/17106/7 "2016-02-20T18:42:10Z")

</div>

Laz commande play seule marche?

---

<div class="post-metadata">

**Author:** ![Elverion](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/b5e925/32.png) [@Elverion](https://www.debian-fr.org/u/Elverion)\
**Post date:** [Février 20, 2016, 6:42 UTC](https://www.debian-fr.org/t/octave-sound/17106/8 "2016-02-20T18:42:17Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:42 UTC](https://www.debian-fr.org/t/octave-sound/17106/9 "2016-02-20T18:42:18Z")

</div>

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 aussi`ii 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:~$ 
`

---

<div class="post-metadata">

**Author:** ![Elverion](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/b5e925/32.png) [@Elverion](https://www.debian-fr.org/u/Elverion)\
**Post date:** [Février 20, 2016, 6:43 UTC](https://www.debian-fr.org/t/octave-sound/17106/10 "2016-02-20T18:43:31Z")

</div>

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 :

```auto
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!!

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:43 UTC](https://www.debian-fr.org/t/octave-sound/17106/11 "2016-02-20T18:43:33Z")

</div>

Ce que je voulais dire c’est que

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

---

<div class="post-metadata">

**Author:** ![Funkygoby](https://www.debian-fr.org/user_avatar/www.debian-fr.org/funkygoby/32/3984_2.png) [@Funkygoby](https://www.debian-fr.org/u/Funkygoby)\
**Post date:** [Février 20, 2016, 6:56 UTC](https://www.debian-fr.org/t/octave-sound/17106/12 "2016-02-20T18:56:02Z")

</div>

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.
