Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
d4fe688
Create C22337521
fionan313 Mar 13, 2024
f6b6f4e
Create C22337521
fionan313 Mar 13, 2024
2850e52
Removed incorrectly created files and added a folder in src with my s…
fionan313 Mar 13, 2024
a05588c
Create test
fionan313 Mar 13, 2024
ed5cc56
Delete C22337521
fionan313 Mar 13, 2024
8b27508
Éadaoin folder
eadaoin8 Mar 13, 2024
dfddbd3
text file tester
lanawalsh Mar 13, 2024
25de1eb
Merge branch 'master' of https://github.com/fionan313/MusicVisuals
lanawalsh Mar 13, 2024
c0062e2
Added Song
eadaoin8 Mar 19, 2024
260c68a
Added Song
eadaoin8 Mar 19, 2024
d574856
Created a .gitignore file and added untracked working tree file .DS_S…
fionan313 Mar 20, 2024
49b1ac8
Added git ignore and removed DS Store file
fionan313 Mar 20, 2024
f2be4c1
my changes
eadaoin8 Mar 20, 2024
fb14d06
resolved issue with DS store file
eadaoin8 Mar 20, 2024
0ec4df5
test@
lanawalsh Mar 20, 2024
07518b7
fixed problem ig
lanawalsh Mar 20, 2024
0c6007b
Resolved error with commenting unfinished
fionan313 Mar 20, 2024
3abf71d
Changes to MyVisual, adding extension to individual folders
eadaoin8 Mar 20, 2024
e1d1987
Added FionansVisual into myVisual
fionan313 Mar 20, 2024
a943a0c
Added Alannahsvisual
lanawalsh Mar 20, 2024
3e75273
Alannahs cubes, first attempt
lanawalsh Apr 10, 2024
a3bef20
Song now plays, Cases added (Review necessary). Need to add code for …
eadaoin8 Apr 11, 2024
ed42a42
Debugging, Code Working, Added ÉadaoinsVisual to switch case
eadaoin8 Apr 19, 2024
15eb2a3
reated the base code for using .obj files in my Visual.
Apr 20, 2024
7c86756
All Éadaoins Visuals added into cases
eadaoin8 Apr 22, 2024
b4dc235
pushing updates to update libraries
fionan313 Apr 22, 2024
ca9f757
Start up screen
lanawalsh Apr 22, 2024
7791dfc
Merge branch 'master' of https://github.com/fionan313/MusicVisuals
lanawalsh Apr 22, 2024
ed86859
Add on to HomeScreen
eadaoin8 Apr 22, 2024
2b95d8c
Inserted code for a new visualisation.
fionan313 Apr 22, 2024
8981e0e
Debugged
eadaoin8 Apr 22, 2024
0222dcf
remove broken wall code
lanawalsh Apr 22, 2024
e427b3f
Cake is Baked we are ready for dessert
eadaoin8 Apr 22, 2024
31cee90
Merge branch 'master' of https://github.com/fionan313/MusicVisuals
eadaoin8 Apr 22, 2024
fa1863d
added eyeball case 3
lanawalsh Apr 22, 2024
2b74398
fixed spacing on startup screen
lanawalsh Apr 22, 2024
d367756
h
eadaoin8 Apr 22, 2024
f08edeb
case 4 cubes
lanawalsh Apr 22, 2024
a44b11e
Merge branch 'master' of https://github.com/fionan313/MusicVisuals
eadaoin8 Apr 22, 2024
9587ac2
Fixed issues with my broken case when migrating to the shared MusicVi…
fionan313 Apr 22, 2024
de6e118
Resolve ~5 merge conflicts manually because of diverging changes.
fionan313 Apr 22, 2024
b7548fa
Updated space key to pause the audio rather than call the audio file …
fionan313 Apr 22, 2024
ec00261
renamed all clashing variable to end in ...131 to resolves issues whe…
fionan313 Apr 22, 2024
5e014ad
Added the names of my visualisations to the main menu, and updated th…
fionan313 Apr 22, 2024
12d7bec
fixed spacing of options on main menu
fionan313 Apr 22, 2024
a6d2008
updated file paths to ensure compatibility with other machines (remov…
fionan313 Apr 22, 2024
8aa7873
fixed the issue with the car nnot appearing in case 7 as my variable …
fionan313 Apr 22, 2024
22867f1
Change to Case 0 and my cases added to files
eadaoin8 Apr 23, 2024
8c061f9
Éadaoin's Final Edits xoxo
eadaoin8 Apr 23, 2024
3bec518
x
eadaoin8 Apr 23, 2024
aa48117
Éadaoin's final edit :)
eadaoin8 Apr 23, 2024
9521fa2
cubes appear
lanawalsh Apr 23, 2024
67ae4bb
fix spacing on startup screen
lanawalsh Apr 23, 2024
1315ce1
Commeneted all code in trimatrix.java and tricar.java
fionan313 Apr 23, 2024
eb3e0e3
Continued commenting, removed unused variables and delted unused files
fionan313 Apr 24, 2024
67a2c33
Additional spring cleaning :)
fionan313 Apr 24, 2024
3e9e814
added options to change angle of camera for 3D objects
fionan313 Apr 24, 2024
8f235a2
added comments to assist with testing camera() parameters
fionan313 Apr 24, 2024
1b859bf
cubes case tweeking
lanawalsh Apr 24, 2024
1f9e7de
testing more
fionan313 Apr 24, 2024
0313e57
eye case circle removed
lanawalsh Apr 24, 2024
1f1e9a4
Merge branch 'master' of https://github.com/fionan313/MusicVisuals
lanawalsh Apr 24, 2024
9bae6d9
Deleted unused homer.obj file
fionan313 Apr 24, 2024
cac6ea3
Commented code
lanawalsh Apr 24, 2024
a7b859e
circle added to case 3
lanawalsh Apr 24, 2024
d9f1030
removed unused code
fionan313 Apr 24, 2024
89f1946
Added Song Change
eadaoin8 Apr 24, 2024
ab9aea4
Merge branch 'master' of https://github.com/fionan313/MusicVisuals
eadaoin8 Apr 24, 2024
895716a
audio circle fixed
lanawalsh Apr 24, 2024
77bcde3
Update README.md
lanawalsh Apr 26, 2024
9a0b539
Update README.md
lanawalsh Apr 26, 2024
4d1d5be
Update README.md, alannah most proud of
lanawalsh Apr 26, 2024
7559bd9
Éadaoin's Report
eadaoin8 Apr 28, 2024
4b3d7ee
Éadaoin's Report
eadaoin8 Apr 28, 2024
8edf26e
Update README.md
fionan313 Apr 28, 2024
39609db
Update README.md
fionan313 Apr 28, 2024
8d4fbea
Update README.md
fionan313 Apr 28, 2024
da95c82
Update README.md
fionan313 Apr 28, 2024
f56f68a
Update README.md
fionan313 Apr 28, 2024
3f98acc
alannah - how it works
lanawalsh Apr 28, 2024
7074f70
Update README.md
fionan313 Apr 28, 2024
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
52 changes: 34 additions & 18 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,22 +1,38 @@
# Compiled class file
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.nar
*.ear
*.zip
*.tar.gz
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
.DS_Store
7 changes: 7 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
{
"configurations": [
{
"type": "java",
"name": "Alannahsvisual",
"request": "launch",
"mainClass": "C22339066.Alannahsvisual",
"projectName": "java"
},
{
"type": "java",
"name": "CodeLens (Launch) - Main",
Expand Down
Binary file added Bicep - Glue (Original Mix)_q5rliCxX8xc.mp3
Binary file not shown.
121 changes: 55 additions & 66 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
# Music Visualiser Project

Name:
Name 1:Éadaoin Ó Snodaigh
<br>Name 2:Fionán Ó Ceallaigh
<br>Name 3:Alannah Walsh

Student Number 1: C22398106
<br>Student Number 2: C22337521
<br>Student Number 3: C22339066

Student Number:

## Instructions
- Fork this repository and use it a starter project for your assignment
Expand All @@ -12,78 +17,62 @@ Student Number:
- Check out the WaveForm and AudioBandsVisual for examples of how to call the Processing functions from other classes that are not subclasses of PApplet

# Description of the assignment
For this assignment, we were tasked as a group to make a music visualizer using Processing in Java. Each of us was assigned a specific case to add our visuals to the program. Each member took on the task and made creative additions to the program. Using github we there are 7 cases in total, 2 made by Alannah, 2 made by Fionán and 3 made by Éadaoin. across each of our cases we explored a various amount of functions. Fionán explored 3D models and matrixes, Alannah employed mouse input for one of her cases, and Éadaoin explored her creativity by combining two of her cases to making a unique 3rd case.

# Instructions
We used a keypressed and switch case to access the individual visuals. We were able to swap between visuals by pressing between 0-7. As well as this we included keys to change song, this was 'g' for We Like To Party and 'h' for Glue. We also used 'w','a','s' and 'd' to change the camera angles to view different dimensions of our visuals.

# How it works
<b>Éadaoin</b>
<p><b>vertex.java - </b>This visual is 8 octagons that circle around each other. Thee octagons join together so it looks like 1 shape, this is because I used vertex which joins each point. The shape rotates based on frame count. I used maths functions like TWO_PI and sin and cos. The octagons get bigger and smaller depending on the beat. Also the background changes colour based on the framecount, meaning each time the background changes it looks like one octagon goes missing!</p>
<br>
<p><b>circles.java - </b>This visual shows loads of circles overlapping each other to creat a cool triskele style art, it goes from left to right in rainbow colours. There are 2 nested loops. The outer loop iterates over the width of the screen, and the inner loop iterates over the height, both adding 25 pixels each iteration(to create evenly spaced circles). It draws a circle at the current position of i and j (both used in the for loops). The size of the circles change based on the beat which makes the really cool visual.</p>
<br>
<p><b>circlevertex.java - </b>Like Hannah Montana's Song, The Best of Both Worlds, this code combines both my visuals to create an epic visual. The octagons are now created with a line of circles instead of just a line. The visual rotates and changes background colour with frame count. The code includes a for loop to create the octagons made of circles using the same maths functions as vertex.java. Each octagon(set of circles) has a different colour.The size of the circles, like the octagons, change based on the beat in the song, meaning there is a lot of movement in this visual.</p>
<br>
<b>Fionán</b>
<br>
<p><b>TriMatrix.java - </b>
This is the first of two visuals I created. It makes use of a 3D Matrix from earlier processing examples, however it shifts the cubes in the grid on the X and Y axis based on the music, additionally there is a traingle that reavts dynamically to the music. <br>
This visual conists of:
- A matrix grid of cubes that shift in response to music.
- The background color shifts in response to the music
- A triangle rotates, changes size colour, synchronised with the music.</p>
<br>
<p><b>Tricar.java - </b>
This is the second visual I created. It repurposes the traiangle from earlier, scales it down and dupliactes it to created a grid accross teh top and bottom of the screen, it also makes use of a .obj file to insert a sports car model that spins and bounces to the music.
<br>
This visual conists of:
- A dynamic grid of triangles that rotate and change color based on sound.
- A 3D sports car model that bounces in rhythm with the music.
</p>
<br>
<b>Alannah</b>
<p>i did not use seprate java files i just used cases so i will discuss them now.</p>
<br><b>Case 3</b>
<p> Here I had eyeballs that follow the mouses movements. I also had a circle inn the middle on the screen that would react to the music.</p>
<p>The eyeball effect was created by using 2 ellipses , one bigger solid filled and then one smaller no filled one (since the background was black i could use the nofill() and create the effect of pupils). The eye positions are pre-defined as an array of PVector objects, representing the coordinates where the eyes will be drawn on the screen.To create the pupil movement effect, the code calculates a vector (pupilDifference) based on the difference between the eye's position and the current mouse position. This difference vector is scaled to ensure the pupils stay within the eye's boundary.</p>
<p>The background effecct was created using the sin function to generate a wave-like motion based on the current frame count and the smoothed audio amplitude (smoothedAmplitude), which is updated as audio is processed.The wave's height is modulated by the smoothed amplitude, providing a reactive component. As the music's volume increases, the wave becomes more pronounced. The effect is drawn by creating a circular shape (beginShape()...endShape()) and using a loop to define vertices based on the sin function's output. This creates a dynamic circular ripple effect.</p>
<br><b>Case 4</b>
<p>Here i had 3D cubes moving foward and 2 digonal lines reacting to the music</p>
<p>The code uses an FFT (Fast Fourier Transform) to analyze the audio data. FFT converts audio signals from the time domain to the frequency domain, allowing you to break down the audio into different frequency bands. As part of the visual effect i made a cube class...
<p>Cube class: This is a custom class representing a 3D cube. It has properties for position (x, y, z), rotation (rotX, rotY, rotZ), and size, with additional fields to manage speed and cumulative rotation.In the Cube constructor, the cubes are initialized with random positions and rotations to create a varied 3D scene. The display method in the Cube class is responsible for rendering the cubes. The cubes are translated in 3D space, rotated, and then drawn using the box function from Processing.</p>
<p>Line Segments: The code defines two sets of diagonal lines that cross the screen: one from top-left to bottom-right and one from top-right to bottom-left. These lines are made up of a series of points, whose positions are influenced by the FFT data. The updateLineOffsets method updates the displacement values for these lines based on the FFT data. The displacement determines how much each segment is offset from a straight line, creating a wave-like motion. The drawLine method is used to draw the lines, using the offsets to adjust the y-coordinates of the line segments. This creates a visual effect where the lines appear to react to the audio data.

# What I am most proud of in the assignment

# Markdown Tutorial

This is *emphasis*

This is a bulleted list

- Item
- Item

This is a numbered list

1. Item
1. Item

This is a [hyperlink](http://bryanduggan.org)

# Headings
## Headings
#### Headings
##### Headings

This is code:

```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);
}
```

So is this without specifying the language:

```
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);
}
```

This is an image using a relative URL:

![An image](images/p8.png)

This is an image using an absolute URL:

![A different image](https://bryanduggandotorg.files.wordpress.com/2019/02/infinite-forms-00045.png?w=595&h=&zoom=2)
# What I am most proud of in the assignment
<b>Éadaoin</b>
<p>I am most proud of being able to join both of my initial visuals into a 3rd visual with a mixture of my code, creating an even cooler visual. When I initially tried this it looked okay but not great, and with more editing and trial and erroring I was able to get my circle vertex to a place that I was really happy with and have it looking good. I think this visual was easier than my other 2 visuals, but only because I had already done the hard work and dealt with the difficulties involved with creating them. I had already learned a lot from my first 2 visuals as well so it was quicker when I was editing as I knew each of the variables and what they would change.</p>
<br>
<b>Fionán</b>
<p>I'm most pround of being able to significantly improve my skills with using Version Control System (VCS) throughout this assignemnet, along with improving my Java skills and getting a better understanding of creating sketches with Processing, putting my skills in Git to use was very rewarding, when moving code from my own testing environment into our shared repository, I ran into a few merge conflicts which couyld not be fast-forwarded or rebased without manually resolving, this tested my skills and was the first chance I got properly using a VCS during this programme, which I was very proud of. I f I was to do this again, I would make use of feature branches and use a VCS from the beginning to avoid issues with clashing variable names, when incorporating my code in with the rest of the team. Additionally, I was proud with how I managed to overcome an issue in the trimatrix.java file where the traingle was not visible in front of the matrix, it was during this that I discovered the `translate()` function in processing and how it could help me place object effectively on the z-axis to overcome this issue.</p>
<br>
<b>Alannah</b>
<p>The aspect I'm most proud of in my part of the assignment was my ability to adapt. I faced several instances where my code threw errors, and I wasn't sure why. These challenges were frustrating, but they became learning opportunities for me. Instead of giving up, I adapted. I researched, i watched videos and i ran my code again and again to try and improve it. One specific example comes to mind, before my finished product, in my case 4, i.e the cube case, i used to also have a wall class. the wall class was a long piece of code that i worked really hard on to get working, it reacted with the music and looked great along my cube class. But unfortunately, when putting it in the cases, the wall code stopped working, i tried for hours to try and fix it to no avail. i was frustrated and disappointed, 'why cant i get it' i thought. so i had to go back to the drawing board. i adapted and made the decision t remove the wall code and instead add two lines diagonally across the screen(as seen in the final program). Even though it was frustrating to remove the wall code, it was my ability to adapt and emply a new creative solution that i am really proud of, and will take forward with me. </p>

This is a youtube video:

[![YouTube](http://img.youtube.com/vi/J2kHSSFA4NU/0.jpg)](https://www.youtube.com/watch?v=J2kHSSFA4NU)
Youtube video:

This is a table:
[Watch the video on YouTube](https://youtu.be/O8TJEiXIKQE)

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

Binary file added Vengaboys - We like to Party! (The Vengabus).mp3
Binary file not shown.
Binary file modified java/.DS_Store
Binary file not shown.
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>1710349912754</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/bin/.DS_Store
Binary file not shown.
Empty file added java/bin/C22339066/hehehe.txt
Empty file.
12 changes: 12 additions & 0 deletions java/bin/C22398106/birdsinthesky.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
//case 1:
/*colorMode(HSB);
background(200);
stroke(0);
for (int i = 0; i < width + 25; i += 25) {
for (int j = 0; j < height + 25; j += 25) {
float hue = map(i, 0, ab.size() , 0, 256);
fill(hue, 255, 255);
stroke(15);
circle(i, j, (width /2) * smooth);
}
}*/
Loading