Skip to content

Software synthesizer programmed in Rust. All sprite assets are made by me using Aseprite.

Notifications You must be signed in to change notification settings

hvalfangst/Rust-Synthesizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust Synthesizer with GUI

Software synthesizer programmed in Rust using crates rodio for audio playback, minifb for handling of user input and image for sprite rendering. All assets are made by me using Aseprite.

Requirements

Cargo dependencies

Running program: Cargo

The shell script 'up' builds and runs our application by executing the following:

1. cargo build
2. cargo run

Running program: x86 executable for Windows

One may also run an executable directly. This has been compiled for target 'x86_64-pc-windows-msvc' utilizing 'cargo build --release'

./synthesizer.exe

Screenshot

screenshot

Synthesizer Key Controls

Musical Notes:

Q: Play musical note C in octave 4 (261.63 Hz)
2: Play musical note C# in octave 4 (277.18 Hz)
W: Play musical note D in octave 4 (293.66 Hz)
3: Play musical note D# in octave 4 (311.13 Hz)
E: Play musical note E in octave 4 (329.63 Hz)
R: Play musical note F in octave 4 (349.23 Hz)
5: Play musical note F# in octave 4 (369.99 Hz)
T: Play musical note G in octave 4 (392.00 Hz)
6: Play musical note G# in octave 4 (415.30 Hz)
Y: Play musical note A in octave 4 (440.00 Hz)
7: Play musical note A# in octave 4 (466.16 Hz)
U: Play musical note B in octave 4 (493.88 Hz)

Octave Control:

F1: Decrease the octave (0 is minimum)
F2: Increase the octave (6 is maximum)

Filter Control:

F:  Turn low pass filter on/off     
F3: Decrease the filter cutoff (0.15 is minimum)
F4: Increase the filter cutoff (0.99 is maximum)

Waveform Control:

S: Toggle waveform between sine and square

About

Software synthesizer programmed in Rust. All sprite assets are made by me using Aseprite.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published