[SCRIPT] Faire de la music sous linux avec le Speaker

Tout est dans le titre …

Est ce possible ?

Tu te places d’un point de vue programmation, ou bien tu as posté dans cette section par erreur ?
Qu’appelles tu le pc speaker ? C’est vraiment que tu veux ne veux pas passer par la carte son ou bien ce que tu veux c’est emettre un beep dans un script ?
Dans le deuxiême cas un “echo ^G” devrait suffire (^G designe controle G, et pour le mettre dans un script il faudra peut être faire un ctrl Q avant )

et si tu es motivé à faire un programme en C:

http://www.fmod.org/

apprend à te servir de cette librairie, elle est rès bien pour ce qui est son… il y a aussi SDL_Audio mais elle est moins riche que celle-ci

Ton sujet est un peut vague, tu aura certainement des réponses vagues si tu ne donne pas plus de détails…

Un truc tout simple avec le speaker du PC.
Faire des BIT mais sur plusieurs gamme, pas des symphonys, un truc simple à programmer si possible.

J’ai déjà fait du C, c’était sympa, le C++ beaucoup moins fun.

J’ai toujours était stupéfais par cette remarque, la prog objet c’est quand même beaucoup plus simple. (vive les vecteurs!)

tiens je pense que ca sera pas très compliqué:

http://www.siteduzero.com/tuto-3-9981-1-jouer-du-son-avec-fmod.html?sesid=80a5fe846f33d2e891aef2158f6dfcbf622c5121&sesmid=-604

c’est écrit pour les nuls comme moi donc à mon avis tu vas y arriver :wink:

J’ai toujours était stupéfais par cette remarque, la prog objet c’est quand même beaucoup plus simple. (vive les vecteurs!)[/quote]Tout est relatif personnellement je préfère le C mais j’avoue quand même que je n’ai pas trop bossé le C++ j’étais plutôt sur Java. C’est peut-être la difficulté de l’apprentissage du C qui m’attire par rapport au C++ que tu dis être plus simple.

J’ai toujours était stupéfais par cette remarque, la prog objet c’est quand même beaucoup plus simple. (vive les vecteurs!)[/quote]Par cette réponse, je voulais dire que je n’ai absolument pas envie de faire du C++.

Production d’une note

[code]#include<stdio.h>
#include<unistd.h>
#include<sys/io.h>
#define PORTB 0X061
#define TIMER2 0x042

int ValeurCompteur(float frequence)
{
return (1193180/frequence);
}

int main(int argc, char *argv[])
{
int valeur;
float f;

printf(“Entrez la fréquence : “);
scanf(”%f”,&f);
valeur=ValeurCompteur(f);
printf(“frequence=%f valeur=%x octet=%x:%x\n”,f,valeur,(valeur>>8)&0x00ff,valeur&0x00ff);
ioperm(PORTB,1,1);
ioperm(TIMER2,1,1);
outb(valeur,TIMER2);
outb(valeur>>8,TIMER2);
outb(inb(PORTB) | 3 ,PORTB);

sleep(2);
outb(inb(PORTB) & 0Xfc,PORTB);
ioperm(PORTB,1,0);
ioperm(TIMER2,1,0);
return(0);
}[/code]

J’ai du bon tabac

[code]#include<stdio.h>
#include<unistd.h>
#include<sys/io.h>
#define ACCES 0X061
#define NOIRE 900000
#define CROCHE 400000
#define SOL 392.0
#define LA 440.0
#define SI 493.88
#define DO 523.25
#define RE 587.33

int ValeurCompteur(float frequence)
{
return (1193180/frequence);
}

int main(int argc, char *argv[])
{
int valeur,i;
float note[20]={SOL,LA,SI,SOL,LA,LA,SI,DO,DO,SI,SI,SOL,LA,SI,SOL,LA,LA,SI,DO,RE};
unsigned int duree[20]={CROCHE,CROCHE,CROCHE,CROCHE,NOIRE,CROCHE,CROCHE,NOIRE,NOIRE,NOIRE,NOIRE,CROCHE,CROCHE,CROCHE,CROCHE,NOIRE,CROCHE,CROCHE,NOIRE,NOIRE};

/printf(“Entrez la fréquence : “);
scanf(”%f”,&f);
/
ioperm(ACCES,1,1);
ioperm(0x42,2,1);

for(i=0;i<15;i++)
{
valeur=ValeurCompteur(note[i]);
printf(“frequence=%f valeur=%x octet=%x:%x\n”,note[i],valeur,(valeur>>8)&0x00ff,valeur&0x00ff);

outb(182,0x43);

outb(valeur,0x42);
outb(valeur>>8,0x42);
outb(inb(ACCES) | 3 ,ACCES);
usleep(duree[i]);
outb(inb(ACCES) & 0Xfc,ACCES);
usleep(1000);

}

outb(inb(ACCES) & 0Xfc,ACCES);
ioperm(ACCES,1,0);
ioperm(0x42,2,0);
return(0);
}[/code]
Il faut bien sûr avoir les droits du root.

Pourquoi [script] dans le titre?