For my final project, I got inspiration from a sketch called 2D-Waves integration written by Étienne Jacob. I hope the audio visual effect can show that raindrops keep hitting the water surface, and raindrops can be generated by the particle system. I use p5.FFT library to get audio's datas. The audio volume can be mapped to the Damping coefficient and particles' brightness. At the same time, The amplitude values are related to the size of the particles, the velocity and particles' lifespan. When it detect the peak, the particles' size would be reach the maximum value.

Then I try  to use the Pitch Detection model of ML5 to identify the pitch of the audio, and it will control the RGB of the raindrop. Also,Pitches('C','C#','D','D#','E','F','F#','G','G#','A','A#','B') respectively map where the  particles are generated in the sketch.

Next steps:

I want the raindrops to bind the weather data, which plays music by the data itself, such as wind and rain data, according to the size of the rainfall data will affect the generation of the pitch area where the particles are, while the wind data can control the direction and speed of the particles, the push particles can enter different pitch areas.