Skip to content

An OOP project building a Synthesizer using JavaFX, Gradle, and IntelliJ.

Notifications You must be signed in to change notification settings

TailorDone/Synthesizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Synthesizer

CS6011 Project

Project Description

  • 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.

The Synthesizer

  • 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.

Preview

Additional Information

  • 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.

About

An OOP project building a Synthesizer using JavaFX, Gradle, and IntelliJ.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published