lunedì 27 aprile 2009

Le relazioni tra i modelli in rails

Musica Midi, note musicali

import javax.sound.midi.*;
public class Musica3 {
    int[][] note={{67,2},{64,1},{65,1},{67,2},{64,1},{60,1},{62,1},{60,1},{62,1},{64,1},{60,3}};
    public static void main(String[] args){
        Musica3 mini=new Musica3();
       
        mini.play( );
    }
    public void play( ){
        try{
            Sequencer player=MidiSystem.getSequencer();
            player.open();
            player.setTempoInBPM(20);
           
            Sequence seq=new Sequence(Sequence.PPQ,4);
            Track track=seq.createTrack();
            for (int i=0; i<note.length; i++){
                track.add(makeEvent(144,1,note[i][0],100,i));
                track.add(makeEvent(128,1,note[i][0],100,i+note[i][1]));
                System.out.println(note[i][1]);
            }
           
            player.setSequence(seq);
            player.start();
           
            System.out.println(note[4][0]);
            System.out.println(note[4][1]);
        }
        catch (Exception ex) { ex.printStackTrace();}
    }
    public static MidiEvent makeEvent(int comd, int chan, int nota, int inizio, int fine){
        MidiEvent event=null;
        try {
            ShortMessage a=new ShortMessage();
            a.setMessage(comd,chan,nota,inizio);
            event=new MidiEvent(a,fine);
            }
            catch (Exception e) {e.printStackTrace();}
        return event;
    }
}

Musica Midi

import javax.sound.midi.*;
public class Musica2 {
    public static void main(String[] args){
        Musica2 mini=new Musica2();
       
        mini.play( );
        System.out.println("sono dopo mini");
       
       
    }
    public void play( ){
        try{
            Sequencer player=MidiSystem.getSequencer();
            player.open();
            player.setTempoInBPM(90);
            System.out.println("sono qui");
            Sequence seq=new Sequence(Sequence.PPQ,4);
            Track track=seq.createTrack();
            MidiEvent event=null;
           
            ShortMessage a=new ShortMessage();
            a.setMessage(144,1,60,100);
            MidiEvent noteOn1=new MidiEvent(a,1);
            track.add(noteOn1);
            ShortMessage b=new ShortMessage();
            b.setMessage(128,1,60,100);
            MidiEvent noteOff1=new MidiEvent(b,1);
            track.add(noteOff1);
           
            ShortMessage c=new ShortMessage();
            c.setMessage(144,1,61,100);
            MidiEvent noteOn2=new MidiEvent(c,2);
            track.add(noteOn2);
            ShortMessage d=new ShortMessage();
            d.setMessage(128,1,61,100);
            MidiEvent noteOff2=new MidiEvent(d,2 );
            track.add(noteOff2);
           
            ShortMessage e=new ShortMessage();
            e.setMessage(144,1,62,100);
            MidiEvent noteOn3=new MidiEvent(e,3);
            track.add(noteOn3);
            ShortMessage f=new ShortMessage();
            f.setMessage(128,1,62,100);
            MidiEvent noteOff3=new MidiEvent(f,3 );
            track.add(noteOff3);
           
            ShortMessage g=new ShortMessage();
            g.setMessage(144,1,63,100);
            MidiEvent noteOn4=new MidiEvent(g,4);
            track.add(noteOn4);
            ShortMessage h=new ShortMessage();
            h.setMessage(128,1,63,100);
            MidiEvent noteOff4=new MidiEvent(h,4 );
            track.add(noteOff4);
           
            ShortMessage i=new ShortMessage();
            i.setMessage(144,1,64,100);
            MidiEvent noteOn5=new MidiEvent(i,5);
            track.add(noteOn5);
            ShortMessage l=new ShortMessage();
            l.setMessage(128,1,64,100);
            MidiEvent noteOff5=new MidiEvent(l,6 );
            track.add(noteOff5);
           
            ShortMessage m=new ShortMessage();
            m.setMessage(144,1,63,100);
            MidiEvent noteOn6=new MidiEvent(m,7);
            track.add(noteOn6);
            ShortMessage n=new ShortMessage();
            n.setMessage(128,1,63,100);
            MidiEvent noteOff6=new MidiEvent(n,7 );
            track.add(noteOff6);
           
            ShortMessage o=new ShortMessage();
            o.setMessage(144,1,62,100);
            MidiEvent noteOn7=new MidiEvent(o,8);
            track.add(noteOn7);
            ShortMessage p=new ShortMessage();
            p.setMessage(128,1,62,100);
            MidiEvent noteOff7=new MidiEvent(p,8 );
            track.add(noteOff7);
           
            ShortMessage q=new ShortMessage();
            q.setMessage(144,1,61,100);
            MidiEvent noteOn8=new MidiEvent(q,9);
            track.add(noteOn8);
            ShortMessage r=new ShortMessage();
            r.setMessage(128,1,61,100);
            MidiEvent noteOff8=new MidiEvent(r,9 );
            track.add(noteOff8);
           
            ShortMessage s=new ShortMessage();
            s.setMessage(144,1,62,100);
            MidiEvent noteOn9=new MidiEvent(s,10);
            track.add(noteOn9);
            ShortMessage t=new ShortMessage();
            t.setMessage(128,1,62,100);
            MidiEvent noteOff10=new MidiEvent(t,10 );
            track.add(noteOff10);
           
            ShortMessage u=new ShortMessage();
            u.setMessage(144,1,63,100);
            MidiEvent noteOn11=new MidiEvent(u,11);
            track.add(noteOn11);
            ShortMessage v=new ShortMessage();
            v.setMessage(128,1,63,100);
            MidiEvent noteOff12=new MidiEvent(v,11 );
            track.add(noteOff12);
           
            ShortMessage z=new ShortMessage();
            u.setMessage(144,1,64,100);
            MidiEvent noteOn13=new MidiEvent(z,12);
            track.add(noteOn13);
            ShortMessage z1=new ShortMessage();
            z1.setMessage(128,1,64,100);
            MidiEvent noteOff13=new MidiEvent(z1,12 );
            track.add(noteOff13);
           
            ShortMessage z2=new ShortMessage();
            z2.setMessage(144,1,62,100);
            MidiEvent noteOn14=new MidiEvent(z2,13);
            track.add(noteOn14);
            ShortMessage z3=new ShortMessage();
            z3.setMessage(128,1,62,100);
            MidiEvent noteOff14=new MidiEvent(z3,16 );
            track.add(noteOff14);
           
            player.setSequence(seq);
            player.start();
            System.out.println("sono dopo start");
        }
        catch (Exception ex) { ex.printStackTrace();}
    }
}