All pastes #13494 Raw Edit

midichor08

public java v1 · immutable
#13494 ·published 2005-06-06 06:19 UTC
rendered paste body
import java.applet.*;import java.lang.Boolean;import java.util.*;import java.util.StringTokenizer;import java.lang.String;import java.awt.*;import javax.swing.*;import javax.swing.event.*;import java.awt.event.*;import javax.sound.midi.*;import javax.sound.midi.MidiSystem;import javax.sound.midi.Sequencer;import javax.sound.midi.Soundbank;import java.io.*;import java.net.MalformedURLException;import java.net.URL;public class MidiChor08 extends JApplet implements ActionListener,ItemListener,/*AdjustmentListener,*/ChangeListener {    Font font = new Font("Helvetica",0,12);    Font fontTitre = new Font("Helvetica",1,16);    Font fontSign = new Font("Helvetica",0,10);    Font f;    FlowLayout fl = null;  //pas de protocole    JComboBox	choixFichierMidi;    JButton	joue;    JButton	arret;    JButton	pause;    JButton	charger;    JButton	max;    JButton	min;    JLabel tempoVal;    JLabel tempoAff;    JSliderGradue	scr3,scr3VolSop,scr3VolAlt,scr3VolTen,scr3VolBas,scr3VolX,scr3VolY;    GridBagLayout  containerGridBag;    Container panel;    Sequencer player;    Sequence  seqChant;    int sel=4,nbst,volSop=50,volAlt=50,volTen=50,volBas=50,volX=50,volY=50;    int tempo=60;    String tampon,toto,tata,volS,soundBankString;    StringTokenizer st1;    StringTokenizer st2;    String[] midiFile = new String[20];    String[] debutFich= new String[20];    String[] finFich = new String[20];    String[] termFich = new String[20];    URL url;    URL urlBank;        File fichier,bank;    float mpq;    Synthesizer synthesizer;    MidiChannel channels[];    public static final int VOLUME_CONTROLLER=7;    Color couleurFond = new Color(224,189,158);    Color couleur2 = new Color(255,204,51);    boolean visible[] = new boolean[5] ;    int nombreCanal,compteur;    JLabel vols,vola,volt,volb,volx,voly,s,a,t,b,x,y,tempoNum;    Soundbank soundbank=null;    Receiver receiver;    ShortMessage volMsg;        public void init()  {        setBackground(couleurFond);        compteur=0;        //chargeBank();        for (int i = 1; i < 7; i++) {            String inFile = getParameter("file" + i);// penser a messagettre obligatoirement en 1 les 4 voix, en 2 la voix en entiere , puis mesure            if (inFile != null)                 {                compteur=compteur+1;                midiFile[i-1] = inFile;                StringTokenizer st1 = new StringTokenizer(midiFile[i-1], ".");//renvoie le nomFich du fichierer sans l'extension mid                    tampon=st1.nextToken();                                        StringTokenizer st2 = new StringTokenizer(tampon, "/");//                    debutFich[i-1] = st2.nextToken().trim();//.trimm() enlve less blancs                    finFich[i-1] = st2.nextToken();                termFich[i-1]=st2.nextToken();                }                       }               containerGridBag = new GridBagLayout ();        panel = getContentPane();            // Creation d'un GridBagLayout        GridBagConstraints constraints = new GridBagConstraints ();            panel.setLayout (containerGridBag);            panel.setBackground(couleurFond);        // Creation des composants et ajout au container        JLabel titre = new JLabel("Ecouter un Fichier MIDI");        titre.setFont(fontTitre);        constraints.gridx=0;        constraints.gridy=0;        constraints.gridwidth =9;        constraints.insets     = new Insets (0, 0, 0, 0);        constraints.anchor  = GridBagConstraints.CENTER;        constraints.fill = GridBagConstraints.RELATIVE;        containerGridBag.setConstraints (titre, constraints);                JLabel niveauMax = new JLabel("tous les niveaux au maximum :  ");        setFont(font);        constraints.gridx=5;        constraints.gridy=1;        constraints.gridwidth=4;                constraints.anchor  = GridBagConstraints.EAST;        constraints.insets     = new Insets (0, 0, 0, 0);        containerGridBag.setConstraints (niveauMax, constraints);            max = new JButton("Max");        max.addActionListener(this);        constraints.insets     = new Insets (0, 0, 0, 0);        constraints.gridx=9;        constraints.gridy=1;        constraints.gridwidth=1;        constraints.anchor  = GridBagConstraints.WEST;        panel.add (max);        containerGridBag.setConstraints (max, constraints);        JLabel choisir  = new JLabel("Choisissez : ");        panel.add(choisir);        constraints.gridx=0;        constraints.gridy=2;        constraints.gridwidth=2;        constraints.insets     = new Insets (4, 2, 2, 2);        containerGridBag.setConstraints (choisir, constraints);                        constraints.gridwidth=1;    constraints.gridy=2;    JLabel s  = new JLabel("S");        panel.add(s);        s.setBackground(Color.green);        constraints.weightx=0.1;        constraints.gridx=4;        constraints.gridy=2;        constraints.gridwidth=1;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (s, constraints);         JLabel a  = new JLabel("A");        panel.add(a);        constraints.weightx=0.1;        constraints.gridx=5;        constraints.gridy=2;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (a, constraints);         JLabel t  = new JLabel("T");        panel.add(t);        constraints.weightx=0.1;        constraints.gridx=6;        constraints.gridy=2;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (t, constraints);         JLabel b  = new JLabel("B");        panel.add(b);        constraints.weightx=0.1;        constraints.gridx=7;        constraints.gridy=2;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (b, constraints);            JLabel x  = new JLabel("X");        panel.add(x);        constraints.weightx=0.1;        constraints.gridx=8;        constraints.gridy=2;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (x, constraints);            JLabel y  = new JLabel("Y");        constraints.gridwidth  = GridBagConstraints.REMAINDER;//le dernier sur la ligne        panel.add(y);        constraints.weightx=0.1;        constraints.gridx=9;        constraints.gridy=2;        constraints.fill = GridBagConstraints.RELATIVE;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (y, constraints);        choixFichierMidi = new JComboBox();        choixFichierMidi.addItemListener(this);        choixFichierMidi.addItem("Choix du fichier");        for (int i = 0; i < compteur; i++) {            choixFichierMidi.addItem(termFich[i]);        }        constraints.gridx=0;        constraints.gridy=3;        constraints.gridwidth =2;        constraints.insets     = new Insets (4, 2, 2, 4);        panel.add (choixFichierMidi);        containerGridBag.setConstraints (choixFichierMidi, constraints);        charger = new JButton ("Charger");        charger.addActionListener(this);        constraints.gridx=2;        constraints.gridy=3;        constraints.insets     = new Insets (4, 2, 2,4);        panel.add (charger);        containerGridBag.setConstraints (charger, constraints);         vols  = new JLabel();        vols.setText(""+volSop);        panel.add(vols);        constraints.gridx=4;        constraints.gridy=3;        constraints.gridwidth =1;        constraints.weightx=1;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (vols, constraints);        vola  = new JLabel(""+volAlt);        panel.add(vola);        constraints.gridx=5;        constraints.gridy=3;        constraints.weightx=1;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (vola, constraints);         volt  = new JLabel(""+volTen);        panel.add(volt);        constraints.gridx=6;        constraints.gridy=3;        constraints.weightx=1;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (volt, constraints);         volb  = new JLabel(""+volBas);        panel.add(volb);        constraints.gridx=7;        constraints.gridy=3;        constraints.weightx=1;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (volb, constraints);            volx  = new JLabel(""+volX);        panel.add(volx);        constraints.gridx=8;        constraints.gridy=3;        constraints.weightx=1;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (volx, constraints);        voly  = new JLabel(""+volY);        panel.add(voly);        constraints.gridx=9;        constraints.gridy=3;        constraints.weightx=1;        constraints.insets     = new Insets (2, 5, 5, 2);        containerGridBag.setConstraints (voly, constraints);            joue = new JButton ("Jouer");        joue.addActionListener(this);        constraints.gridx=0;        constraints.gridy=4;        constraints.insets     = new Insets (55, 2, 55, 2);        panel.add (joue);        containerGridBag.setConstraints (joue, constraints);    arret = new JButton ("Arreter");        arret.addActionListener(this);        constraints.gridx=1;        constraints.gridy=4;        constraints.insets     = new Insets (55, 2, 55, 2);        panel.add (arret);        containerGridBag.setConstraints (arret, constraints);        pause = new JButton ("Pause");        pause.addActionListener(this);        constraints.gridx=2;        constraints.gridy=4;        constraints.insets     = new Insets (55, 2, 55, 2);        panel.add (pause);        containerGridBag.setConstraints (pause, constraints);        //ascenceur pourur less volumes        scr3VolSop = new JSliderGradue (JSlider.VERTICAL,0,127,volSop);    scr3VolSop.addChangeListener (this);    scr3VolSop.setPaintTicks(true);    scr3VolSop.setPaintLabels(true);    scr3VolSop.setMajorTickSpacing(20);    scr3VolSop.setMinorTickSpacing(5);        constraints.gridx=4;    constraints.gridy=4;    constraints.fill = GridBagConstraints.VERTICAL;    constraints.insets     = new Insets (2, 5, 5, 2);    panel.add (scr3VolSop);    containerGridBag.setConstraints (scr3VolSop, constraints);        scr3VolAlt = new JSliderGradue (JSlider.VERTICAL,0,127,volAlt);    scr3VolAlt.addChangeListener (this);       constraints.gridx=5;    constraints.gridy=4;    constraints.insets     = new Insets (2, 5, 5, 2);    panel.add (scr3VolAlt);    containerGridBag.setConstraints (scr3VolAlt, constraints);        scr3VolTen = new JSliderGradue (JSlider.VERTICAL,0,127,volTen);    scr3VolTen.addChangeListener (this);        constraints.gridx=6;    constraints.gridy=4;    constraints.insets     = new Insets (2, 5, 5, 2);    panel.add (scr3VolTen);    containerGridBag.setConstraints (scr3VolTen, constraints);        scr3VolBas = new JSliderGradue (JSlider.VERTICAL,0,127,volBas);    scr3VolBas.addChangeListener (this);        constraints.gridx=7;    constraints.gridy=4;    constraints.insets     = new Insets (2, 5, 5, 2);    panel.add (scr3VolBas);    containerGridBag.setConstraints (scr3VolBas, constraints);        scr3VolX = new JSliderGradue (JSlider.VERTICAL,0,127,volX);    scr3VolX.addChangeListener (this);       constraints.gridx=8;    constraints.gridy=4;    constraints.insets     = new Insets (2, 5, 5, 2);    panel.add (scr3VolX);    containerGridBag.setConstraints (scr3VolX, constraints);        scr3VolY = new JSliderGradue (JSlider.VERTICAL,0,127,volY);    scr3VolY.addChangeListener (this);        constraints.gridx=9;    constraints.gridy=4;    constraints.insets     = new Insets (2, 5, 5, 2);    panel.add (scr3VolY);    containerGridBag.setConstraints (scr3VolY, constraints);        JLabel tempoAff  = new JLabel("TEMPO : ");        panel.add(tempoAff);        constraints.gridx=1;        constraints.gridy=5;        constraints.insets     = new Insets (0, 0, 0, 0);        containerGridBag.setConstraints (tempoAff, constraints);            tempoNum  = new JLabel();        tempoNum.setText(""+tempo);        constraints.gridx=2;        constraints.gridy=5;        panel.add(tempoNum);        constraints.insets     = new Insets (0, 0, 0, 0);        containerGridBag.setConstraints (tempoNum, constraints);        JLabel niveauMin = new JLabel("tous les niveaux au minimum :  ");        panel.add(niveauMin);        constraints.gridx=5;        constraints.gridy=5;        constraints.gridwidth =4;        constraints.anchor  = GridBagConstraints.EAST;        constraints.insets     = new Insets (0, 0, 0, 0);        containerGridBag.setConstraints (niveauMin, constraints);        min = new JButton("min");        min.addActionListener(this);        constraints.gridx=9;        constraints.gridy=5;        constraints.gridwidth =2;        constraints.anchor  = GridBagConstraints.WEST;        constraints.insets     = new Insets (0, 0, 0, 0);        panel.add (min);        containerGridBag.setConstraints (min, constraints);         scr3 = new JSliderGradue (JSlider.HORIZONTAL,0 ,255 ,tempo);        scr3.addChangeListener(this);        constraints.gridx=0;        constraints.gridy=7;        constraints.gridwidth =5;        constraints.fill = GridBagConstraints.HORIZONTAL;        constraints.insets     = new Insets (4, 4, 4, 4);        panel.add (scr3);        containerGridBag.setConstraints (scr3, constraints);            JLabel signature = new JLabel("D. MALIK   V 0.8b");        signature.setFont(fontSign);        constraints.gridx=9;        constraints.gridy=8;        constraints.gridwidth =4;        constraints.insets     = new Insets (0, 0, 0, 0);        containerGridBag.setConstraints (signature, constraints);            // Mise en forme des composants dans le container        panel.add(titre);    panel.add(signature);    panel.add(niveauMax);    validate();          }    public class JSliderGradue extends JSlider {        Color monBleu = new Color(226,176,133);        public JSliderGradue(int orientation, int min, int max,int value) {            super(orientation, min, max, value);            setBackground(monBleu);            setForeground(Color.black);                      this.setPaintTicks(true);                   this.setMajorTickSpacing(20);                  this.setMinorTickSpacing(5);                  this.setPaintLabels(true);        }    }    public void chargeBank() {        try {             if (soundbank == null) {                                 //FilePermission perm = new FilePermission("*.*","read");            String soundBankString = getParameter("bank");            System.out.println(soundBankString);            urlBank = new URL(getCodeBase(),soundBankString);            System.out.println(urlBank);            soundbank = MidiSystem.getSoundbank(urlBank);            synthesizer.loadAllInstruments(soundbank);            if (soundbank == null) {                System.out.println("soundbank is null");}                            }        }        catch (MalformedURLException e) {            System.out.println("Erreur URL ! soundbank");        }        catch (IOException e) {            System.out.println("Erreur d'Entree Sortie soundbank");        }         catch (InvalidMidiDataException e) {            System.out.println("Invalid Midi data! soundbank");        }    }    public void charge() {        try {                          player = MidiSystem.getSequencer();            //player.addMetaEventListener(this);            if (!(player instanceof Synthesizer)) {                synthesizer = MidiSystem.getSynthesizer();            }            else {                synthesizer = (Synthesizer) player;            }                    //synthesizer.open();        //Receiver receiver = synthesizer.getReceiver();            soundbank = synthesizer.getDefaultSoundbank();            if (soundbank == null) {                System.out.println("soundbank is null");                //String soundBankString = getParameter("bank");                String soundBankString="soundbank-min.gm";                System.out.println("nom du fichier = "+soundBankString);                URL urlBank = new URL(getCodeBase() ,soundBankString);                System.out.println("nom de l'URL = "+urlBank);                Soundbank s = MidiSystem.getSoundbank(urlBank);                System.out.println("soundbank charge !");                synthesizer.loadAllInstruments(s);             }            else {                System.out.println("Y'A quelque chose !");            }            File fichier=new File(midiFile[sel-1]);            url= new URL(getCodeBase().toString()+midiFile[sel-1]);            seqChant = MidiSystem.getSequence(url);             player.open();            player.setSequence(seqChant);            mpq=player.getTempoInBPM();            channels = synthesizer.getChannels();            tempo=(int)mpq;            scr3.setValue(tempo);            tempoNum.setText(""+tempo);                  scr3VolSop.setValue(prendVolume(0));            scr3VolAlt.setValue(prendVolume(1));            scr3VolTen.setValue(prendVolume(2));            scr3VolBas.setValue(prendVolume(3));            scr3VolX.setValue(prendVolume(4));            scr3VolY.setValue(prendVolume(5));            scr3VolSop.setEnabled(true);        scr3VolAlt.setEnabled(false);           // repaint();        // gainSlider.setEnabled(true);  signature on veut quelqueu'il soit en tata de marche            int nombreCanal = channels.length;             /*for(int i = 0; i < nombreCanal; i++) {                visible[i]=(channels[i] != null )? true : false;             }//fin de for             scr3VolSop.setVisible(visible[0]) ;              scr3VolAlt.setVisible(visible[1]) ;              scr3VolTen.setVisible(visible[2]) ;              scr3VolBas.setVisible(visible[3]) ;              scr3VolX.setVisible(visible[4]) ;              scr3VolY.setVisible(visible[5]);             vols.setVisible(visible[0]) ;              vola.setVisible(visible[1]) ;              volt.setVisible(visible[2]) ;              volb.setVisible(visible[3]) ;              volx.setVisible(visible[4]) ;              voly.setVisible(visible[5]);             s.setVisible(visible[0]) ;              a.setVisible(visible[1]) ;              t.setVisible(visible[2]) ;              b.setVisible(visible[3]) ;              x.setVisible(visible[4]) ;              y.setVisible(visible[5]);*/                     }            catch (MalformedURLException e) {            System.out.println("Erreur URL ! dans charge()");        } catch (IOException e) {            System.out.println("Erreur d'Entree Sortie dans charge()");        } catch (MidiUnavailableException e) {            System.out.println("Fichier midi non valide dans charge()");        } catch (InvalidMidiDataException e) {            System.out.println("Invalid Mididididi data! dans charge()");        }          }            public void joue() {           { player.start();           scr3VolSop.setValue(prendVolume(0));            scr3VolAlt.setValue(prendVolume(1));            scr3VolTen.setValue(prendVolume(2));            scr3VolBas.setValue(prendVolume(3));            scr3VolX.setValue(prendVolume(4));            scr3VolY.setValue(prendVolume(5));            scr3VolSop.setEnabled(true);        scr3VolAlt.setEnabled(false);}            //tempo();    }        public void arret() {        player.stop();        player.close();    }    public void tempo() {        tempo=scr3.getValue();                 tempoNum.setText(""+tempo);          player.setTempoInBPM(tempo);    }    public void changeVolume(int voix,int niveau) {        channels[voix].controlChange(7, niveau);        int vol=(int)channels[voix].getController(7);    System.out.println("canal N"+voix+"lecture du volumes dans midiFile = "+vol);   /* try {        ShortMessage volMsg = new ShortMessage();        volMsg.setMessage(ShortMessage.CONTROL_CHANGE, voix,VOLUME_CONTROLLER, niveau);        receiver.send(volMsg, -1);    }    catch (InvalidMidiDataException e) {            System.out.println("Invalid Mididididi data!");        }*/    }    public int prendVolume(int voix) {        int vol=(int)channels[voix].getController(7);        return(vol);    }    public void max() {        for (int i=0 ; i < nombreCanal ; i++) {            changeVolume(i,127);        }        scr3VolSop.setValue(127) ;         scr3VolAlt.setValue(127) ;         scr3VolTen.setValue(127) ;         scr3VolBas.setValue(127) ;         scr3VolX.setValue(127) ;         scr3VolY.setValue(127);        vols.setText("127") ;         vola.setText("127") ;        volt.setText("127") ;         volb.setText("127") ;         volx.setText("127") ;         voly.setText("127");    }    public void min() {        for (int i=0 ; i < nombreCanal ; i++) {            changeVolume(i,0);        }        scr3VolSop.setValue(0) ;        scr3VolAlt.setValue(0) ;        scr3VolTen.setValue(0) ;        scr3VolBas.setValue(0) ;        scr3VolX.setValue(0) ;        scr3VolY.setValue(0);        vols.setText("0") ;        vola.setText("0") ;         volt.setText("0") ;         volb.setText("0") ;         volx.setText("0") ;         voly.setText("0");    }    /*class SliderListener implements ChangeListener {        public void stateChanged(ChangeEvent evt) {            JSlider source = (JSlider)evt.getSource();            volSop = (int)source.getValue();            showStatus(Integer.toString(volSop));        }    }*/    public void stateChanged(ChangeEvent e) {        JSlider source = (JSlider)e.getSource();        if (!source.getValueIsAdjusting()) {           tempo();            vols.setText(""+scr3VolSop.getValue ());            volSop=scr3VolSop.getValue ();        System.out.println("le volume des sop est d'aprs le curseur="+volSop);            changeVolume(0,volSop);        System.out.println("lecture du volumes danss midiFile = "+prendVolume(0));                    vola.setText(""+scr3VolAlt.getValue ());            volAlt=scr3VolAlt.getValue ();            changeVolume(1,volAlt);                    volt.setText(""+scr3VolTen.getValue ());            volTen=scr3VolTen.getValue ();            changeVolume(2,volTen);                    volb.setText(""+scr3VolBas.getValue ());            volBas=scr3VolBas.getValue ();            changeVolume(3,volBas);                    volx.setText(""+scr3VolX.getValue ());            volX=scr3VolX.getValue ();            changeVolume(4,volX);                    voly.setText(""+scr3VolY.getValue ());            volY=scr3VolY.getValue ();            changeVolume(5,volY);                    repaint();        }    }      public void itemStateChanged(ItemEvent evt) {	        sel=choixFichierMidi.getSelectedIndex();    }    public void actionPerformed(ActionEvent evt) {                if (evt.getSource()==arret)            arret();        else if (evt.getSource()==joue)            joue();        else if (evt.getSource()==charger)            charge();                     else if (evt.getSource()==max)            max();        else if (evt.getSource()==min)            min();            repaint();    }}