Menu
DevELOPMENT Plan
Current Development Goals
At this stage, we are focused on finalizing the backend platform and moving towards frontend development and integration.
Done
- Developed a robust, high-performance platform with ACID-compliant transactions.
- Implemented a polymorphic Public API that implements composable high-capacity STM transactions.
- Created a vector path descriptor (VPD) system for efficient data access and manipulation.
- Implemented a Piece Manager for handling multiple pieces and clients, supporting ID translation for the frontend.
- Eliminated global dynamic variables, allowing for multiple clients to work simultaneously on the same piece in a distributed arrangement.
- Set up comprehensive documentation and a project website.
- Simplified architecture by maintaining Piece as a pure tree structure, eliminating circular references and double-linked pointers.
- Added Spec everywhere, including custom generators for all objects including pieces.
- Generative tests added. The total number of tests now exceeds 15000.
- Implemented a complete working system for non-pure tree aspects of music notation (slurs, ties, 8va, hairpins, etc.) using Methodical's :around handling.
- Finalized the API to align with persistence requirements and support for ties, slurs, and other interconnected elements.
- Implemented file persistence using Nippy:
- Implemented serialization/deserialization functions
- Created asynchronous file I/O and streaming functions for saving/loading/transmitting Pieces
- Conducted testing and benchmarking
Upcoming
1. Introduce components:
2. Implement gRPC Layer and Event Handling:
3. Create Initial Frontend with Hello World Window:
4. Future steps:
- Choose the most suitable plugin
- Make the Piece Manager the first component
2. Implement gRPC Layer and Event Handling:
- Set up gRPC server and define service protocols
- Make the gRPC server into the second component
- Implement event system for real-time updates
- Ensure efficient communication using the path identification system
3. Create Initial Frontend with Hello World Window:
- Set up basic frontend project structure
- Implement gRPC client in the frontend
- Create a simple UI that communicates with the backend
4. Future steps:
- Implement printing in the frontend client
- Develop more complex frontend/backend interactions for score manipulation
- Implement measure reformatting and reflow
- Iteratively add more notational elements and features
- Implement an advanced measure formatting algorithm
- Implement the plugin system
- Create open-source plugins for MIDI and MusicXML support
|
FrankenScore is a modern, open-source music notation software designed to handle complex musical scores with ease. It is designed to be a flexible and powerful music notation software tool providing professional, extremely high-quality results. The core functionality includes inputting music notation, formatting scores and their parts, and printing them. Additional features can be added as plugins, allowing for a modular and customizable user experience.
|