import java.applet.Applet; import java.awt.event.*; import java.awt.*; import java.awt.Graphics; import javax.sound.midi.*; public class Klaver extends Applet implements KeyListener{ // klaviatuuri kuulamine MidiChannel kanal,kanal1,kanal2; // 3 kanalit //----------- Konstruktor ---------------- public Klaver(){ addKeyListener(this); // aknale nupu kuulamine try{ Synthesizer synthesizer=MidiSystem.getSynthesizer(); // pöördutakse süntesaatori poole synthesizer.open(); // avatakse sünt kanal=synthesizer.getChannels()[0]; // muutujatele omistatakse "füüsilised" kanalid kanal1=synthesizer.getChannels()[1]; kanal2=synthesizer.getChannels()[2]; kanal.programChange(1, 30); // pillid paika kanal1.programChange(1, 25); kanal2.programChange(1, 25);} catch (Exception viga){} } //------------- Mängimine ----------------- public void mangi(int noot,int noot1,int noot2){ try{ kanal.noteOn(noot, 255); // kestvus Thread.sleep(400); kanal1.noteOn(noot1, 255); Thread.sleep(400); kanal2.noteOn(noot2, 255); Thread.sleep(400); kanal.noteOff(noot); kanal1.noteOff(noot1); kanal2.noteOff(noot2); }catch(Exception w){}; } //------------------- Duuri noodid ---------------------- public void keyPressed(KeyEvent e){ int kood=e.getKeyCode(); // nupukood int noot=0; // noot alguses 0 int noot1=0; int noot2=0; switch(kood){ // igale tuurile 3 nooti case 90: noot=55;noot1=59;noot2=62; break; case 88: noot=57;noot1=60;noot2=64; break; case 67: noot=59;noot1=63;noot2=66; break; case 86: noot=55;noot1=60;noot2=64; break; case 66: noot=57;noot1=62;noot2=66; break; case 78: noot=56;noot1=59;noot2=64; break; case 77: noot=58;noot1=61;noot2=66; break; } mangi(noot,noot1,noot2); // kutsub välja mängimise } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} public static void main(String argumendid[]) throws Exception{ Frame f=new Frame("Klaver"); f.setSize(200, 200); f.add(new Klaver()); f.setVisible(true); f.addWindowListener(new Kinni()); } } class Kinni extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.exit(0); } }