Skip to content

Latest commit

 

History

History
113 lines (76 loc) · 5.87 KB

README 2.md

File metadata and controls

113 lines (76 loc) · 5.87 KB

Hannah Bollar

University of Pennsylvania, CIS 700: Procedural Graphics, Final Project

Project Proposal: Music Visualizer

  • Introduction

    • What motivates this project?

    I've worked with learning a lot of different procedural techniques throughout this past semester now I want to see if I can combine parts of them with my interest in particle simulations.

  • Goal

    • What do you intend to achieve with this project?

    Create a functioning music visualizer - aka entertainment for while im studying later

  • Inspiration/reference:

    • Attach some materials, visual or otherwise you intend as reference

    See notes below - in particular the youtube videos

  • Specification:

    • Outline the main features of your project

    See notes below

  • Techniques:

    • What are the main technical/algorithmic tools you’ll be using? Give an overview, citing specific papers/articles

    (1) Working on shaders and particle manipulations in the gpu (2) Varying noise functions (3) how to interpret midi file data so can visualize the music properly

  • Design:

    • How will your program fit together? Make a simple free-body diagram illustrating the pieces.
  • Timeline:

    • Create a week-by-week set of milestones for each person in your group.

Milestone 1


Set up physical aspect of this:

  • positioning of spots where balls shoot out
  • interpreting the music as data (but dont have to do anything with the data yet)
  • set up water plane in space, surrounding environment box [skybox]
  • gui to pick which music to play [for now just have it as a pause and play button for playing one set of music]
  • have all the shader materials set up for everything but the balls [balls will have gpu manipulations based on time so for now leave as default]
  • add box to pause and play
  • add box to maintain repeat for song or not
  • make so the loaded song plays out the speakers with the right timing [ie using same timer as gl]

Milestone 2

  • Set up using of music data for balls being shot out from particular location
  • make the wave bottom move/flow
  • add noise to the movement of the balls [ie the farther up they go the more the noise affects them]
  • add timer for life of the balls [life meaning being shown visually or not - to maintain the same number of balls overall]

Milestone 3 [ready for submission]

  • finish all parts of prev milestones not yet completed and see notes for additional features to implement
  • note: should be fully functioning before this deadline
  • [if time] add ability for user to manipulate [ie click somewhere and the particles react - but only for clicking - could act as an attractor or a repellor
  • [if time] make it so users can input a midi file and that i can load from it [ ie can load the visualizer for any given file ] - set timer so that song loops continuously

NOTES:

music visualizer:

particles, ribbon creation, shape visualization, using what shader

2 diff variations at min 3 diff variations of the visualizer at max [maybe dep on frequency]

can build texture in substance designer?

DO THE YOUTUBE VIDEO FOR PIANO MUSIC / piano interpretation of music based on keys https://www.youtube.com/watch?v=fpViZkhpPHk&list=PL_2OwBBRw9hDSXyaIPrCeKUCNnCrHAHEn

some particles just floating around and when hit by an object they bounce --> but they have an origin theyre supposed to try and get back to --> like nop's plane variation

so particles coming from keys at the bottom hitting through the plane particles

try and do it on the gpu? since just particles --> based on music input for specific values have the rgb color input stand as whether or not on plane or seen yet [note this is done with time] --> maybe have a loading screen while this computation is being done --> then once have all proper data from music for the gpu --> run as particle sim --> so can load up from two different piano music files to start with like this one: https://www.youtube.com/watch?v=KiRLdhnDKwc&list=PL_2OwBBRw9hDSXyaIPrCeKUCNnCrHAHEn&index=14 <- to demonstrate following mariano's technique of doing it as height for buildings

--> if do it on the gpu can have a max number of particles to begin with where input includes on/off/start time to visualize it --> note this is loaded up --> just loop through once start time becomes the max for the music vid and reloop back time to beg[like with mariano's cube anim --> just reloop as a vid]

can do this at bottom with opacity in distance so cant see moving texture https://www.youtube.com/watch?v=82Q6DRqf9H4&list=PL_2OwBBRw9hDKSZvusG6aBFh6bx32E9i5 have texture as color and opacity to be sent in for plane shader for where the particles come out at the bottom -- OR -- have it as the plane where once the particles cross through it --> go all crazy instead of in the plane music lines ^^ from this following color scheme of starting at purple and that blue --> once across the purple going to that blue to and that blue to yellow/limegreen? -- to do this maybe have the third component of the color not used to be 0 or 1 for picking what color it will switch to and just grab from a vec2 in the gpu

OR MAYBE ADD IN A FIREBALL GIF VISUALIZER??

PARTICLES: tune / piano style based on keys BACKGROUND COLORING EFFECT: the beat itself of the music

small balls each in a row --> once break through particle plane they explode into at least 5 smaller ball particles --> when outside particular spherical area [OR AFTER A PARTICULAR AMOUNT OF TIME IN EXISTANCE] -- also size of objects after hitting plane decreases based time of existance --> delete and bring back to orig so maintain total num of particles just with pos and seen/not

chromeexperiments --> CHECK OUT FOR WORK

MIDI FILE TYPE

MOUSE MANIPULATION WHEN CLICKING BARS ALWAYS MADE OF PARTICLES - amount of influence they get by noise field --> increases dep on height

TRUNG & NOP