GithubHelp home page GithubHelp logo

ashfinn / hitori Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 3 KB

Hitori is an all-in-one music creation and editing suite. Combining features of music notation software, sound editing tools, and a Digital Audio Workstation (DAW). ( WORK IN PROGRESS )

CMake 52.91% C++ 47.09%

hitori's Introduction

Hitori - Comprehensive Music Creation and Editing Suite

Introduction

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.

Core Features

  • 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.

Development Roadmap

Phase 1: Project Setup

  • 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.

Phase 2: Music Notation Module

  • 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.

Phase 3: Track Management and Audio Playback

  • Implement Track Class: Develop a Track class with properties like name, 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.

Phase 4: Audio Recording and Editing

  • 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.

Phase 5: Effects, Plugins, and Mixing

  • 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.

Phase 6: MIDI Support and Export Features

  • 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.

Phase 7: Testing, Optimization, and Finalization

  • 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.

Phase 8: Final Release and Documentation

  • 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.

Contributing

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.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contact

For questions, suggestions, or feedback, feel free to contact me at [[email protected]].

hitori's People

Contributors

ashfinn avatar

Stargazers

Flugel avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.