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

Multimédia Java Discussion :

Sons en Java


Sujet :

Multimédia Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut Sons en Java
    Bonjour,

    Comment programmer des sons en java ? Il doit falloir donner l'enveloppe, le spectre, si c'est possible.
    Ou au moins peut-on emettre des sons synthetises par un autre logiciel ?
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 897
    Billets dans le blog
    54
    Par défaut
    Le moyen le plus simple (et le plus simpliste) de lire des sons est d'utiliser la classe AudioClip... mais bon a part la lecture tu ne peux rien faire d'autres et tu n'auras aucun controle specifique.

    Tu as ensuite le package javax.sound et Java Sound pour ce qui est de la synthese (MIDI) et quelques manipulations plus avancees y compris de la capture. C'est inclus dans le JDK/JRE

    Et enfin tu as l'extension Java Media Framework qui permet, entre autre, de faire de la capture audio et video avancee. Cette extension doit etre installee separement.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut
    Merci.
    Je vais utiliser javax.sound.midi.
    Que representent les "data byte" d'un midi message ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut
    J'ai essayé d'implementer MidiMessage et il me renvoie toujours l'erreur suivante:
    EssaiSon.java:17: MidiMessage(byte[]) in javax.sound.midi.MidiMessage cannot be applied to ()

    Pourriez-vous me donner un exemple d'extension de MidiMessage ?

    En effet MidiMessage est une classe abstraite donc il faut la rendre concrete en implementant clone().

    Merci d'avance.

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 897
    Billets dans le blog
    54
    Par défaut
    Malheureusement je sais juste que ces APIs existent mais je ne les ai jamais utilisees. Il va donc te falloir chercher de la doc sur le Net. Tu peux egalement voir s'il en discutent dans le forum (anglais) dedie a Java Sound sur http://www.javagaming.org/

    La classe que tu cites est abstraite mais il en existe des implementations :
    MetaMessage, ShortMessage, SysexMessage. Apres j'ignore totalement ce a quoi elle servent.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut
    Merci beaucoup. Finalement, j'y suis arrivé en utilisant ShortMessage. Ca fait un son de piano mais j'imagine qu'on doit pouvoir changer l'instrument.
    Je mets un exemple de code pour information.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.sound.midi.*;
     
    public class EssaiPiano {
    public static void main (String args[])
    {ShortMessage m[];int i;int N=20;
    m=new ShortMessage[N];
    for(i=0;i<N;i++){m[i]=new ShortMessage();}
    try{
    for(i=0;i<N;i++){
    m[i].setMessage(128+16,(40+i/2)*(i%2+1),124);}}
    catch(InvalidMidiDataException e){}
    MidiEvent eve[];
    eve=new MidiEvent[N];
    for(i=0;i<N;i++){
    eve[i]=new MidiEvent(m[i],i/2+1);
    }
    Track t;
    Sequencer pi=null;
    try{
    pi=MidiSystem.getSequencer();
    pi.open();}
    catch(MidiUnavailableException e)
    {System.out.println("erreur");}
    Sequence s=null;
    try{
    s=new Sequence(Sequence.PPQ,1);
    }
    catch(InvalidMidiDataException e){System.out.println("erreur1");}
    t=s.createTrack();
    for(i=0;i<N;i++){t.add(eve[i]);}
    try{
    pi.setSequence(s);pi.start();
     
    }
    catch(InvalidMidiDataException e){System.out.println("erreur3");}
     
     
     
    }
     
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bien commenter son code Java
    Par shaun_the_sheep dans le forum Général Java
    Réponses: 2
    Dernier message: 27/05/2008, 11h13
  2. Gérer les sons avec JAVA
    Par Luffy49 dans le forum Multimédia
    Réponses: 5
    Dernier message: 17/01/2008, 22h41
  3. distribuer son application java et ses lib [jni]
    Par hpavavar dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 31/05/2007, 10h28
  4. carte son et java
    Par ghilen06 dans le forum Multimédia
    Réponses: 2
    Dernier message: 28/03/2007, 17h10
  5. Sons en java
    Par Satch dans le forum Multimédia
    Réponses: 7
    Dernier message: 16/07/2004, 08h20

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