IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut Programmer un PC pour le transformer en synthétiseur ; le clavier devient un instrument de musique
    Bonjour,
    Je suis prof de technologie collège et je souhaite programmer un PC pour le transformer en synthétiseur ; le clavier devient un instrument de musique.
    je souhaite donc que chaque touche soit associée à une fréquence et que l'on puisse choisir une sonorité (piano, guitare...)
    Le but c'est de faire faire ce travail par des élèves de collège, en collaboration avec leur prof de musique et de maths.
    Quel langage me recommandez-vous ?
    Certains d'entre vous ont-ils déjà développé ce genre de programme ? si oui, qui accepte de me donner un coup de main? de me guider ? au moins pour démarrer ?
    Je suis novice en programmation PC.
    J'ai toutefois quelques notions dans un langage très ancien ou très peu répandu : LOGO.

  2. #2
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Veux-tu vraiment créer un programme ?

    Il existe surement des logiciels déjà tout fait .


    Sinon ,

    As-tu un plan de gestion pour ton projet ??


    SFML peut s'occuper de l'audio : http://www.sfml-dev.org/

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    oui, comme je l'ai dit, je souhaite faire faire ce programme à mes élèves donc pas intéressé par un logiciel existant.

    Qu’entends-tu par plan de gestion ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Merci codezero1
    Je viens de jeter un oeil très rapide à sfml.
    Je suis vraiment novice, quel est le langage utilisé ? (ci-dessous un extrait).
    Je vois que ce logiciel prend aussi en charge le clavier et la souris ; peut-être pourrais-je faire le programme complet avec ce logiciel ?
    il y a aussi une interface graphique, pour dessiner un clavier de piano par exemple...

    int main()
    {
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

    while (window.isOpen())

    {
    sf::Event event;
    while (window.pollEvent(event))
    {
    if (event.type == sf::Event::Closed)
    window.close();
    }

    window.clear();
    window.draw(shape);
    window.display();
    }

    return 0;
    }

  5. #5
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Plan de gestion = est-ce que tu as réfléchis précisément à toutes les étapes de ton projet ?


    SFML est une lib qui a des bindings .
    Donc on peut l'utiliser avec plusieurs langages .

    Pour ton code , utilise les balises code .

    Mais d'abord poste ton plan de gestion , il faut procéder étape par étape .

    Je ne sais même pas ce que tu essaye de faire en premier .

    Une GUI ?
    Programmer un mixeur Audio ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Ok,

    alors dans un premier temps, Je voudrais que chaque touche de mon clavier soit associé à une fréquence (une note) :
    par exemple, lorsque j'appuie sur "s", le PC joue un DO ; sur "e", le PC joue un DO#; sur "d" un RE ; etc.

    Dans un deuxième temps, je voudrais pouvoir paramétrer des sonorités (par exemple, choisir de jouer des notes de piano, ou des notes de guitare...)

    Dans un troisième temps, on pourrait imaginer une interface graphique : un clavier de piano dessiné à l'écran et lorsque j'appuie sur "s", le PC joue "DO" et à l'écran la touche DO s'enfonce.

    Voici l'idée :
    http://www.bgfl.org/bgfl/custom/reso...iano/index.htm

    Mais je veux pouvoir faire faire la même chose avec des élèves de collège...
    Ce sera peut-être plus simple, moins fonctionnel, le but est de les faire travailler en technologie sur de la programmation, en maths sur des algorithmes et que le logiciel obtenu puisse être exploité par le prof de musique pour enregistrer une œuvre (on enregistre une piste avec une sonorité, une autre avec une deuxième sonorité....)
    Le logiciel de montage audio peut-être à part et déjà existant; le tout c'est que les mélodies obtenues soient dans un format courant.

    Merci pour ton aide.

  7. #7
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Le langage Processing a été conçu pour des artistes et débutants, et il est particulièrement orienté vers le graphisme, le son et autres médias. Il a même un mini-IDE avec débogueur (le pas-à-pas, c'est formidable pour les débutants)

    Voici différents exemples sonores. Le quatrième ressemble à ce que tu désires.

    Cela me paraît bien plus indiqué que du C++, qui est un vieux langage pas du tout sympa pour les débutants. Jusque là tu utilisais en effet du C++, SFML n'étant qu'une bibliothèque.

    En revanche il faut être réaliste : tu n'apprendras pas à des élèves de collège à programmer, et surtout pas en dix, vingt ou même cent heures. En revanche tu peux leur faire bidouiller un programme existant. Ou leur en faire écrire un en les guidant pas à pas. Dans les deux cas il faut rester simple, oublie l'interface. Entre les concepts liés à la programmation et ceux liés aux ondes sonores, tu auras bien assez à leur bourrer dans le crâne.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Non effectivement, développer des programmes c'est un métier. En collège, nous ne faisons que de la découverte...
    L'idée est par exemple de leur faire voir comment faire un programme pour le "DO" sur la touche "S" ; puis qu'ils puissent reproduire, étendre le programme pour les autres notes...
    Ce qui pourrait être top, c'est de s'organiser en groupes de travail, par exemple, un groupe d'élèves génère des sons, un autre s'occupe des commandes au clavier, un autre s'occupe de tout rassembler, un autre encore pourrait imaginer une nouvelle façon de transcrire la musique sur papier (nouveau type de partition)........, Une partie du travail pourrait être faite en Techno, une autre en musique, une autre en math, on recherche vraiment un travail collaboratif.

    En plus de ce travail collaboratif, il nous est demandé de leur faire appréhender les boucles, les conditions logiques, les fonctions logiques... (if, then, else, while.....) mais c'est presque secondaire, car on peut le traiter dans d'autres projets (par exemple en programmant des robots avec un langage graphique genre organigramme et ça, je maitrise...)

    côté programme, j'ai besoin d'aide : j'ai le programme ci-dessous ; qu'est-ce que j'en fait ? je l'enregistre avec une extension spéciale ? , faut-il télécharger un logiciel ?, Compilation ?



    import processing.sound.*;

    AudioDevice device;
    SoundFile[] file;

    int red, green, blue;

    void setup() {
    size(640, 360);
    background(255);

    // Create an AudioDevice with low buffer size
    // and create an array containing 5 empty soundfiles
    device = new AudioDevice(this, 48000, 32);
    file = new SoundFile[5];

    // Load 5 soundfiles from a folder in a for loop.
    for (int i = 0; i < file.length; i++) {
    file[i] = new SoundFile(this, (i+1) + ".aif");
    }
    }

    void draw() {
    background(red, green, blue);
    }

    void keyPressed() {
    // Set a random background color each time you hit then number keys
    red=int(random(255));
    green=int(random(255));
    blue=int(random(255));

    // Assign a sound to each number on your keyboard. 1-5 play at
    // an octave below the original pitch of the file, 6-0 play at
    // an octave above.
    switch(key) {
    case '1':
    file[0].play(0.5, 1.0);
    break;
    case '2':
    file[1].play(0.5, 1.0);
    break;
    case '3':
    file[2].play(0.5, 1.0);
    break;
    case '4':
    file[3].play(0.5, 1.0);
    break;
    case '5':
    file[4].play(0.5, 1.0);
    break;
    case '6':
    file[0].play(2.0, 1.0);
    break;
    case '7':
    file[1].play(2.0, 1.0);
    break;
    case '8':
    file[2].play(2.0, 1.0);
    break;
    case '9':
    file[3].play(2.0, 1.0);
    break;
    case '0':
    file[4].play(2.0, 1.0);
    break;
    }
    }

  9. #9
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    codezero1,

    Je veux bien continuer aussi avec sfml ; je tiens à explorer toutes les pistes

  10. #10
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Pour Processing il faut que tu télécharges leur éditeur. Suis le guide : getting started.


    Pour SFML les exemples que tu as trouvés sont écrits dans le langage C ou C++. SFML n'est qu'une bibliothèque (un bout de programme réutilisable dans d'autres programmes) qui fournit des fonctionnalités multimédias. Pour l'interface graphique on utilisera une bibliothèque comme Qt. Si tu suis cette piste je te conseille de te pencher d'abord sur le C/C++. Pour l'éditeur tu peux regarder CodeBlocks.

Discussions similaires

  1. Transformer un PC en synthétiseur : le clavier devient un instrument de musique
    Par bernonl dans le forum Programmation pour enfants
    Réponses: 4
    Dernier message: 01/04/2018, 14h35
  2. Réponses: 21
    Dernier message: 30/03/2009, 00h00
  3. Votre langage de programmation serveur préféré pour le Web ?
    Par Marc Lussac dans le forum Général Conception Web
    Réponses: 82
    Dernier message: 18/02/2009, 17h50
  4. Programme audio (microphone) pour carte Embarquée
    Par littlesquall dans le forum C
    Réponses: 9
    Dernier message: 20/10/2005, 09h16
  5. Utilisation de MSXML pour la transformation XSL
    Par Supergizmo dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 25/07/2005, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo