Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🖐 p5.js #4

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
Data
*.pyc

node_modules
dist
.vite
21 changes: 14 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
# Joe

A visualizer designed to generate sheet music based on recorded audio.
Joe (named after Joseph Fourier) is a project that aims to visualize music in real(ish) time and to perform further analysis on it, including outputing midi sheet music.

## Input Data
There are a few main components to this project - a p5.js/mithril.js frontend, a python backend, and some ipython notebooks for analysis and IO. These are intended to cooperate, but stay useful on their own too. Maybe someday these will be proper submodules (PRs welcome).

The input sound files are expected to be in /Data/Audio/ folders in the root directory.
If there are no /Data/Audio/ folders, create them. Or run once, and they will be created.
## Setup

## Main
Takes in input audio from Data/Audio and creates Audio() classes for each file to be processed into MIDI files.
### Python backend/logic
We're using `pdm` to get things going on the back end.

Also where threshold/processing parameters are set.
Assuming you've got the proper binary installed locally (`pip install pdm`), you can run `pdm install` to get things started. This will get a venv set up for you too.

You can then run `pdm run python main.py` to run analysis on the audio files in the `Data/Audio` directory.

The `main.py` script will create a `Process_Data.json` file in the `Output` directory, which will contain the data used for each run. This is where `Audio` classes for each file are created, and `Midi` classes are created for each `Chroma` class. Thresholds and processing parameters are set here.

### P5/mithril front end
`npx vite` should get the party started
(maybe `npm i vite` if you don't have it installed)
Loading
Loading