Skip to content

abhaseen/basement-band

Repository files navigation

basement-band

Brief Description: Java musical instruments GUI Swing app.

Detailed Description:

This is an application made to play instruments on a desktop environment.

In this application, you start at a Main Menu, that look like this, this takes you to the instruments or exits the application:

Main Menu

If you select the piano, you'll be sent to this view:

Piano

In the piano view, I limited it to a full octave. In musical terms, you start at the middle C (Do), often called C4 and then you go up a whole octave, called C5.

In the top right hand corner, you can see the option to select two types of intruments, Electronic Piano and Steel Drum. As well as an option to select and play a backing track.

Choosing the Drum, we'll be taken here:

Drum Selection

If we choose the Acoustic drum kit, we'll be taken to a page rendered like so:

Acoustic Drum Kit

This layout is made to look like an actual live drum kit. The samples used in this view reflect that.

Now from the Drum Kit Selection Menu, if we choose the Electronic Drum Kit, it will take us to this page:

Electronic Drum

This view is made to emulate the electronic drum kits/pads that you often see DJ's or electronic producers use.

Voice Recorder

This view allows you to record and playback a microphone recording.

File Chooser

This is what you'll see when you want to select files to view.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See build executable for notes on how to build the application locally.

Prerequisites

A version of NetBeans. Recommended 11.2 or higher.

Make sure to use latest version of UTF encoding to get the proper emojis for the Main Menu view, Return Home and Change Kit buttons.

Make sure to use the latest version of Java and have it installed on your machine.

Development Setup

To first run this program, we must first open the project with NetBeans. The reason why NetBeans is recommended is because it has the strongest Swing Application editor for the visual GUI design.

When adding a new view, make sure to say NEW -> JPanel Form or NEW -> JFrame Form, depending on your preference.

When the project is built, make sure to choose MainMenu as the main class. This will allow you to start from the main menu rather than any other view.

When using the Voice Recording module, make sure to create a file called Recording_Files in the source folder in order to begin recording.

Build Executable

Perform a clean build and run from /dist folder. Should be a file of .jar format.

In addition, the folder that has the executable should have the following folders in it as well:

  • AcousticDrum_Samples
  • Drum_Images
  • Drum_Samples
  • Recording_Files
  • Z_Music_Notes

This is because of the way the file paths in the program are set up.

Libraries or frameworks

  • Java Swing - GUI library, also used ImageIcon and JButton from this package.
  • Maven - Dependency Management
  • Java Sound - Used the AudioInputStream, AudioSystem and Clip libraries from the sampled package.
  • Java io - Used for accessing sound samples
  • Java AWT - Used for formatting the Window

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

Version 3.0.0 - Stable Release, added File Chooser tool and UI.

Release Version 1.0.0 - First Release for Executable

Authors

  • Andre Bhaseen - Initial work, all instruments and UI navigation - abhaseen

  • Royce Ayroso-Ong who participated in this project. - Responsible for developing the Voice Recording Module, as well as developing the file chooser and the file selection UI on each instrument

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgements