大市修于市,音符修于心
A lightweight pitch editor inspired by Melodyne, built with the JUCE framework for PC-NSF-HiFiGAN vocoder integration.
- Piano roll interface for visualizing and editing pitch
- Waveform display
- YIN-based pitch detection
- Note segmentation
- Real-time audio playback
- Pitch offset editing per note
- Import/Export WAV files
- CMake 3.22 or later
- C++17 compatible compiler
- JUCE framework (will be cloned as submodule)
- Visual Studio 2019 or later with C++ workload
- Windows SDK
- Xcode with command line tools
- GCC or Clang
- ALSA development libraries
First, clone the JUCE framework into the project directory:
cd pitch_editor_juce
git clone https://github.com/juce-framework/JUCE.gitmkdir build
cd build
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --config Releasemkdir build
cd build
cmake ..
cmake --build . --config ReleaseThe executable will be in build/PitchEditor_artefacts/Release/ (or similar path depending on platform).
pitch_editor_juce/
├── CMakeLists.txt # Build configuration
├── Source/
│ ├── Main.cpp # Application entry point
│ ├── Audio/
│ │ ├── AudioEngine.h/cpp # Audio playback engine
│ │ ├── PitchDetector.h/cpp # YIN pitch detection
│ │ └── Vocoder.h/cpp # Vocoder wrapper (placeholder)
│ ├── Models/
│ │ ├── Note.h/cpp # Note representation
│ │ └── Project.h/cpp # Project container
│ ├── UI/
│ │ ├── MainComponent.h/cpp # Main application component
│ │ ├── PianoRollComponent.h/cpp
│ │ ├── WaveformComponent.h/cpp
│ │ ├── ToolbarComponent.h/cpp
│ │ └── ParameterPanel.h/cpp
│ └── Utils/
│ ├── Constants.h # Audio constants
│ └── MelSpectrogram.h/cpp
└── JUCE/ # JUCE framework (clone here)
- Open File: Click "Open" to load a WAV/MP3/FLAC file
- View: Use mouse wheel to scroll, Ctrl+wheel to zoom
- Edit: Click and drag notes to adjust pitch offset
- Playback: Use Play/Pause/Stop buttons
- Export: Click "Export" to save the modified audio
Space: Play/PauseCtrl+O: Open fileCtrl+S: Export fileCtrl+Mouse Wheel: ZoomShift+Mouse Wheel: Scroll vertically
This project is part of the PC-NSF-HiFiGAN vocoder demo.