class Musicality::SuperCollider::SynthDef
Attributes
body[R]
credit[R]
name[R]
params[R]
source[R]
Public Class Methods
new(name: "", params: {})
click to toggle source
# File lib/musicality/performance/supercollider/synthdef.rb, line 8 def initialize name: "", params: {}, body: "", credit: "", source: "" raise ArgumentError if name.empty? raise ArgumentError if body.empty? @name, @params, @body = name, params, body @credit, @source = credit, source end
Public Instance Methods
settings(args = {})
click to toggle source
# File lib/musicality/performance/supercollider/synthdef.rb, line 44 def settings args = {} Settings.new(self, args) end
to_sclang()
click to toggle source
# File lib/musicality/performance/supercollider/synthdef.rb, line 16 def to_sclang params_str = "|" + @params.map {|k,v| v.nil? ? k.to_s : "#{k} = #{v}" }.join(", ") + "|" output = "SynthDef(\"#{@name}\", {" + params_str + "\n" + @body + "#{"\n" unless @body[-1] == "\n"}\}" unless (@credit.empty? && @source.empty?) metadata_str = ", metadata: (\n" unless @credit.empty? metadata_str += " credit: \"#{@credit}\",\n" end unless @source.empty? metadata_str += " source: \"#{@source}\"\n" end metadata_str += ")\n" output += metadata_str end output += ").writeDefFile;" end