import java.applet.Applet; import java.awt.*; import java.awt.event.*; import javax.sound.midi.*; import javax.sound.midi.Sequencer; //import java.util.*; import java.io.*; public class noodid extends Applet implements MouseListener { //28 jagatud 3,5 on kaheksa seega iga 2 noodijoone vahe kohta 3,5 noodiraadiust pluss 2 ühikut int[] noodikorgus=new int[34]; int[] heliredel={78,76,74,72,71,69,67,65,64,62,60}; int vasakserv=10; int ylaserv=20; int paremserv=350; int joonevahe=14; int noodivahe=10; int noodiraadius=8; MidiChannel kanal; List L1; List L2; List L3; List L4; List L5; List L6; List L7; List L8; List L9; List L10; List L11; public noodid() { try { setLayout(new BorderLayout()); Panel p=new Panel(new GridLayout(11,1)); L1=new List(3,false); L1.add("0"); L1.add("b"); L1.add("#"); p.add(L1); L2=new List(3,false); L2.add("0"); L2.add("b"); L2.add("#"); p.add(L2); L3=new List(3,false); L3.add("0"); L3.add("b"); L3.add("#"); p.add(L3); L4=new List(3,false); L4.add("0"); L4.add("b"); L4.add("#"); p.add(L4); L5=new List(3,false); L5.add("0"); L5.add("b"); L5.add("#"); p.add(L5); L6=new List(3,false); L6.add("0"); L6.add("b"); L6.add("#"); p.add(L6); L7=new List(3,false); L7.add("0"); L7.add("b"); L7.add("#"); p.add(L7); L8=new List(3,false); L8.add("0"); L8.add("b"); L8.add("#"); p.add(L8); L9=new List(3,false); L9.add("0"); L9.add("b"); L9.add("#"); p.add(L9); L10=new List(3,false); L10.add("0"); L10.add("b"); L10.add("#"); p.add(L10); L11=new List(3,false); L11.add("0"); L11.add("b"); L11.add("#"); p.add(L11); add(p, BorderLayout.WEST); Synthesizer synthesizer=MidiSystem.getSynthesizer(); synthesizer.open(); kanal=synthesizer.getChannels()[0]; kanal.programChange(0,25); addMouseListener(this); }catch(Exception e){System.out.println(e);} } //Joonistab noodijooned ja massiivist noodid public void paint (Graphics g) { //noodijooned for(int i=1; i<6; i++) { g.drawLine(vasakserv, ylaserv+i*joonevahe, paremserv, ylaserv+i*joonevahe); } //noodid massiivist; for(int i=0; i4){y=y-(noodikorgus[i]-3);} g.drawOval(x,y,noodiraadius, noodiraadius); } } } public static void main(String arg[]) { Frame f=new Frame("Noodid"); f.add(new noodid()); f.setSize(370,240); f.setVisible(true); } public void panemassiivi(int x, int y) { //x on vahemikus 1-34 //y on vahemikus 1-11 int uusX=(int)(x/10); int uusY=(int)((y-ylaserv)/noodiraadius)+1; System.out.println("Panin massiivi kohale: "+uusX+" kõrguse: "+uusY); noodikorgus[uusX]=uusY; } public void mousePressed(MouseEvent e) { if(e.getY()>ylaserv && e.getY()<(ylaserv+joonevahe*6)) { System.out.println("Sain hiireclicki: "+e.getX()+":"+e.getY()); panemassiivi(e.getX(), e.getY()); repaint(); //mängi noot int korgus=heliredel[(int)((e.getY()-ylaserv)/noodiraadius)]; switch ((int)((e.getY()-ylaserv)/noodiraadius)+1) { case 1: if(L1.getSelectedItem().compareTo("b")==0){korgus=korgus-1;} if(L1.getSelectedItem().compareTo("#")==0){korgus=korgus+1;} case 2: if(L2.getSelectedItem().compareTo("b")==0){korgus=korgus-1;} if(L2.getSelectedItem().compareTo("#")==0){korgus=korgus+1;} case 3: if(L3.getSelectedItem().compareTo("b")==0){korgus=korgus-1;} if(L3.getSelectedItem().compareTo("#")==0){korgus=korgus+1;} } System.out.println("Mängin nooti kõrgusega: "+korgus); kanal.noteOn(korgus, 60); try{Thread.sleep(150);}catch(Exception ex){System.out.println(ex);} kanal.noteOff(korgus); } } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseReleased(MouseEvent e){} }