class Object
Public Instance Methods
clear()
click to toggle source
Stop and delete all connections.
# File lib/patchmaster/irb/irb.rb, line 37 def clear patch.stop patch.connections = [] patch.start end
dsl()
click to toggle source
# File lib/patchmaster/irb/irb.rb, line 27 def dsl PM::IRB.instance.dsl end
method_missing(sym, *args)
click to toggle source
Calls superclass method
# File lib/patchmaster/irb/irb.rb, line 53 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
panic!()
click to toggle source
The “panic” command is handled by the PM::DSL
instance. This version (panic!
) tells that panic
to send all all-notes-off messages.
# File lib/patchmaster/irb/irb.rb, line 49 def panic! PM::PatchMaster.instance.panic(true) end
patch()
click to toggle source
Return the current (only) patch.
# File lib/patchmaster/irb/irb.rb, line 32 def patch dsl.instance_variable_get(:@patch) end
pm()
click to toggle source
pm_help()
click to toggle source
# File lib/patchmaster/irb/irb.rb, line 43 def pm_help puts IO.read(File.join(File.dirname(__FILE__), 'irb_help.txt')) end
return_status(opts={})
click to toggle source
# File lib/patchmaster/web/sinatra_app.rb, line 13 def return_status(opts={}) pm = pm() status = { :lists => pm.song_lists.map(&:name), :list => pm.song_list.name, :songs => pm.song_list.songs.map(&:name), :triggers => pm.inputs.collect do |instrument| instrument.triggers.collect { |trigger| ":#{instrument.sym} #{trigger.to_s}" } end.flatten } if pm.song status[:song] = { :name => pm.song.name, :patches => pm.song.patches.map(&:name) } if pm.patch status[:patch] = { :name => pm.patch.name, :connections => pm.patch.connections.collect do |conn| { :input => conn.input.name, :input_chan => conn.input_chan ? conn.input_chan + 1 : 'all', :output => conn.output.name, :output_chan => conn.output_chan + 1, :pc => conn.pc_prog.to_s, :zone => conn.zone ? [conn.note_num_to_name(conn.zone.begin), conn.note_num_to_name(conn.zone.end)] : '', :xpose => conn.xpose.to_s, :filter => conn.filter.to_s } end } end end json status.merge(opts) end