top of page
Writer's pictureCodersarts AI

Building A Music Analyzer Application Using JavaFx

Description

In this project, you will be building a Music Analyzer application. It will read data from different music files, perform queries based on user input, and export reports to new files. 


For this project, you will be implementing four classes: 

  1. Song

  2. Artist

  3. InvalidSongFormatException

  4. MusicAnalyzer


You will not need to implement any additional classes, though you may do so if you wish.


Note: 5 points of your grade is based on Coding Style.  You will need to follow the standards described here.  Use the "Run" button to check your Coding Style without using a submission.


Instructions

The project Javadoc is available here. The implementation requirements for each class are described there.


Before beginning, download the Starter Code from Vocareum and read through it. The menu is provided for you already. 


Note: For this assignment, you are not permitted to use an ArrayList. 


Song class

In this class, we will be implementing a class that represents a Song. While this class doesn't hold any specific data from an actual song file, the fields and methods here would represent the same data one could get from an actual song.


Artist class

In this class, we will be implementing a class that represents an Artist.

Fields

Constructor


Methods


InvalidSongFormatException class

This is a class where you will be implementing a custom Exception. This will allow us to create more specific error types that are particular to certain situations in the solution. 


Note: Your class must extend the Exception class. 


Constructor


MusicAnalyzer class

This class will implement all of the functionality that the user will engage with while the program is running. 


Fields

Constructor


Methods


Finally, note that many of the methods listed above correspond to a specific menu selection. That is to say, when the user enters a specific choice from the menu, the program should invoke the appropriate method as described. For reference, follow the guide below. If the user chooses menu choice 1, then invoke listSongsByArtist.


If the user chooses menu choice 2, then invoke listFeaturesOnSong.


If the user chooses menu choice 3, then invoke findMainArtistOnSong.


If the user chooses menu choice 4, then invoke countSongsByArtist.


If the user chooses menu choice 5, then invoke findSongLength.


If the user chooses menu choice 6, then invoke findArtistGenre.


If the user chooses menu choice 7, then invoke findArtistAndFeatures.


If the user chooses menu choice 8, then invoke exportByArtist.


If the user chooses menu choice 9, then exit the MusicAnalyzer with the procedure described in the project JavaDoc.


Testing

RunLocalTest

We have included a program that will allow you to create and run output tests automatically in the Starter Code. This will make it easier for you to verify that each possible progression through your solution is correct. Take a look at RunLocalTest.java. There are many utility features and tools that you do not need to worry about at the moment, instead, focus on the test case. It is included in the Starter Code. Read through it.


You can modify the test to test any method you like by following the same format. You can either download the program and run the main method or use the "Run" button on Vocareum to run the test. You can repeat this process for each path. 


Public Test Cases Note

For many homeworks and projects, we will give you test cases that correspond to several of the ways we will be testing your program. But, we will not give you test cases for ALL of the ways we will be testing your program. You should think of other test cases to use that will fully test every aspect of every feature of your program. Just because your program passes all the test cases we give you does not mean that it is fully correct and will receive a score of 100.


If need solution of this with an affordable prices then you can contact us at contact@codersarts.com

11 views0 comments

Recent Posts

See All

Comments


bottom of page