synth-music

Crates.iosynth-music
lib.rssynth-music
version0.1.2
sourcesrc
created_at2024-10-20 14:49:50.558793
updated_at2024-11-05 20:28:20.03663
descriptionA framework-like crate to compose and synthetisize music
homepage
repositoryhttps://github.com/CinTheDev/synth-music
max_upload_size
id1416255
size188,968
Kevin Müller (CinTheDev)

documentation

README

Synthetic Music Composer

A Rust library to synthesize sounds and to create music from scratch. There is no GUI, melodies are written out programmatically. For documentation and examples, check the crate documentation. The crate provides tools for composing music, synthetisizing sounds, and exporting the results into a WAV file.

For getting started, check the documentation front page and the "Hello" example.

Components of the library

The crate consists of three main parts:

  • Composing music
  • Defining Instruments to synthetisize sounds
  • Exporting music

Workflow

The library has been designed to be able to work without external tools. Right now, the support for external tools is very limited, but will be improved in the future.

The upside is that there's no required IDE, all of the project info is stored within the source code itself. A second advantage is that this is usually more versatile than a GUI, especially with sound synthesis.

The downside is that there's no GUI, which can e.g. display tracks in an intuitive way. As of now, music must be composed using this library, it's impossible to import a MIDI file from another program (Though, it's planned to change in the future).

TODO files

There are a few TODO files in this repository. These contain ideas for future (or the currently being developed) versions for improvement. These can serve as something like a roadmap or feature requests, but there's no 100% gurantee that these will be implemented (e.g. if a better alternative has popped up).

Once these TODOs or tasks are finished, they will be deleted.

I'm glad to accept help if you want to contribute to the project.

Commit count: 903

cargo fmt