MiniMusicSoftware
πΌ Mini computer music software
MiniMusicSoftware is an open-source mini computer music software package designed to facilitate the understanding of both software development best practices and data lifecycle in digital music processing.
π― Purpose
- πΌ Music Generation: Convert a JSON-formatted score into an audible musical piece.
- π Professional Development Practices: Encourage consulting documentation, using code analyzers, testing code, and writing documentation.
- π Data Lifecycle Understanding: Explore how data is created, manipulated, copied, accessed, and destroyed in a program.
π Features
π·οΈ Feature | π Description |
---|---|
πΆ Input Format | JSON-based musical score |
π΅ Output Format | Generated music from JSON |
πΉ MIDI Support | Partial (final phase not fully completed) |
π Code Analysis | Emphasizes best coding practices |
π οΈ Testing | Promotes unit testing for reliability |
π Documentation | Encourages well-documented code for maintainability |
π Project Structure
MiniMusicSoftware/
βββ Cargo.lock
βββ Cargo.toml
βββ README.md
βββ structure.txt
βββ assets/ # Documentation images
β βββ img/
β βββ main.png
βββ file/ # Musical data files
β βββ json/
β β βββ Child_In_Time.json
β β βββ instruments.json
β β βββ Isnt_she_lovely.json
β βββ mid/
β β βββ Isnt_she_lovely.mid
β βββ wav/
β βββ audio.wav
β βββ Child_In_Time.wav
β βββ organ.wav
β βββ save_wav_test.wav
β βββ sound_track_test.wav
β βββ test.wav
βββ src/ # Core source code
β βββ instrument.rs
β βββ lib.rs
β βββ main.rs
β βββ note.rs
β βββ sound_track.rs
βββ tests/ # Integration tests
β βββ integration.rs
βββ target/ # Build output (generated by Cargo)