Frausto

Gem Version CI License: MIT Ruby

A Ruby toolkit for Faust DSP: generate Faust code from Ruby, or convert Faust to Ruby.

Installation

gem install frausto

Or add to your Gemfile:

gem 'frausto'

Tools

  • ruby2faust - Ruby DSL that generates Faust DSP code
  • faust2ruby - Convert Faust DSP code to Ruby DSL

Quick Examples

require 'ruby2faust'

code = Ruby2Faust.generate do
  freq = 60.midi >> smoo
  -6.db * ((osc(freq) + 0.1 * noise) >> lp(2000))
end

puts code
# => import("stdfaust.lib");
#    process = os.osc(ba.midikey2hz(60) : si.smoo) + (no.noise : *(0.1)) : fi.lowpass(1, 2000) : *(ba.db2linear(-6));

# Use pretty: true for readable output
puts Ruby2Faust.generate(pretty: true) { -6.db * ((osc(60.midi >> smoo) + 0.1 * noise) >> lp(2000)) }
# => import("stdfaust.lib");
#    process =
#      os.osc(
#        ba.midikey2hz(60)
#        : si.smoo
#      ) + (no.noise : *(0.1))
#      : fi.lowpass(1, 2000)
#      : *(ba.db2linear(-6));
require 'faust2ruby'

ruby_code = Faust2Ruby.to_ruby('process = os.osc(440) : *(0.5);')
# => "0.5 * osc(440)"

License

MIT