Skip to content

antistereov/rust-audio-exploration

Repository files navigation

RustAudioExploration

This project is a try to get into digital sound synthesis, learn Rust and frontend web development using Angular.

In my real life, I'm actually a musician and I have always enjoyed electronic music and digital sound synthesis quite a lot - from a user perspective. I knew that at some point, I want to get into the fundamentals of digital sound synthesis - and even sound synthesis in general but I had no idea of how and when. At the sime, I've wanted to learn Rust but never came up with a project idea.

Fortunately, after watching this excellent video by Sebastian Lauge (I highly recommend watching all of his videos if you're into coding!) it became quite obvious to me how I can achieve all of my goals at the same time. I will build my own synthesizer using Rust from scratch. I am fully aware that there are libraries for both C++ and Rust that help with that. I, for myself, want to do it the hard way to learn as much as I can during this process.

Another thing I've always wanted to do was frontend web development (since other projects forced me to do it). So I was blown away after I came across tauri. This way I can build my frontend using Angular (this is used by the frontend guys at the company that I work at, so I thought they can help me here), my backend using Rust and get into sound synthesis while working on this project.

Please don't take this project too seriously. It's just a fun side project for me. I'm happy for any tips, tricks and comments on my work!

If you want to check out my music:

Table of Contents

Tech Stack

Development

I use VS Code. You can find a guide on how to set up debugging for tauri right here.

VS Code Extensions

Backend

  • Rust
    • cpal: Low-level library for audio input and output in pure Rust.

Frontend

  • Rust
    • tauri (v2.0.0-rc): Frontend framework that compiles to HTML, JS, CSS.
  • TypeScript
    • Angular (v18): Single-page web application framework.
    • PrimeNG: Angular component library.
    • webaudio-controls: Javascript library to display the GUI components used in Web Music Applications.
  • Assets
    • WebKnobMan: Gallery and editor for audio assets.

Resources

Of course, I didn't came up with all of this myself. I got this idea after watching this excellent video by Sebastian Lauge. I highly recommend watching all of his videos if you're into coding.

Rust

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published