package tonedeaf;
// @author Damien Bell
import javax.sound.midi.*;
import java.util.Random;
import java.lang.Math;
public class ToneDeaf {
public static void main(String[] args) {
int[] notes = new int[127];
Random generator = new Random();
for(int i=0; i<126; i++){
notes[i] = Math.abs(generator.nextInt()%127);
}
try {
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
MidiChannel channel = synthesizer.getChannels()[0];
for (int note : notes) {
System.out.println(note);
channel.noteOn(note, 100);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
break;
} finally {
channel.noteOff(note);
}
}
} catch (MidiUnavailableException e) {
e.printStackTrace();
}
}
}
cGFja2FnZSB0b25lZGVhZjsKLy8gQGF1dGhvciBEYW1pZW4gQmVsbAoKaW1wb3J0IGphdmF4LnNvdW5kLm1pZGkuKjsKaW1wb3J0IGphdmEudXRpbC5SYW5kb207CmltcG9ydCBqYXZhLmxhbmcuTWF0aDsKCnB1YmxpYyBjbGFzcyBUb25lRGVhZiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgCiBpbnRbXSBub3RlcyA9IG5ldyBpbnRbMTI3XTsKIFJhbmRvbSBnZW5lcmF0b3IgPSBuZXcgUmFuZG9tKCk7CiBmb3IoaW50IGk9MDsgaTwxMjY7IGkrKyl7CiAgICAgbm90ZXNbaV0gPSBNYXRoLmFicyhnZW5lcmF0b3IubmV4dEludCgpJTEyNyk7CiB9CiAgICAgIHRyeSB7CiAgICAgICAgICBTeW50aGVzaXplciBzeW50aGVzaXplciA9IE1pZGlTeXN0ZW0uZ2V0U3ludGhlc2l6ZXIoKTsKICAgICAgICAgIHN5bnRoZXNpemVyLm9wZW4oKTsKICAgICAgICAgIE1pZGlDaGFubmVsIGNoYW5uZWwgPSBzeW50aGVzaXplci5nZXRDaGFubmVscygpWzBdOwogICAgICAgICAgCiAgICAgICAgICBmb3IgKGludCBub3RlIDogbm90ZXMpIHsKICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obm90ZSk7CiAgICAgICAgICAgICAgY2hhbm5lbC5ub3RlT24obm90ZSwgMTAwKTsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMjAwKTsKICAgICAgICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICAgIGNoYW5uZWwubm90ZU9mZihub3RlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKE1pZGlVbmF2YWlsYWJsZUV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICB9CiAgICB9Cn0K