This repository contains a web application for music transcription. The frontend is built with React, and the backend is powered by FastAPI. The application allows users to record audio or upload audio files, and then it transcribes the audio into MIDI files.
- Record audio directly from the browser.
- Upload audio files for transcription.
- Transcribe audio to MIDI using Basic Pitch.
- Frontend: React
- Backend: FastAPI
- MIDI Transcription: Basic Pitch
- Node.js
- Python 3.7+
- venv (for creating virtual environments)
-
Clone the repository:
git clone https://github.com/yourusername/music_transcription.git cd music_transcription
-
Navigate to the
frontend
directory:cd frontend
-
Install the dependencies:
npm install
-
Start the frontend development server:
npm run dev
Now create one more terminal to run the backend
-
Navigate to the
backend
directory:cd music_transcription cd backend
-
Create a virtual environment:
python -m venv myenv
-
Activate the virtual environment:
- On Windows:
myenv\Scripts\activate
- On macOS and Linux:
source myenv/bin/activate
- On Windows:
-
Install the dependencies:
pip install -r requirements.txt
-
Run the FastAPI server:
uvicorn main:app --reload
Once both the frontend and backend servers are running, you can access the application by navigating to http://localhost:5173
in your web browser.
- Record audio or upload an audio file using the web interface.
- The backend will process the audio and transcribe it to a MIDI file.
- The midi file is saved in MIDI folder inside the backend folder as of now.
This project is licensed under the GNU Public License. See the LICENSE file for details.
- Basic Pitch for MIDI transcription.