/daz-studio

The Daz Studio Project

Primary LanguageRustGNU General Public License v3.0GPL-3.0

Daz Studio

A sequencer built in RUST. Runs on macOS and Linux for the moment.

About

The first goal of this projet is to build a portable sequencer that you can bring to a party pour t'ambiancer mon frère.

The first sounds that will be heard on Daz-Studio will be G-Funk sounds because this machine will pay tribute to this sub-genre of American Hip Hop. Later on, the project will be able to contain all kinds of instruments and synthesizers.

Here are the types of intrumentals I'm looking to do personally with the Daz-Studio

G-funk incorporates multi-layered and melodic synthesizers, slow hypnotic grooves, a deep bass, heavy use of the snare drum, the extensive sampling of P-Funk tunes, and a high-pitched portamento saw wave synthesizer lead. It is typically set at a tempo of anywhere between 80 to 100 BPM. You can find more here https://en.wikipedia.org/wiki/G-funk.

Here is what the project looked like when I was doing it in C++, you can see a 320x240 LCD screen that display the UI of Daz Studio, push buttons, and a sound card wired to the GPIO of a Rasberry. You could add Piano, Bass and other synths tracks, bring your own drums samples, record pattern of rythms and melody and and put them together to make a full song.

Not all of the old Daz project is reimplemented for the moment. On desktop the project run with only keyboard controls because there will be only buttons to the final portable prototype (no mouse).

What to do (not exhaustive)

  • Oscillator based synth (leads, basses etc)

    • Oscillators
      • Sine
      • Saw
      • Square
      • Noise
      • ADSR
      • Fixed frequency
      • Coarse
      • Fine Tuning
      • Level
      • Phase offset
      • Feedback
    • Modulation
      • All Operator's algorithm
    • Filters
      • Biquad filters
    • Modulation
      • LFO's
      • All operator algorithms
    • ADSR
    • Polyphony
    • Monophony with glide <3
  • Sample based synth

    • Load sample from files
    • Play Samples
  • Effects

    • Reverb
    • Compression
    • Distortion
    • Delay
  • Tools

    • Tap tempo
    • Quantize
  • UI/Controls

    • Play/Stop sequencer
    • Toogle record mode
    • Change current instrument
    • Change current instrument preset
    • Change volume of instrument
    • Clear track
    • Change current instruments settings (oscillators wave form type, ADSR etc )
    • Undo last recording
    • Vu meter for each track
  • Read Midi (naïve implementation)

  • Visualization

How to run

macOS

brew install sld2
brew install sdl2_ttf
brew install portaudio

You can use this in your .bashrc to compile :

export LIBRARY_PATH="$LIBRARY_PATH:$(brew --prefix)/lib"

Then

cargo run

Copyright and license

Copyright (C) 2022 Emmanuel Patrois

Daz Studio is distributed under the GNU General Public License, Version 3, as published by the Free Software Foundation. See LICENSE for details.