Giter VIP home page Giter VIP logo

be-ing / augmented-audio Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yamadapc/augmented-audio

0.0 1.0 0.0 89.1 MB

Rust - Augmented Audio Libraries

License: MIT License

Rust 73.93% Shell 0.17% HTML 0.41% CSS 0.11% TypeScript 1.76% JavaScript 0.02% Objective-C 0.35% C 0.22% Swift 13.73% Metal 0.01% Ruby 0.19% Dart 8.29% Makefile 0.10% Kotlin 0.01% Dockerfile 0.01% C++ 0.34% Objective-C++ 0.26% Python 0.08%

augmented-audio's Introduction

Augmented Audio Libraries

Default Linux Web-based builds Coverage Status

Experiments trying to use Rust for audio programming.

Consider anything in this repository a draft.

Goals

  • Goal 1: Learn & have fun
    • This is goal #1 and it's very important to keep it in mind if you end-up depending on one of the crates in this repository
  • Goal 2: Build tools for aiding development
  • Goal 3: Experiment with Audio software GUI in Rust

License

Most of this repository is published under the MIT LICENSE.

Some directories which contain full applications are licensed under the AGPLv3 license. Check the LICENSE and README.md files.

Binary downloads

Blog posts

Documentation


Screenshots

Sequencer screenshot

Metronome screenshot Test plugin host screenshot Looper screenshot

Web GUI

See docs/misc/WEB_GUI.md.

Rust libraries and tooling

Workspace & Building

The project is set-up with a cargo workspace. Running cargo commands at the root directory should compile all crates sharing caches.

To build the whole project run:

cargo build

To run tests:

cargo test

Build outputs should be on target/debug or target/release.

Building on linux

Since this is bringing in all the possible rust crates, you'll need to install quite a few dependencies.

See .github/workflows/default.yml for a list of what's needed on Ubuntu.

Linting

cargo clippy

Benchmarking

Benchmarks using criterion will be slowly added. In order to run benchmarks use:

cargo bench

Profiling on macOS

https://crates.io/crates/cargo-instruments

cd ./crates/oscillator
cargo instruments -t time --bench sine_oscillator_benchmark -- --bench

Generating flamegraphs from benchmarks

NOTE I couldn't get this to work on macOS

Flamegraphs can be generated using cargo-flamegraph:

cargo install flamegraph

The tool can then be used to run a criterion benchmark and generate a flamegraph:

cargo flamegraph --bench sine_oscillator_benchmark -- --bench

Snapshot testing audio processors

See docs/monorepo-tooling/SNAPSHOT_TESTING.md.

augmented-audio's People

Contributors

dependabot[bot] avatar yamadapc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.