- The Prompt: "Create a Synthesizer using Object-Oriented Programming."
- The Set-Up: A week long project building on the concepts of inheritance, interfaces, overriding, and abstract classes.
- The Tools: This project was created in IntelliJ IDEA with use of Java, JavaFX, and Gradle.
- Mechanics: Upon launch the user can select different widgets using the buttons on the right side and then drag the widgets to their desired location on the screen. If the user would like to play multiple sounds at once then the use of a Mixer will be implemented. No sound will play without a speaker. Users can adjust settings such as volume and frequency. The user can connect elements together by selecting a grey output port and then a white input port. Pressing play will start the sound.
- What I Learned: I love that this project allowed be to practice my OOP skills. Due to the structure of the project, I originally started with independet widget classes, and then worked backwards to make a base widget class that the additional widgets extend from. It was fun working with the ability to manipulate sound as I hadn't done that before. The GUI portion of the project was particularly fun and I had a fun time playing around with the overal design of the project.
- What I Would Improve: Given more time I would love to make a dynamic line draw as I connect one widget to another. I would also love to have the lines move with the widgets. As it stands, that is not possible with my current code. It would also be fun to add more wave forms, such as a Square Wave or Triangle Wave.