0x48piraj / aos

Aroma of the Songs — Visualizing music in the form of intricate rose petals using moving cube traces.
https://0x48piraj.com/projects/aos/
MIT License
11 stars 2 forks source link
aromaofsongs aromaofthesongs audio-processing audio-visualizer experimentation mathematical-modelling music-information-retrieval music-visualizer projectaos vizualisation

Aroma of the Songs

Aroma of the Songs — Visualizing music in the form of intricate rose petals using moving cube traces

AromaOfTheSongs Logo
Visit Playground — Project AOS to fiddle around with your favourite songs.
Visit Home — Project AOS to explore the project.

Brief History

I love Music and frankly, who doesn't. From my childhood days, I have this innate tendency of tinkering things for example, from sending songs wirelessly using Light, trying encoding songs visually to making machine generated synthetic songs, somehow Music has always been a center piece to all of it. “Aroma of the Songs” follows this progression and transforms Music into Roses creating exploration space of a unique kind—the one that helps you in connecting with Music and impacts you on many levels. Initially it was given the Project Codename S.O.S. meaning Smell of the Songs which then changed (because of the word 'Smell' being a little onto negative side) to Aroma of the Songs or Project A.O.S.

You can visit About — Project AOS to read more about the project origin.

The Playground

The playground was created to experiment with the numbers, to let users generate roses and play with the project. It helps one to understand the know-how of this project. To know more, you can head over to Aroma of songs A.K.A. Project A.O.S. In The Making. The blog mostly revolves around the overall design process.

Internal Workings

Algorithm behind this project manoeuvres the cube using a modified Rose equation and FFT Spectrum Analysis.

The proto equations which control the movement of the cube and create intricate realistic looking rose petals are,

rotateXorYorZ(cos(A * B)),
rotateXorYorZ(sin(A * B))

The cube traces controlled by algorithm's core logic leave behind intricate & beautiful rose petals. The output by the algorithm is integrated with rendering engine called Processing which handles the movement of the cube.

The source code is in the / directory. It is packaged as a Flask application. You can run it by installing Flask and then running the web app by calling,

$ python app.py

Contributing

A few ways in which you can contribute to Project AOS,

PS: Look into the issues. Feel free to create a new issue to discuss things.

Acknowledgements

The idea for this project was initially inspired by Ashris's awesome project Roses in Resonance. The overwhelming support by Mary Lou gave project's homepage the shape it is in right now.

Surprise your friends

If you like the project, you can use these quick links to share it with your music aficionado friends,

Facebook Twitter LinkedIn

🎓 License

License: MIT

© Piyush Raj