xingjianll/MidiCopilot

AI-powered music workspace.

1

stars

47

commits

TypeScript

primary language

Dec 28, 2025

updated

README

MidiCopilot

AI-powered music workspace with visual workflow editor for MIDI generation and manipulation.

https://github.com/user-attachments/assets/5e86de6c-96cb-4d13-a207-acdc044494fd

Architecture

MidiCopilot consists of two main components:

  • Frontend: React + TypeScript + Vite with visual workflow editor
  • Backend: FastAPI + PyTorch for ARIA model inference

Quick Start

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • UV (Python package manager)
  • pnpm (Node package manager)

Installation

Install UV:

curl -LsSf https://astral.sh/uv/install.sh | sh

Install pnpm:

curl -fsSL https://get.pnpm.io/install.sh | sh -

Development Setup

  1. Clone the repository

    git clone <your-repo-url>
    cd MidiCopilot
    
  2. Install dependencies

    Backend:

    cd backend
    uv sync
    cd ..
    

    Frontend:

    cd frontend
    pnpm install
    cd ..
    
  3. Run the development servers

    From the root directory:

    pnpm run dev
    

    This will start:

Manual Start (Optional)

If you prefer to start servers separately:

Backend:

cd backend
uvicorn src.main:app --reload --host 0.0.0.0 --port 8000

Frontend:

cd frontend
pnpm dev

Project Structure

MidiCopilot/
├── backend/                 # FastAPI backend
│   ├── src/
│   │   ├── dto/            # Pydantic models
│   │   ├── services/       # Business logic (ARIA service)
│   │   └── main.py         # FastAPI app
│   ├── data/
│   │   ├── uploads/        # Uploaded MIDI files
│   │   └── outputs/        # Generated MIDI files
│   └── pyproject.toml      # Python dependencies
│
├── frontend/               # React frontend
│   ├── src/
│   │   ├── components/     # React components
│   │   │   ├── AriaExecutionPanel.tsx
│   │   │   ├── MidiFileUpload.tsx
│   │   │   └── WorkflowEditor.tsx
│   │   ├── pages/          # Page components
│   │   ├── mockData.ts     # Workflow definitions
│   │   ├── types.ts        # TypeScript types
│   │   └── theme.ts        # UI theme
│   └── package.json        # Node dependencies
│
└── README.md

API Documentation

Once the backend is running, you can access:

Contributors

xingjianll

47 commits

xingjianll/MidiCopilot

AI-powered music workspace.

1

stars

47

commits

TypeScript

primary language

Dec 28, 2025

updated

README

MidiCopilot

AI-powered music workspace with visual workflow editor for MIDI generation and manipulation.

https://github.com/user-attachments/assets/5e86de6c-96cb-4d13-a207-acdc044494fd

Architecture

MidiCopilot consists of two main components:

  • Frontend: React + TypeScript + Vite with visual workflow editor
  • Backend: FastAPI + PyTorch for ARIA model inference

Quick Start

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • UV (Python package manager)
  • pnpm (Node package manager)

Installation

Install UV:

curl -LsSf https://astral.sh/uv/install.sh | sh

Install pnpm:

curl -fsSL https://get.pnpm.io/install.sh | sh -

Development Setup

  1. Clone the repository

    git clone <your-repo-url>
    cd MidiCopilot
    
  2. Install dependencies

    Backend:

    cd backend
    uv sync
    cd ..
    

    Frontend:

    cd frontend
    pnpm install
    cd ..
    
  3. Run the development servers

    From the root directory:

    pnpm run dev
    

    This will start:

Manual Start (Optional)

If you prefer to start servers separately:

Backend:

cd backend
uvicorn src.main:app --reload --host 0.0.0.0 --port 8000

Frontend:

cd frontend
pnpm dev

Project Structure

MidiCopilot/
├── backend/                 # FastAPI backend
│   ├── src/
│   │   ├── dto/            # Pydantic models
│   │   ├── services/       # Business logic (ARIA service)
│   │   └── main.py         # FastAPI app
│   ├── data/
│   │   ├── uploads/        # Uploaded MIDI files
│   │   └── outputs/        # Generated MIDI files
│   └── pyproject.toml      # Python dependencies
│
├── frontend/               # React frontend
│   ├── src/
│   │   ├── components/     # React components
│   │   │   ├── AriaExecutionPanel.tsx
│   │   │   ├── MidiFileUpload.tsx
│   │   │   └── WorkflowEditor.tsx
│   │   ├── pages/          # Page components
│   │   ├── mockData.ts     # Workflow definitions
│   │   ├── types.ts        # TypeScript types
│   │   └── theme.ts        # UI theme
│   └── package.json        # Node dependencies
│
└── README.md

API Documentation

Once the backend is running, you can access:

Contributors

xingjianll

47 commits

Languages

TypeScript

71.6%

Python

26.9%

CSS

1.2%