#music #synth

synth-music

A framework-like crate to compose and synthetisize music

3 unstable releases

0.2.0 Nov 16, 2024
0.1.2 Nov 5, 2024
0.1.1 Oct 22, 2024
0.1.0 Oct 20, 2024

#243 in Audio

Download history 83/week @ 2024-10-14 208/week @ 2024-10-21 8/week @ 2024-10-28 123/week @ 2024-11-04 94/week @ 2024-11-11 26/week @ 2024-11-18 12/week @ 2024-12-02

138 downloads per month

MIT license

125KB
2.5K SLoC

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.

Dependencies

~3–10MB
~94K SLoC