Hitori is an all-in-one music creation and editing suite designed to cater to the needs of musicians, producers, and audio engineers. Combining features of music notation software, sound editing tools, and a Digital Audio Workstation (DAW), Hitori aims to be a powerful yet user-friendly platform for composing, recording, editing, and mixing music.
- Music Notation: Create, edit, and print sheet music with a versatile notation editor. Supports various musical symbols, time signatures, and dynamics.
- Audio Playback and Recording: Real-time playback, multi-track recording, and support for various audio formats.
- Track Management: Track creation, deletion, naming, color coding, and control over volume and panning.
- Audio Editing: Cut, copy, paste, trim, fade in/out, normalize, reverse, time-stretching, pitch-shifting, and more.
- Effects and Plugins: Built-in effects (EQ, reverb, delay), VST/AU plugin support, and customizable effect chains.
- Mixer and Routing: Mixer interface, audio routing, bus management, and sub-mixing.
- MIDI Support: MIDI recording, playback, editing, and instrument support.
- Export and Rendering: Export audio and notation to various formats, batch processing, and project archiving.
- Set Up Development Environment: Configure IDE, libraries (JUCE, PortAudio, MusicXML for notation), version control (Git), and project structure.
- Basic UI Setup: Create the main application window, implement a menu bar, and set up basic areas for track view, notation, and editing.
- Notation Editor: Develop a notation editor with support for standard musical symbols, time signatures, and key signatures.
- Notation UI: Implement a UI for creating and editing sheet music.
- Playback from Notation: Integrate the notation editor with the playback engine to allow users to hear their compositions.
- Implement Track Class: Develop a
Track
class with properties likename
,color
,volume
,pan
, and functions for track management. - Track Management in UI: Display and manage tracks in the UI, including adding, removing, and reordering tracks.
- Implement Basic Audio Playback: Set up the audio engine and implement real-time playback for single and multi-tracks.
- Basic Audio Recording: Enable audio recording from input devices and support multi-track recording.
- Basic Editing Functions: Implement cut, copy, paste, delete, and trimming for audio clips.
- Advanced Editing Features: Add fade in/out, normalize, reverse, time-stretching, and pitch-shifting.
- Clip Management in UI: Display and edit audio clips on the timeline.
- Implement Built-In Effects: Create basic effects like EQ, reverb, delay, and real-time processing.
- Plugin Support (VST/AU): Integrate VST/AU plugin support, and manage plugin parameters in the UI.
- Mixer Interface: Design and implement the mixer interface, allowing real-time adjustments to track volume, pan, and effects.
- Routing and Bus Management: Implement audio routing, sub-mixing, group tracks, and automation for mixer controls.
- MIDI Support: Implement MIDI recording, playback, and editing, with support for MIDI instruments.
- Notation to MIDI Conversion: Allow users to convert sheet music into MIDI sequences for playback and editing.
- Export and Rendering: Implement functionality to export tracks, entire projects, and sheet music to various formats.
- Unit and Integration Testing: Write and perform tests for individual components and system integration.
- Performance Optimization: Optimize audio processing, notation rendering, and overall system performance.
- Bug Fixing and Refinement: Fix bugs, refine features, and improve user experience based on testing.
- Documentation: Write user guides, tutorials, and technical documentation for developers.
- Beta Release and Feedback: Release a beta version, collect feedback, and make final adjustments.
- Final Release: Package and distribute the final version of the software.
Contributions are welcome! Please fork this repository and submit a pull request with your changes. Make sure to follow the coding standards and include tests where applicable.
This project is licensed under the MIT License. See the LICENSE file for more details.
For questions, suggestions, or feedback, feel free to contact me at [[email protected]].