MIDI

Reproducir Sonidos en Java

import javax.sound.midi.*;

public class Midi
{

        public static void main (String[] args)
        {
                int freq = Integer.parseInt(args[0]);
                int volu = Integer.parseInt(args[1]);
                Synthesizer syn = null;
               
                try
                {
                        syn = MidiSystem.getSynthesizer();
                }
               
                catch(MidiUnavailableException ext)
                {
                        System.out.println("Exception");
                }
               
                catch(Exception ext)
                {
                        System.out.println("Exception");
                }
               
                try
                {
                        syn.open();
                }
               
                catch(MidiUnavailableException exc)
                {
                        System.out.println("Exception");
                }
               
                MidiChannel[] canales;
                MidiChannel canal;
               
                for(int i=0;i<=1;i++)
                {
                        canales = syn.getChannels();
                        canal = canales[9];
                        canal.noteOn(freq,volu);
                        try
                        {
                                Thread.sleep(500);
                        }
               
                        catch(InterruptedException exp)
                        {
                                System.out.println("Exception");
                        }
                        canal.noteOff(freq);
                }
               
                for(int i=0;i<=6;i++)
                {
                        canales = syn.getChannels();
                        canal = canales[9];
                        canal.noteOn(freq,volu);
                        try
                        {
                                Thread.sleep(250);
                        }
               
                        catch(InterruptedException exp)
                        {
                                System.out.println("Exception");
                        }
                        canal.noteOff(freq);
                }
               
                try
                {
                        Thread.sleep(700);
                }
       
                catch(InterruptedException exp)
                {
                        System.out.println("Exception");
                }
               
                for(int i=0;i<=6;i++)
                {
                        canales = syn.getChannels();
                        canal = canales[9];
                        canal.noteOn(freq,volu);
                        try
                        {
                                Thread.sleep(250);
                        }
               
                        catch(InterruptedException exp)
                        {
                                System.out.println("Exception");
                        }
                        canal.noteOff(freq);
                }
                syn.close();
        }
}