Sha256: 93dd53505614c4840ba92e2a374a30f69a29bd47ff46a95cdec1e5657cfcb0ac
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
require 'patchmaster' require 'irb' require 'tempfile' $dsl = nil # For bin/patchmaster. Does nothing def run end def dsl unless $dsl $dsl = PM::DSL.new $dsl.song("IRB Song") $dsl.patch("IRB Patch") end $dsl end def patch dsl.instance_variable_get(:@patch) end def clear patch.stop patch.connections = [] patch.start end def pm_help puts <<EOS input num, :sym[, name] define an input instrument output num, :sym[, name] define an output instrument conn :in_sym, [chan|nil], :out_sym, [chan|nil] create a connection xpose num set transpose for conn zone zone_def set zone for conn clear remove all connections panic panic panic! panic plus note-offs EOS end def panic! PM::PatchMaster.instance.panic(true) end def method_missing(sym, *args) pm = PM::PatchMaster.instance if dsl.respond_to?(sym) patch.stop dsl.send(sym, *args) if sym == :input || sym == :inp pm.inputs.last.start end patch.start elsif pm.respond_to?(sym) pm.send(sym, *args) else super end end def start_patchmaster_irb f = Tempfile.new('patchmaster') f.write <<EOS IRB.conf[:PROMPT][:CUSTOM] = { :PROMPT_I=>"PatchMaster:%03n:%i> ", :PROMPT_N=>"PatchMaster:%03n:%i> ", :PROMPT_S=>"PatchMaster:%03n:%i%l ", :PROMPT_C=>"PatchMaster:%03n:%i* ", :RETURN=>"=> %s\n" } IRB.conf[:PROMPT_MODE] = :CUSTOM puts 'PatchMaster loaded' puts 'Type "pm_help" for help' EOS f.close ENV['IRBRC'] = f.path IRB.start f.unlink end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
patchmaster-1.0.0 | lib/patchmaster/irb.rb |