Class: Musicality::SuperCollider::Group

Inherits:
Node
  • Object
show all
Defined in:
lib/musicality/performance/supercollider/group.rb

Instance Attribute Summary

Attributes inherited from Node

#freed, #group, #id, #running, #server

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Node

#after, #before, #bundle_queue, #fill, #free, next_id, reset_id_counter, #send_msg, #set, #setn, #start, #stop, #trace

Constructor Details

#initialize(server, group, add_action, target_id, parallel) ⇒ Group

Returns a new instance of Group.

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
# File 'lib/musicality/performance/supercollider/group.rb', line 5

def initialize server, group, add_action, target_id, parallel
  raise ArgumentError unless ADD_ACTIONS.include?(add_action)
  super server, group

  send_msg(Message.new(parallel ? '/p_new' : '/g_new',
    id, add_action, target_id))
end

Class Method Details

.after(target, parallel = false) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
# File 'lib/musicality/performance/supercollider/group.rb', line 17

def self.after target, parallel = false
  raise ArgumentError unless target.is_a?(Node)
  new target.server, target.group, ADD_AFTER, target.id, parallel
end

.before(target, parallel = false) ⇒ Object

Raises:

  • (ArgumentError)


22
23
24
25
# File 'lib/musicality/performance/supercollider/group.rb', line 22

def self.before target, parallel = false
  raise ArgumentError unless target.is_a?(Node)
  new target.server, target.group, ADD_BEFORE, target.id, parallel
end

.default(server, parallel = false) ⇒ Object



13
14
15
# File 'lib/musicality/performance/supercollider/group.rb', line 13

def self.default server, parallel = false
  new(server, nil, ADD_TAIL, 0, parallel)
end

.head(target, parallel = false) ⇒ Object

Raises:

  • (ArgumentError)


27
28
29
30
# File 'lib/musicality/performance/supercollider/group.rb', line 27

def self.head target, parallel = false
  raise ArgumentError unless target.is_a?(Group)
  new target.server, target, ADD_HEAD, target.id, parallel
end

.replace(target, parallel = false) ⇒ Object

Raises:

  • (ArgumentError)


37
38
39
40
# File 'lib/musicality/performance/supercollider/group.rb', line 37

def self.replace target, parallel = false
  raise ArgumentError unless target.is_a?(Node)
  new target.server, target.group, ADD_REPLACE, target.id, parallel
end

.tail(target, parallel = false) ⇒ Object

Raises:

  • (ArgumentError)


32
33
34
35
# File 'lib/musicality/performance/supercollider/group.rb', line 32

def self.tail target, parallel = false
  raise ArgumentError unless target.is_a?(Group)
  new target.server, target, ADD_TAIL, target.id, parallel
end

Instance Method Details

#deep_freeObject



56
57
58
# File 'lib/musicality/performance/supercollider/group.rb', line 56

def deep_free
  send_msg(Message.new('/g_deepFree', id))
end

#dump_tree(flag) ⇒ Object



60
61
62
# File 'lib/musicality/performance/supercollider/group.rb', line 60

def dump_tree flag
  send_msg(Message.new('/g_dumpTree', id, flag ? 1 : 0))
end

#free_allObject



52
53
54
# File 'lib/musicality/performance/supercollider/group.rb', line 52

def free_all
  send_msg(Message.new('/g_freeAll', id))
end

#head(node) ⇒ Object

Raises:

  • (ArgumentError)


42
43
44
45
# File 'lib/musicality/performance/supercollider/group.rb', line 42

def head node
  raise ArgumentError unless node.is_a?(Node)
  send_msg(Message.new('/g_head', id, node.id))
end

#query_treeObject

Raises:

  • (NotImplementedError)


64
65
66
67
# File 'lib/musicality/performance/supercollider/group.rb', line 64

def query_tree
  raise NotImplementedError
  # TODO
end

#tail(node) ⇒ Object

Raises:

  • (ArgumentError)


47
48
49
50
# File 'lib/musicality/performance/supercollider/group.rb', line 47

def tail node
  raise ArgumentError unless node.is_a?(Node)
  send_msg(Message.new('/g_tail', id, node.id))
end