Advertisement
Sampywise

Final Project (Piano)

Jul 11th, 2013
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.46 KB | None | 0 0
  1. import java.applet.AudioClip;
  2. import java.awt.Color;
  3. import java.awt.event.KeyEvent;
  4.  
  5. import acm.graphics.GRect;
  6. import acm.program.GraphicsProgram;
  7. import acm.util.MediaTools;
  8.  
  9.  
  10.      
  11.      
  12. public class Piano extends GraphicsProgram {
  13.       //defines size of window:
  14.      public static final int APPLICATION_WIDTH = 1000;
  15.      public static final int APPLICATION_HEIGHT = 500;
  16.      //defines dimensions of keys:
  17.      public static final int KEY_WIDTH = 100;
  18.      public static final int KEY_HEIGHT = 200;
  19.      //defines the distance of the keys form the bottom:
  20.      public static final int KEY_Y_OFFSET = 255;
  21.      public static final int BLACK_KEY_Y_OFFSET = 45;
  22.      //offset form the side:
  23.      public static final int KEY_X_OFFSET = 45;
  24.      public static final int BLACK_KEY_X_OFFSET = 100;
  25.      //defines the space between the keys:
  26.      public static final int KEY_SEP_Y = 10;
  27.      //defines the space sideways between keys:
  28.      public static final int KEY_SEP_X = 15;
  29.      
  30.            
  31.      AudioClip lowC = MediaTools.loadAudioClip("Low C.wav");
  32.      AudioClip cSharp = MediaTools.loadAudioClip("cSharp.wav");
  33.      AudioClip d = MediaTools.loadAudioClip("D.wav");
  34.      AudioClip dSharp = MediaTools.loadAudioClip("dSharp.wav");
  35.      AudioClip e = MediaTools.loadAudioClip("E.wav");
  36.      AudioClip f = MediaTools.loadAudioClip("F.wav");
  37.      AudioClip fSharp = MediaTools.loadAudioClip("fSharp.wav");
  38.      AudioClip g = MediaTools.loadAudioClip("G.wav");
  39.      AudioClip gSharp = MediaTools.loadAudioClip("gSharp.wav");
  40.      AudioClip a = MediaTools.loadAudioClip("A.wav");
  41.      AudioClip aSharp = MediaTools.loadAudioClip("aSharp.wav");
  42.      AudioClip b = MediaTools.loadAudioClip("B.wav");
  43.      AudioClip highC = MediaTools.loadAudioClip("High C.wav");
  44.    
  45.            
  46.            
  47.      public static void main(String[] args) {
  48.          new Piano().start(args);
  49.      }
  50.  
  51.      public void run() {
  52.          getGCanvas().setBackground(Color.BLACK);
  53.          setUpWhiteKeys();
  54.          setUpBlackKeys();
  55.          addKeyListeners();
  56.      }
  57.            
  58.      //this sets up the white keys on the keyboard
  59.      public void setUpWhiteKeys() {
  60.           for(int i = 0; i < 8; i++) {
  61.                 Color color = getColorForWhiteKey(i);
  62.                 addWhiteKey(KEY_X_OFFSET + i*(KEY_WIDTH + KEY_SEP_X),KEY_Y_OFFSET, color);
  63.           }
  64.      }
  65.            
  66.            
  67.      //this assigns color to the white keys on the keyboard
  68.          
  69.      private Color getColorForWhiteKey(int keyIndex) {
  70.          Color color;
  71.          switch(keyIndex) {
  72.          case 0: color = Color.blue; break;
  73.          case 1: color = Color.green; break;
  74.          case 2: color = Color.RED; break;
  75.          case 3: color = Color.YELLOW; break;
  76.          case 4: color = Color.ORANGE; break;
  77.          case 5: color = Color.MAGENTA; break;
  78.          case 6: color = Color.pink; break;
  79.          case 7: color = Color.blue; break;
  80.          default: color = Color.black; break;
  81.          }
  82.          return color;
  83.       }
  84.                    
  85.       //this creates specs for the white keys
  86.      public void addWhiteKey(int whiteKeyX, int whiteRowY, Color color) {
  87.          GRect key = new GRect (whiteKeyX, whiteRowY, KEY_WIDTH, KEY_HEIGHT);
  88.          key.setFilled(true);
  89.          key.setColor(color);
  90.          key.setFillColor(color);
  91.          add(key);
  92.      }
  93.    
  94.            
  95.       //creates the black keys
  96.       public void setUpBlackKeys() {
  97.               for(int i = 0; i < 6; i++) {
  98.                      Color color = getColorForBlackKey(i);
  99.                      addBlackKey(BLACK_KEY_X_OFFSET + i*(KEY_WIDTH + KEY_SEP_X), BLACK_KEY_Y_OFFSET, color);
  100.               }
  101.       }
  102.            
  103.       //colors black keys
  104.       private Color getColorForBlackKey(int keyIndex) {
  105.           Color color;
  106.           switch(keyIndex) {
  107.           case 0: color = Color.MAGENTA; break;
  108.           case 1: color = Color.ORANGE; break;
  109.           case 2: color = Color.black; break;
  110.           case 3: color = Color.red; break;
  111.           case 4: color = Color.YELLOW; break;
  112.           case 5: color = Color.green; break;
  113.           case 6: color = Color.blue; break;
  114.           default: color = Color.black; break;
  115.           }
  116.           return color;
  117.       }
  118.       //specs for black keys
  119.       public void addBlackKey(int blackKeyX, int blackRowY, Color color) {
  120.           GRect blackKey = new GRect (blackKeyX, blackRowY, KEY_WIDTH, KEY_HEIGHT);
  121.           blackKey.setFilled(true);
  122.           blackKey.setColor(color);
  123.           blackKey.setFillColor(color);
  124.           add(blackKey);
  125.  
  126.       }
  127.            
  128.       public void keyPressed(KeyEvent p) {
  129.           int key = p.getKeyCode();
  130.           if(key == KeyEvent.VK_A) {
  131.               lowC.play();
  132.               getElementAt(45,255).setLocation(45,265);
  133.           }
  134.          
  135.           if(key == KeyEvent.VK_W) {
  136.               cSharp.play();
  137.               getElementAt(100,45).setLocation(100,55);
  138.           }
  139.           if(key == KeyEvent.VK_S) {
  140.               d.play();
  141.               getElementAt(160,255).setLocation(160,265);
  142.           }
  143.           if(key == KeyEvent.VK_E) {
  144.               dSharp.play();
  145.               getElementAt(215,45).setLocation(215,55);
  146.           }
  147.           if(key == KeyEvent.VK_D) {
  148.               e.play();
  149.               getElementAt(275,255).setLocation(275,265);
  150.           }
  151.           if(key == KeyEvent.VK_F) {
  152.               f.play();
  153.               getElementAt(390,255).setLocation(390,265);
  154.           }
  155.           if(key == KeyEvent.VK_T) {
  156.               fSharp.play();
  157.               getElementAt(445,45).setLocation(445,55);
  158.           }
  159.           if(key == KeyEvent.VK_G) {
  160.               gSharp.play();
  161.               getElementAt(505,255).setLocation(505,265);
  162.           }
  163.           if(key == KeyEvent.VK_Y) {
  164.               g.play();
  165.               getElementAt(560,45).setLocation(560,55);
  166.           }
  167.           if(key == KeyEvent.VK_H) {
  168.               a.play();
  169.               getElementAt(620,255).setLocation(620,265);
  170.           }
  171.           if(key == KeyEvent.VK_U) {
  172.               aSharp.play();
  173.               getElementAt(675,45).setLocation(675,55);
  174.           }
  175.           if(key == KeyEvent.VK_J) {
  176.               b.play();
  177.               getElementAt(735,255).setLocation(735,265);
  178.           }
  179.           if(key == KeyEvent.VK_K) {
  180.               highC.play();
  181.               getElementAt(850,255).setLocation(850,265);
  182.           }
  183.  
  184.       }
  185.      
  186.       public void keyReleased(KeyEvent p) {
  187.           int key = p.getKeyCode();
  188.           if(key == KeyEvent.VK_A) {
  189.               getElementAt(45,265).setLocation(45,255);
  190.           }
  191.           if(key == KeyEvent.VK_W) {
  192.               getElementAt(100,55).setLocation(100,45);
  193.           }
  194.           if(key == KeyEvent.VK_S) {
  195.               getElementAt(160,265).setLocation(160,255);
  196.           }
  197.           if(key == KeyEvent.VK_E) {
  198.               getElementAt(215,55).setLocation(215,45);
  199.           }
  200.           if(key == KeyEvent.VK_D) {
  201.               getElementAt(275,265).setLocation(275,255);
  202.           }
  203.           if(key == KeyEvent.VK_F) {
  204.               getElementAt(390,265).setLocation(390,255);
  205.           }
  206.           if(key == KeyEvent.VK_T) {
  207.               getElementAt(445,55).setLocation(445,45);
  208.           }
  209.           if(key == KeyEvent.VK_G) {
  210.               getElementAt(505,265).setLocation(505,255);
  211.           }
  212.           if(key == KeyEvent.VK_Y) {
  213.               getElementAt(560,55).setLocation(560,45);
  214.           }
  215.           if(key == KeyEvent.VK_H) {
  216.               getElementAt(620,265).setLocation(620,255);
  217.           }
  218.           if(key == KeyEvent.VK_U) {
  219.               getElementAt(675,55).setLocation(675,45);
  220.           }
  221.           if(key == KeyEvent.VK_J) {
  222.               getElementAt(735,265).setLocation(735,255);
  223.           }
  224.           if(key == KeyEvent.VK_K) {
  225.               getElementAt(850,265).setLocation(850,255);
  226.           }
  227.          
  228.       }
  229.      
  230.      
  231.  
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement