Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
50e150c
First test commit
C22454222 Mar 14, 2024
fe448bb
Merge pull request #1 from C22454222/Chris-dev
C22454222 Mar 14, 2024
4233223
Delete java/src/C22454222 directory
C22454222 Mar 14, 2024
023582b
Update README.md
C22454222 Mar 21, 2024
259acc4
Made MainVisual.java
C22454222 Mar 28, 2024
29d2808
Made changes to MainVisual and AudioBandsVisual .java was made
C22454222 Mar 28, 2024
d79537f
More changes on MainVisual
C22454222 Mar 28, 2024
ebc933a
Making java files
C22454222 Mar 28, 2024
bb28fd7
Trying to get audio file to play
C22454222 Mar 28, 2024
48e19ec
Converted the audio file from m4a to mp3
C22454222 Mar 29, 2024
551b548
Coding AudioBandsVisual
C22454222 Mar 29, 2024
1311791
Converted m4a file to mp3 and mp3 to wav file. Project .wav
C22454222 Mar 29, 2024
d4bf520
Setup methods in MainVisual.java and created basic logic for switchin…
C22454222 Mar 29, 2024
63ac755
Corrected some typos and mistakes
C22454222 Mar 29, 2024
98097b5
Making my own file
C22454222 Mar 30, 2024
cee9cf6
hey
C22454222 Mar 30, 2024
2258ee7
Changed java file names for instance call
C22454222 Mar 30, 2024
60045fe
Trying to get audio file to play with a visual
C22454222 Mar 30, 2024
3fb6de2
a
C22454222 Mar 30, 2024
8a31212
Merging
C22454222 Mar 30, 2024
3617f44
Making visual menu
C22454222 Mar 30, 2024
0202866
Creating visual menu
C22454222 Mar 30, 2024
88d310e
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals
C22454222 Mar 30, 2024
98cd45f
Adding fundamentals of the menu such as text boxes, text and borders …
C22454222 Mar 30, 2024
b97132f
Finished creating menu with play tune option and all of our visulas a…
C22454222 Mar 30, 2024
52a1dc0
Pulling master changes
C22454222 Mar 30, 2024
3857ec3
Pulling master changes
C22454222 Mar 30, 2024
f26653a
Making new instance of MainVisualMenu object in Main.java
C22454222 Mar 30, 2024
8da6ffb
Adjusted clors and sizes for menu. Not set in stone yet thought
C22454222 Mar 30, 2024
afd4028
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals in…
C22454222 Mar 30, 2024
b413029
Correcting some logic and typing errors
C22454222 Mar 30, 2024
f98cd8a
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals in…
C22454222 Mar 30, 2024
233f728
Made audio visual for audioBands
C22454222 Mar 30, 2024
d6e90d3
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals in…
C22454222 Mar 30, 2024
fe16998
Setting up my own visual methods
C22454222 Mar 31, 2024
eb6071b
Setting up my own visual methods
C22454222 Mar 31, 2024
de637df
Formatting, indenting and commenting all of our code thus far
C22454222 Mar 31, 2024
3220404
Merge
C22454222 Mar 31, 2024
05eb47c
Updating README.md file
C22454222 Apr 3, 2024
3733206
Updating README.md file again
C22454222 Apr 3, 2024
63f342b
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals in…
C22454222 Apr 3, 2024
55c3536
Starting to make first visual. Lots of errors as expected
C22454222 Apr 3, 2024
3aaa706
Main changes
C22454222 Apr 4, 2024
913214d
Changes
C22454222 Apr 8, 2024
a50d067
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals in…
C22454222 Apr 8, 2024
df054b5
Getting master changes
C22454222 Apr 8, 2024
1acb92f
Formatting mainVisual.java and trying to get pause play logic to work
C22454222 Apr 15, 2024
2288124
Formatted every file
C22454222 Apr 15, 2024
3beb50f
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals in…
C22454222 Apr 15, 2024
6bb068f
Finally have a visual on the screen. First of 3 visuals started
C22454222 Apr 15, 2024
aba00d9
Added AudioSample function to Visual.java. Needed for ChrisVisual.jav…
C22454222 Apr 15, 2024
58e2b72
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals in…
C22454222 Apr 15, 2024
88482df
Working on second option. First option has a beta version. Second opt…
C22454222 Apr 15, 2024
26d17f6
Making more progress on Visual 1
C22454222 Apr 16, 2024
f18b3cf
Changes
C22454222 Apr 16, 2024
b53f334
Merge branch 'master' of https://github.com/JasonOS03/MusicVisuals in…
C22454222 Apr 21, 2024
53ba58a
Merge
C22454222 Apr 21, 2024
cee23fe
Trying to make the first visual more smooth using a lerpedBuffer
C22454222 Apr 21, 2024
a644759
Having issues with pixelation on visual 1
C22454222 Apr 21, 2024
0c97ae5
Still having issues with scale and resolution on first visual
C22454222 Apr 21, 2024
469053b
Added new method for making dynamic colour changing in the second visual
C22454222 Apr 21, 2024
699b5ed
Starting visual two. Growing triangle with a beat counter!
C22454222 Apr 21, 2024
ee142cd
Lots of bugs to fix and refactoring
C22454222 Apr 22, 2024
2b51071
Switching to a single visual because of never ending bugs. Experiment…
C22454222 Apr 22, 2024
4d4657c
Made a glorious visual. Finally found the right one. Triangles facing…
C22454222 Apr 22, 2024
5a9479a
Have sets of triangles facinf each other with simple sin and cos loop…
C22454222 Apr 22, 2024
a6c0080
Trying to get mouse interactivity now
C22454222 Apr 22, 2024
2896675
Finished spirals. Found correct position for them
C22454222 Apr 22, 2024
003ca75
Small changes
C22454222 Apr 23, 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
74 changes: 46 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Music Visualiser Project

Name:
Names: Aimee Mcgrane, Neil Fitzgerald, Jade Thornton, Jason O Sullivan, Chris Noblett

Student Number:
Student Numbers: C22393606, C22405604, C22394466, C22400796, C22454222

## Instructions
- Fork this repository and use it a starter project for your assignment
Expand All @@ -13,12 +13,52 @@ Student Number:

# Description of the assignment

## Aimee

## Neil

## Jade

## Jason

## Chris

# Instructions

## Main Menu

Once you have ran the program, a separate menu window opens with the following options:
- Play Tune
- Aimee
- Neil
- Jade
- Jason
- Chris

## Chris's Visual Option
Chris's visual has further visual change options based on keypress.
Press a corresponding number on your keyboard to change the visual.

| Keycode | Visual |
|---------|-----------|
| '1' | |
| '2' | |
| '3' | |

# How it works

# What I am most proud of in the assignment

## Aimee

## Neil

## Jade

## Jason

## Chris

# Markdown Tutorial

This is *emphasis*
Expand All @@ -33,7 +73,7 @@ This is a numbered list
1. Item
1. Item

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

# Headings
## Headings
Expand All @@ -43,41 +83,19 @@ This is a [hyperlink](http://bryanduggan.org)
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)
![An image]

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)
![A different image]

This is a youtube video:

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

![YouTube]
This is a table:

| Heading 1 | Heading 2 |
Expand Down
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>1711630517027</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/Project.mp3
Binary file not shown.
Binary file added java/data/Project.wav
Binary file not shown.
Binary file removed java/data/heroplanet.mp3
Binary file not shown.
49 changes: 49 additions & 0 deletions java/src/C22454222/AudioBandsVisual.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package C22454222; // Package declaration
import ie.tudublin.*; // Importing necessary classes from the ie.tudublin package
import ddf.minim.AudioBuffer; // Importing AudioBuffer class from the ddf.minim package

// This is an example of a visual that uses the audio bands
public class AudioBandsVisual extends Visual // Class declaration, extending Visual class
{
MainVisual mv; // Reference to MainVisual class
AudioBuffer ab; // Reference to AudioBuffer class
float[] lerpedBuffer; // Array to store lerped audio buffer values
float smoothedAmplitude = 0; // Variable to store smoothed amplitude value

// Constructor for AudioBandsVisual class
public AudioBandsVisual(MainVisual mv)
{
this.mv = mv; // Initializing MainVisual reference
ab = mv.getAudioBuffer(); // Getting audio buffer from MainVisual
lerpedBuffer = new float[ab.size()]; // Initializing lerpedBuffer with size of audio buffer
}

// Method to render the visual
public void render()
{
mv.beat.detect(mv.as.mix); // Detecting beat using MainVisual's AudioSum
mv.beat.detectMode(0); // Setting beat detection mode
mv.background(0); // Setting background color to black
float average = 0; // Variable to store average value
float sum = 0; // Variable to store sum of audio buffer values

// Calculating sum of absolute values of audio buffer
for(int i = 0 ; i < ab.size() ; i ++)
{
sum += abs(ab.get(i)); // Adding absolute value of each audio buffer element to sum
lerpedBuffer[i] = lerp(lerpedBuffer[i], ab.get(i), 0.1f); // Applying linear interpolation to smooth audio buffer
}

average = sum / (float) ab.size(); // Calculating average value
smoothedAmplitude = lerp(smoothedAmplitude, average, 0.1f); // Applying linear interpolation to smooth amplitude

// Draw the visual using lerpedBuffer
for(int i = 0; i < ab.size(); i ++)
{
float c = map(i, 0, ab.size(), 0, 255); // Mapping index to color value
mv.stroke(c, 255, 255); // Setting stroke color based on mapped value
float f = lerpedBuffer[i] * mv.height / 2 * 4.0f; // Scaling lerped buffer value
mv.line(i, mv.height / 2 + f, i, mv.height / 2 - f); // Drawing line based on scaled value
}
}
}
120 changes: 120 additions & 0 deletions java/src/C22454222/ChrisVisual.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
package C22454222;
import ddf.minim.AudioInput;
import ddf.minim.Minim;
import processing.core.PApplet;
import ie.tudublin.*;
import ddf.minim.AudioBuffer;

public class ChrisVisual extends Visual
{
MainVisual mv;
Minim minim;
AudioInput ai;
AudioBuffer ab;

float[] lerpedBuffer;
float y = 0;
float smoothedY = 0;
float smoothedAmplitude = 0;

public ChrisVisual(MainVisual mv)
{
this.mv = mv;
this.ab = mv.getAudioBuffer();
this.ai = mv.getAudioInput();
}

float[] currentColours = new float[]{random(0,255),random(0,255),random(0,255)};
float[] previousColours = new float[]{0,0,0};
int kickCounter = 0;

public float[] replacingColours(float[] currentColours)
{
float[] colours = new float[]{random(0,255),random(0,255),random(0,255)};
for(int i = 0; i < 3; i++)
{
currentColours[i] = colours[i];
}
return currentColours;
}

public void render()
{
float radius = 20;
mv.background(0,0,0);
mv.beat.detect(mv.as.mix);
mv.beat.detectMode(0);
mv.fCounter++;
mv.translate(mv.width/2, mv.height/2);

float smooth = mv.getSmoothedAmplitude();

if (mv.beat.isKick())
{
kickCounter++;
}

mv.fill(currentColours[0],currentColours[1],currentColours[2], 50);

radius = 40*kickCounter;
mv.ellipse(0,0,radius,radius);

mv.fill(previousColours[0],previousColours[1],previousColours[2], 25);

mv.stroke(map(mv.getAmplitude(), 0, 1, 0,255),255,255);

radius = 15*kickCounter;
mv.triangle(-200, -100, -140+(float)0.6*radius, radius, (-260-(float)0.6*radius), radius);
mv.triangle(200, -100, 260+(float)0.6*radius, radius, (140-(float)0.6*radius), radius);
mv.triangle(-400, -100, -340+(float)0.6*radius, radius, (-460-(float)0.6*radius), radius);
mv.triangle(400, -100, 460+(float)0.6*radius, radius, (340-(float)0.6*radius), radius);
mv.triangle(-600, -100, -540+(float)0.6*radius, radius, (-660-(float)0.6*radius), radius);
mv.triangle(600, -100, 660+(float)0.6*radius, radius, (540-(float)0.6*radius), radius);

mv.triangle(-200, 100, -140+(float)0.6*radius, -radius, (-260-(float)0.6*radius), -radius);
mv.triangle(200, 100, 260+(float)0.6*radius, -radius, (140-(float)0.6*radius), -radius);
mv.triangle(-400, 100, -340+(float)0.6*radius, -radius, (-460-(float)0.6*radius), -radius);
mv.triangle(400, 100, 460+(float)0.6*radius, -radius, (340-(float)0.6*radius), -radius);
mv.triangle(-600, 100, -540+(float)0.6*radius, -radius, (-660-(float)0.6*radius), -radius);
mv.triangle(600, 100, 660+(float)0.6*radius, -radius, (540-(float)0.6*radius), -radius);

if (radius > (float)mv.width / 2)
{
for (int i = 0; i < 3; i++)
{
previousColours[i] = currentColours[i];
}
replacingColours(currentColours);
kickCounter = 0;
radius = 20;
}

for (float i = 0; i < mv.width; i += 0.3)
{
float x1 = (PApplet.cos(i) * smooth * i);
float y1 = (PApplet.sin(i) * smooth * i);
mv.point(x1, y1);
}


for (float i = 0; i < mv.width; i += 0.3)
{
float centerX2 = -400;
float centerY2 = 0;
float x2 = centerX2 + (PApplet.cos(i) * smooth * i);
float y2 = centerY2 + (PApplet.sin(i) * smooth * i);
mv.point(x2, y2);
}

for (float i = 0; i < mv.width; i += 0.3)
{
float centerX3 = +400;
float centerY3 = 0;
float x3 = centerX3 + (PApplet.cos(i) * smooth * i);
float y3 = centerY3 + (PApplet.sin(i) * smooth * i);
mv.point(x3, y3);
}
}
}


Loading