https://github.com/steve-mackinnon/drum-drops
A small experimental web app that combines a physics simulation with a drum machine
https://github.com/steve-mackinnon/drum-drops
drum-machine physics-simulation webaudio
Last synced: 6 months ago
JSON representation
A small experimental web app that combines a physics simulation with a drum machine
- Host: GitHub
- URL: https://github.com/steve-mackinnon/drum-drops
- Owner: steve-mackinnon
- License: mit
- Created: 2024-01-05T15:54:09.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-14T02:36:49.000Z (about 1 year ago)
- Last Synced: 2025-02-09T10:41:56.593Z (8 months ago)
- Topics: drum-machine, physics-simulation, webaudio
- Language: TypeScript
- Homepage: https://drum-drops.pages.dev/
- Size: 1.41 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Drum Drops
A small experimental web app that combines a physics simulation with a drum machine.
## What is this?
Drum Drops randomly generates a field of rigid surfaces, then periodically spawns ball objects that fall down into the field. When a collision occurs, a drum sample or oscillator (randomly chosen) will be played back. Its volume, pan, and pitch (for the oscillator) will be determined by the velocity and location of the ball when the collision occurs.
This is written in vanilla TypeScript and uses [Matter.js](https://brm.io/matter-js/) for physics, [Pixi.js](https://pixijs.com/) for 2D rendering, and WebAudio for audio playback.
## But... why?
This project was a random idea that I thought _might_ be interesting (but mostly hilarious). Hope you enjoy it!