Skip to content

WilliamLeka/MusicVisuals

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Music Visualiser Project

Name: William Leka

Student Number: C21423244

Name: Mate Mikus

Student Number: C21379483

Name: Ciaran Cruz

Student Number: C21318233

Name: Anmar Saoud

Student Number: C21402094

Description of the assignment

Our groups visualizer is based on an old computer that runs on Windows 95, there are 3 .exe files that clickable. When clicked each .exe file will run its own unique visualizer. The first visualizer "visual1.exe" plays a sped up version of the song "Safe and Sound by Capital Cities". The second visualizer "visual2.exe" plays the song "Heathens by Twenty one pilots". The third and final visualizer "visual3.exe" plays a slowed bass boosted remix of the song "Freaks by Timmy Trumpet".

Instructions

Run the program and simply click on any three of the available visualizers once to watch. If you wish to stop at any point press the Exit icon located on the bottom right of the screen and it will bring you back to the computer.

How it works

The monitor screen works as a base for all the visualizers to be played.

My visual is the first one displayed in the Monitor, it's called "Visual1.exe". The visual starts off with a windows background loading in pixel by pixel to give it a loading effect. Then, the background changes to just a sky without the windows logo and the music visual starts. I implemented a spinning rectangle in the middle of the screen, which is a bunch of rectangles which get smaller and smaller and rotate giving it a cool effect. It spins according to the song, and it slows down and speeds up accordingly. Outside that I placed a circle that reacts to the song aswell. The top half of it reacts to the song based on the band lenght and the bottom half reacts to the song based on the frequency. The radius of this circle is perfectly matched with the spinning rectangle making them fit perfectly. Another implementation I added is a seperate class for the mouse cursers that are going from left to right of the screen. There are 5 different unique mouse curser images that spawn randomly on the left side of the screen. They also react to the song, making them speed up or slow down based on the song. Their rotation reacts to the song aswell, and they rotate independently. When they reach the right side of the screen and get out of the frame, they respawn on the left giving them a random location and a new texture out of the 5 differnet mouse curser images I added. They also don't spawn in the middle of the screen just on the top and bottom to stop them from going over the visuals in the middle of the screen. Once the visual is finished, all the visuals despawn and you're left with the option to press the exit and return back to the Monitor.

After being called from the Monitor, the Heathens file is run. My AudioVisual has multiple beat drops (6 in total) in which something in the visual will change. From the start there is a circle and a rain visual that reacts with the song. The circle gets larger and the rain falls faster depending on the song. The first drop of the song changes the color of the background, circle and rain. The second drop starts the rectangle visual where the whole screen zooms in while rectangles are drawn creating the effect of a rectangle slowly becoming smaller. The third drop then starts to zoom the screen out while the rectangle becomes bigger with a circle in the middle of the rectangle reacting to the music. The fourth drop returns to the bouncing circle and rain just as the rectangle is about to fill the screen. The fifth drop is another color change and the final sixth drop flashes the screen white to simulate a lightning strike.

When called from Monitor.java through mouse click, is is the third one displayed called "visual3.exe". When it runs a collction of stickmen objects are randomly placed on the screen and are using a collision detect function to stop them from overlapping. Along with stickmen is cloud objects that are displayed randomly also and also use an Anti overlap function. After a set time to match the first beat drop, the transition to space starts and the clouds and stickmen disappear revealing a black hole that reacts to the music with star objects orbiting around the black hole which also react to the music by shaking and orbit rotation speed increases. The black hole has lines that are behind the black hole and are connected from the centre of the circle to just outside its radius which react to the music too while showing a wave pattern when the beat is high. The lines for the black hole change colour when the beat drops the second time while revealing a single stickman orbiting around the black hole unaffected by the music.

List of classes/assets

Class/asset Source
Monitor.java C21423244
SafeandSound.java C21379483
Mouse.java C21379483
Heathens.java C21318233
Rain.java C21318233
blackhole.java C21402094
Cloud.java C21402094
freaks.java C21402094
Star.java C21402094
Stickman.java C21402094
Star.java C21402094
Stickman.java C21402094

What I am most proud of in the assignment

William

Im most proud of the combination of all the team's work into one working application and the unique intro of our project as a team. It was an enjoyable expirence to work on this project as a team.

Mate

I'm most proud of the creativity of my visual. I love how I stuck with the windows theme for my visual making it feel natural going in from the Monitor to my visual. I am also proud of all my visuals in general, also the mouse cursers and the attention to detail of it. I am proud of the fact that I made the cursers highlight the exit icon when it hovers over it as well as when the user hovers over it and how the music visual stops when the song stops and just the overall feel of my visual.

Ciaran

The part of my visualizer I am most proud of is the rectangle visual where is zooms the whole screen in and while zooming out the bouncing circle zooms out with the rectangle. I am also proud of how I was able to sync the rain with the music.

Anmar

I think I'm most proud of the stickmen because I wasnt expecting them to turn out how they did. I'm also very proud of the stars how they shake and orbit around the blackhole and the lines on the blackhole that make a wavee patern when the beat is high.

Screenshots

Alt text Alt text Alt text Alt text

Preview of Assignmnet

YouTube

About

OOP 2023 Assignment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 97.3%
  • Shell 2.7%