A modern web application for chopping and processing audio samples with precision timing and beat synchronization.
The Chop Method is an interactive audio processing tool that allows users to import audio files, visualize waveforms, chop and shuffle audio samples with beat-accurate timing divisions.
Built with React and powered by Tone.js and WaveSurfer.js, The Chop Method provides a seamless experience for music producers, DJs, and audio enthusiasts.
- Audio File Import: Support for various audio formats
- Interactive Waveform Visualization: Real-time waveform display with zoom capabilities
- BPM-Based Audio Chopping: Precision timing based on musical beat divisions
- Multiple Beat Divisions: Support for various note values including:
- Standard divisions (1/1, 1/2, 1/4, 1/8, 1/16, 1/32)
- Dotted notes (1/2 dotted, 1/4 dotted, etc.)
- Triplets (1/1 triplet, 1/2 triplet, etc.)
- Audio Playback Control: Play, pause, and seek functionality
- Zoom Controls: Horizontal zoom for detailed waveform editing
- Modern UI: Clean, responsive interface
- Frontend Framework: React 18
- Audio Processing: Tone.js
- Waveform Visualization: WaveSurfer.js
- Build Tool: Webpack
- Styling: CSS3
- Audio Codec Support: FFmpeg integration
- Node.js (version 14 or higher)
- npm or yarn package manager
- Modern web browser with Web Audio API support
-
Clone the repository
git clone git@github.com:JoshuaHirakawa/The-Chop-Method.git cd The-Chop-Method
-
Install dependencies
npm install
-
Start the development server
npm start
-
Open your browser Navigate to
http://localhost:8080
to view the application
npm start
- Start the development server with hot reloadnpm run build
- Build the project for productionnpm run dev
- Run webpack in development mode
- Import Audio: Click the import button to load your audio file
- Set BPM: Enter the BPM of your audio track
- Choose Division: Select the desired beat division for chopping
- Navigate: Use the waveform to seek through your audio
- Zoom: Adjust zoom level for precise editing
- Process: Use the controls to manipulate your audio samples
The-Chop-Method/
├── public/
│ ├── index.html # Main HTML template
│ └── assets/ # Static assets (icons, images)
├── src/
│ ├── App.js # Main application component
│ ├── index.js # Application entry point
│ ├── style.css # Global styles
│ ├── components/
│ │ ├── Waveform.js # Waveform visualization component
│ │ └── Controls.js # Audio control interface
│ └── utils/
│ └── bpmDivisions.js # BPM calculation utilities
├── package.json # Project dependencies and scripts
└── webpack.config.js # Webpack configuration
- Renders interactive audio waveform
- Handles user interactions (click, drag, zoom)
- Integrates with WaveSurfer.js for visualization
- Provides playback controls
- BPM input and beat division selection
- Zoom and audio processing controls
- Calculates precise timing for various musical note values
- Supports standard, dotted, and triplet divisions
- Handles BPM validation (1-250 BPM range)
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Joshua Hirakawa
- Additional audio effects
- Playlist management
- Cloud storage integration
- Real-time collaboration features
Built with ❤️ for music producers and audio enthusiasts