Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
c5508e1
Updated Read.me
ranahayes Mar 14, 2023
81df9dd
Added mp3 file for the song Parasite Eve- Rana H
ranahayes Mar 14, 2023
6c6414c
Test File to run Parasite eve- Rana H
ranahayes Mar 14, 2023
d186181
Adding Audio1 to main
ranahayes Mar 14, 2023
623f276
Delete Audio1.java
ranahayes Mar 14, 2023
520399f
Added mp3+Altered main.java+ Added Audio1 RanaH2
ranahayes Mar 14, 2023
e2aeca0
Testing out Visuals
ranahayes Mar 14, 2023
7a60ec6
Trials for visuals
ranahayes Mar 14, 2023
67f14af
mp3 folder
cucannucan Mar 16, 2023
e856414
graph works well
cucannucan Mar 20, 2023
03b95f4
Trials for Visuals
ranahayes Mar 20, 2023
3d77182
Merge pull request #1 from cucannucan/Ceren
ranahayes Mar 20, 2023
e54c017
Update README.md
cucannucan Mar 20, 2023
95a4912
Merge pull request #2 from cucannucan/Ceren
ranahayes Mar 20, 2023
676f7eb
graphs working added Ceren's part
cucannucan Apr 5, 2023
c852058
Merge pull request #3 from cucannucan/Ceren
ranahayes Apr 12, 2023
7705d04
Added audiovisual this is a base visual
ranahayes Apr 20, 2023
4059e95
Merge pull request #4 from ranahayes/Trials
ranahayes Apr 20, 2023
044f55f
star in the middle ceren
cucannucan Apr 30, 2023
915a117
Merge pull request #7 from cucannucan/Ceren
ranahayes May 2, 2023
6dafa3d
Rana Mountain visual main commit
ranahayes May 2, 2023
873f759
Main commit
ranahayes May 2, 2023
58d6d6d
Main Commit
ranahayes May 2, 2023
787e868
final ceren
cucannucan May 2, 2023
2ddd3b3
Deleted redundant files
ranahayes May 2, 2023
5754101
Merge branch 'RanaH' of https://github.com/ranahayes/MusicVisuals int…
ranahayes May 2, 2023
fad01dc
Merge pull request #9 from cucannucan/Ceren
ranahayes May 2, 2023
0805ac8
added the extra visual and the part of the report(ceren and the extra)
cucannucan May 2, 2023
016ea13
added the comments
cucannucan May 3, 2023
8209ce9
Merge pull request #14 from cucannucan/Ceren
ranahayes May 3, 2023
d6900d6
Merge pull request #15 from cucannucan/Ceren
ranahayes May 3, 2023
4101a19
editting the report
cucannucan May 3, 2023
8ed4073
Merge pull request #16 from cucannucan/Ceren
cucannucan May 3, 2023
fb0e0e7
editting report 2
cucannucan May 3, 2023
683ae23
Merge pull request #17 from cucannucan/Ceren
ranahayes May 3, 2023
5f853fe
Update README.md
ranahayes May 3, 2023
0344abd
Merge pull request #18 from ranahayes/Ceren
ranahayes May 3, 2023
e49b127
This is the final commit, with all the visuals, and the final visual …
ranahayes May 3, 2023
dfec863
Delete Main.java
ranahayes May 4, 2023
91479b6
Delete AudioVisual.java
ranahayes May 4, 2023
62b3680
Added MusicVisualizer
ranahayes May 4, 2023
e7c221b
Delete Audio1.java
ranahayes May 4, 2023
3e32ef9
Delete VisualException.java
ranahayes May 4, 2023
7446eb5
Delete Main.java
ranahayes May 4, 2023
5df6b60
Merge branch 'master' into Trials
ranahayes May 4, 2023
5d6c955
Merged from Rana to master
ranahayes May 4, 2023
124fded
Update README.md
ranahayes May 4, 2023
38bc863
Update README.md
ranahayes May 4, 2023
4fef3e7
Update README.md
ranahayes May 4, 2023
6473cd2
Update README.md
ranahayes May 4, 2023
5110ea4
Update README.md
ranahayes May 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,62 @@
{
"configurations": [
{
"type": "java",
"name": "CerensSongVisualizer",
"request": "launch",
"mainClass": "ie.tudublin.CerensSongVisualizer",
"projectName": "java"
},
{
"type": "java",

"name": "MainVisual",
"request": "launch",
"mainClass": "ie.tudublin.MainVisual",
"projectName": "java"
},
{
"type": "java",
"name": "IsaVisual",
"request": "launch",
"mainClass": "ie.tudublin.IsaVisual",
"projectName": "java"
},
{
"type": "java",
"name": "EnhancedMountainLandscape",
"request": "launch",
"mainClass": "ie.tudublin.EnhancedMountainLandscape",
"projectName": "java"
},
{
"type": "java",
"name": "AudioLandscape",
"request": "launch",
"mainClass": "ie.tudublin.AudioLandscape",
"projectName": "java"
},
{
"type": "java",
"name": "MountainLandscape",
"request": "launch",
"mainClass": "ie.tudublin.MountainLandscape",
"projectName": "java"
},
{
"type": "java",
"name": "SpiralVisual",
"request": "launch",
"mainClass": "ie.tudublin.SpiralVisual",
"projectName": "java"
},
{
"type": "java",
"name": "AudioVisual",
"request": "launch",
"mainClass": "ie.tudublin.AudioVisual",
"projectName": "java"
},
{
"type": "java",
"name": "CodeLens (Launch) - Main",
Expand Down
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.debug.settings.onBuildFailureProceed": true
}
176 changes: 107 additions & 69 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,89 +1,127 @@
# Music Visualiser Project

Name:
Name: Rana Hayes, Isadora Valentini, Ceren Ucan

Student Number:
Student Number: C21920856, D21125681, D21124013

## Instructions
- Fork this repository and use it a starter project for your assignment
- Create a new package named your student number and put all your code in this package.
- You should start by creating a subclass of ie.tudublin.Visual
- There is an example visualiser called MyVisual in the example package
- Check out the WaveForm and AudioBandsVisual for examples of how to call the Processing functions from other classes that are not subclasses of PApplet
# Youtube Video

# Description of the assignment

# Instructions

# How it works

# What I am most proud of in the assignment

# Markdown Tutorial

This is *emphasis*
[<img src="https://user-images.githubusercontent.com/77468140/236207396-6baf50d4-c29d-472f-be27-a043bb7d41ee.jpg" width="80%">](https://youtu.be/6G2v33o0zi0)

This is a bulleted list

- Item
- Item

This is a numbered list

1. Item
1. Item

This is a [hyperlink](http://bryanduggan.org)
# Description of the assignment

# Headings
## Headings
#### Headings
##### Headings
## Ceren
Java program called "CerensSongVisualizer" creates a song visualizer with particles that move and change size based on audio input. It uses the Minim library for audio processing and the Processing library for graphics rendering.

This is code:
## Extra
A Music Visualizer program developed in Java using the Processing library. It analyzes audio for beats and generates visual effects. It utilizes the Minim library for audio playback, beat detection, and FFT analysis.

```Java
public void render()
{
ui.noFill();
ui.stroke(255);
ui.rect(x, y, width, height);
ui.textAlign(PApplet.CENTER, PApplet.CENTER);
ui.text(text, x + width * 0.5f, y + height * 0.5f);
}
```
## Rana
"MountainLandscape" assignment creates an interactive visualization of a mountain terrain using noise generation and mapping techniques. It utilizes the Processing library and is structured as a subclass of the "Visual" class.

So is this without specifying the language:
## Isadora
The "IsaVisual" assignment is a creative visualization project that combines audio processing and visual effects. It uses the Processing and Minim libraries to create a fractal tree that responds to audio input.

```
public void render()
{
ui.noFill();
ui.stroke(255);
ui.rect(x, y, width, height);
ui.textAlign(PApplet.CENTER, PApplet.CENTER);
ui.text(text, x + width * 0.5f, y + height * 0.5f);
}
```
## Combined Visuals
The assignment combines four visual effects: Mountain Landscape, Particles, Cubes, and a Fractal Tree (Flower shape). It uses the Processing and Minim libraries and combines elements of the other assignments into a single program.

This is an image using a relative URL:
# Instructions

![An image](images/p8.png)
## Ceren's Visual
Import the Minim library.
Extend the CerensSongVisualizer class from PApplet.
Set the display window size in the settings() method.
Initialize the Minim library, create particles, load audio, set color mode, and convert audio buffer to an array in the setup() method.
Use the draw() method to update and display particles, draw audio waveform, and rotate star shape.
Implement the drawWaveform() method to draw the audio waveform graph.
Implement the rotateStar() method to rotate and draw the star shape based on audio amplitude.
Define the Particle class for particle properties and behavior.
Initialize particle properties in the Particle constructor.
Implement the update() method to update particle properties.
Implement the display() method to draw particles.
Run the CerensSongVisualizer program.

## Extra
Ensure you have Java and Processing installed on your system.
Import the required libraries: ddf.minim.*, ddf.minim.analysis.*, and processing.core.PApplet.
Set the size of the sketch window by calling the settings() function and specifying the desired width and height.
Implement the setup() function to initialize the program. Load the audio file using the Minim library, configure the beat detection and FFT analysis objects, and create an ArrayList to store the particles.
Implement the draw() function, which is the main loop of the program. Within this function, the audio is analyzed for beats, and the visual effect is updated and rendered accordingly. Particles are created and updated based on beat detection, and the squares in the corners of the screen are drawn and rotated.
Implement the changeVisualEffect() function to modify the design element based on the beat. This function randomly adjusts the size, speed, and background color of the visual effect.
Implement the drawVisualEffect() function to draw the squares in the four corners of the screen. Particles are also emitted from the squares when beats are detected.
Implement the Particle class to define the behavior of the particles. Each particle has position, velocity, and acceleration vectors, as well as properties such as lifespan, size, and hue. The particles are updated, displayed, and eventually removed when their lifespan reaches zero.
Finally, implement the stop() function to handle the clean-up tasks, such as closing the audio player and stopping the Minim library.

## Isadora
Ensure you have the required libraries: Processing, Minim, and ddf.minim.analysis.
Import the "ie.tudublin" package.
Create a new instance of the "IsaVisual" class.
Set the size of the window using the "settings" method (e.g., size(1400, 800)).
Provide the path to an audio file (e.g., "Parasite.mp3") and load it using the "minim.loadFile" method.
Call the "play" method on the "AudioPlayer" object to start playing the audio.
Customize the visual effects by modifying the parameters in the code, such as branch lengths, angles, and colors.
Run the program and observe the visual display that reacts to the audio input.

## Rana
Ensure you have the required libraries: Processing and ddf.minim.analysis.
Import the "ie.tudublin" package.
Create a new instance of the "MountainLandscape" class.
Set the size of the window using the "settings" method (e.g., size(1280, 720, P3D)).
Customize the visual effects by modifying the parameters in the code, such as terrain size, scaling, and colors.
Run the program and observe the visual display of the mountain landscape.

## Combined Visuals
Make sure you have the Processing library and the Minim library installed.
Copy the provided code into a new Processing sketch.
Place an audio file named "Parasite.mp3" in the same folder as the sketch.
Run the sketch.
Once the sketch is running, you can switch between the visual effects by pressing the corresponding number keys:
Press '1' to switch to the Mountain Landscape visual effect.
Press '2' to switch to the Music Visualizer visual effect.
Press '3' to switch to the Isa Visual effect.
Press '4' to switch to Ceren's Song Visualizer.

This is an image using an absolute URL:
# How it works

![A different image](https://bryanduggandotorg.files.wordpress.com/2019/02/infinite-forms-00045.png?w=595&h=&zoom=2)
## Ceren
Set up the display window, initialize the Minim library, and load the audio file.
Create an array of particles with random properties.
In the draw() method, update and display particles.
Draw the audio waveform using the drawWaveform() method.
Rotate and draw the star shape based on audio amplitude.
The Particle class defines particle properties and behavior.
Continuously loop through the draw() method to animate the visualization.

## Extra
The Music Visualizer program uses audio analysis to generate visual effects synchronized with beats. It loads and plays audio using the Minim library. Beat detection triggers visual effect changes. Rotating squares change size, speed, and color with beat detection. Particles are emitted, creating an animated effect. Visuals are continuously updated based on audio input.

## Isadora
The program uses the Minim library for audio processing. It creates an instance of the IsaVisual class and sets the window size. An audio file is loaded and played. Visual effects are customized by modifying parameters such as branch lengths and colors. The program continuously updates the visual display based on the audio input.

## Rana
The program uses the noise function to generate a height map for the mountain landscape. It creates a 2D array called "terrain" to store the heights of each point on the landscape. The noise function is called for each point, and the resulting value is mapped to a suitable range to determine the height. The terrain is divided into triangles and rendered using triangle strips.
In the "draw" method, the background is cleared, and the flyover parameter is updated based on the amplitude of the audio input. The camera and target vectors are adjusted according to the flyover and amplitude values. The landscape is then translated, rotated, and lit to achieve the desired perspective and lighting effects. Triangle strips are used to render the terrain, with each vertex having a corresponding color based on its position and height.

## Combined Visual
To run the program that combines the Mountain Landscape, Music Visualizer, and Isa Visual effects, follow these instructions:
Import the Minim library and the Processing library into your Java project.
Create a new class, let's name it "CombinedVisuals", and extend it from the PApplet class.
In the setup() method, initialize the Minim library for audio processing, create instances of the MountainLandscape, MusicVisualizer, and IsaVisual classes.
Load the audio file and start playing it using the MusicVisualizer class.
Set up the display window size and any other necessary settings for the MountainLandscape and IsaVisual classes.
In the draw() method, update and display the visual effects from all three classes.
Run the CombinedVisuals program.

This is a youtube video:
# What I am most proud of in the assignment

[![YouTube](http://img.youtube.com/vi/J2kHSSFA4NU/0.jpg)](https://www.youtube.com/watch?v=J2kHSSFA4NU)
## Ceren
In this assignment, I'm actually most proud of how comfortable I have become with using git, branches, merging, committing and collaborating. I am most proud of successfully implementing the particle system and integrating it with audio visualization. The particles move and change size based on the audio input, creating an engaging and visually appealing effect. Additionally, the waveform and rotating star shape add an extra layer of visual interest to the overall visualization.

This is a table:
## Isadora
I am most proud of the creativity and interactivity achieved in the assignment. The combination of audio processing and visual effects creates a visually stimulating experience. The use of recursion in the "Branch" class allows for the creation of intricate branching patterns. The interaction between the audio input and the visual display adds a dynamic element to the assignment. Overall, the assignment demonstrates the ability to create captivating and responsive visualizations using code.

| Heading 1 | Heading 2 |
|-----------|-----------|
|Some stuff | Some more stuff in this column |
|Some stuff | Some more stuff in this column |
|Some stuff | Some more stuff in this column |
|Some stuff | Some more stuff in this column |
## Rana
I am most proud of the realistic and dynamic nature of the mountain landscape visualization. The use of noise functions to generate the terrain creates an organic and natural appearance. The integration of audio input to control the flyover and amplitude adds an interactive element to the visualization. The implementation of lighting effects further enhances the realism of the landscape. Overall, the assignment demonstrates the ability to create visually appealing and interactive visualizations using code.
I am also very proud of implementing the MainVisual (combined visual) as it required lots of re-works and changes to the visual).

# Markdown Tutorial
4 changes: 2 additions & 2 deletions java/.project
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
</natures>
<filteredResources>
<filter>
<id>1616413840733</id>
<id>1678805499117</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
Expand Down
Binary file added java/data/Parasite.mp3
Binary file not shown.
Loading