Project information

Summary

Developed a live visual effects program for MIDI keyboards using the Java Swing Framework and the Java MIDI module where notes stream upward from the bottom of the screen displaying different color intensities based on the velocity of key press. Addressed concurrency exceptions between keyboard and GUI data processing by utilizing thread-safe data structures. Originally created a prototype of the concept using Python, showing how it will work as a video overlay for my piano performances, then began developing in Java. Leveraged multi-threading to improve application efficiency: MIDI signal processing occurs on one thread while GUI drawing and deleting of notes occurs on another thread.