Skip to content

Instantly share code, notes, and snippets.

@haveyouwantto
Last active November 14, 2018 12:36
Show Gist options
  • Save haveyouwantto/1bd0166aa591c5a6fb634010f63e7121 to your computer and use it in GitHub Desktop.
Save haveyouwantto/1bd0166aa591c5a6fb634010f63e7121 to your computer and use it in GitHub Desktop.
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);
}
}
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