Last active
November 14, 2018 12:36
-
-
Save haveyouwantto/1bd0166aa591c5a6fb634010f63e7121 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tk.hywt.piano; | |
import javax.sound.midi.MidiChannel; | |
import javax.sound.midi.MidiSystem; | |
import javax.sound.midi.MidiUnavailableException; | |
import javax.sound.midi.Synthesizer; | |
import tk.hywt.piano.Notes; | |
public class Main { | |
public static void main(String[] args) throws MidiUnavailableException, InterruptedException { | |
Synthesizer midiSynth = MidiSystem.getSynthesizer(); | |
midiSynth.open(); | |
MidiChannel[] mChannels = midiSynth.getChannels(); | |
boolean multi = false; | |
// Your Score Here | |
// \ / | |
// \ / | |
// \/ | |
String str = "TU(fv)hj(hU)(fV)h(jX)-(cU)egece(gT)(eS)(aT)df(Sd)(aT)d(Vf)-(Sh)ehijl(cR)(aQ)(Rb)fi(Qc)(bR)dV-(QF)cfghcV(Ud)bdfhgfc-(Uc)cfgJ TU(fv)hj(hU)(fV)h(jX)-(cU)egece(gT)(eS)(aT)df(Sd)(aT)d(Vf)-(Sh)ehijl(cR)(aQ)(Rb)fi(Qc)(bR)dV-(Wf)ca(xc)(fV)gfc(vd)ut-(ub)-q-(tf)cfghj---T"; | |
for (int i = 0; i < str.length(); i++) { | |
String n = str.substring(i, i + 1); | |
String nl = n.toLowerCase(); | |
int note = Notes.getNote(nl); | |
System.out.print(n); | |
if (note != 0) { | |
{ | |
mChannels[0].noteOn(note, 100); | |
if (multi == false) { | |
Thread.sleep(250); | |
} | |
} | |
} else { | |
int ctrl = Notes.getControl(n); | |
if (ctrl == 1) { | |
mChannels[0].allNotesOff(); | |
Thread.sleep(250); | |
} else if (ctrl == 2) { | |
Thread.sleep(250); | |
} else if (ctrl == 3) { | |
multi = true; | |
} else if (ctrl == 4) { | |
multi = false; | |
Thread.sleep(250); | |
} | |
} | |
} | |
Thread.sleep(2000); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tk.hywt.piano; | |
import java.util.HashMap; | |
import java.util.Map; | |
public class Notes { | |
public static int getNote(String note) { | |
switch (note) { | |
case "a": | |
return 48; | |
case "b": | |
return 50; | |
case "c": | |
return 52; | |
case "d": | |
return 53; | |
case "e": | |
return 55; | |
case "f": | |
return 57; | |
case "g": | |
return 59; | |
case "h": | |
return 60; | |
case "i": | |
return 62; | |
case "j": | |
return 64; | |
case "k": | |
return 65; | |
case "l": | |
return 67; | |
case "m": | |
return 69; | |
case "n": | |
return 71; | |
case "o": | |
return 72; | |
case "p": | |
return 74; | |
case "q": | |
return 76; | |
case "r": | |
return 77; | |
case "s": | |
return 79; | |
case "t": | |
return 81; | |
case "u": | |
return 83; | |
case "v": | |
return 84; | |
case "w": | |
return 86; | |
case "x": | |
return 88; | |
case "y": | |
return 89; | |
case "z": | |
return 90; | |
case "[": | |
return 51; | |
case "~": | |
return 54; | |
case ";": | |
return 56; | |
case "1": | |
return 58; | |
case "2": | |
return 61; | |
case "3": | |
return 63; | |
case "4": | |
return 66; | |
case "5": | |
return 68; | |
case "6": | |
return 70; | |
case "7": | |
return 73; | |
case "8": | |
return 75; | |
case "9": | |
return 78; | |
case "0": | |
return 80; | |
case "\"": | |
return 82; | |
case ",": | |
return 85; | |
case ".": | |
return 87; | |
case "?": | |
return 90; | |
} | |
return 0; | |
} | |
public static int getControl(String note) { | |
switch (note) { | |
case "-": | |
return 1; | |
case " ": | |
return 2; | |
case "(": | |
return 3; | |
case ")": | |
return 4; | |
} | |
return 0; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment