musa-dsl 0.22.5 → 0.23.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -1
- data/lib/musa-dsl.rb +14 -8
- data/lib/musa-dsl/core-ext/deep-copy.rb +12 -1
- data/lib/musa-dsl/core-ext/inspect-nice.rb +1 -2
- data/lib/musa-dsl/core-ext/smart-proc-binder.rb +13 -11
- data/lib/musa-dsl/datasets/p.rb +38 -15
- data/lib/musa-dsl/datasets/score/to-mxml/process-pdv.rb +14 -12
- data/lib/musa-dsl/datasets/score/to-mxml/process-ps.rb +32 -6
- data/lib/musa-dsl/datasets/score/to-mxml/to-mxml.rb +24 -10
- data/lib/musa-dsl/generative/backboner.rb +6 -11
- data/lib/musa-dsl/generative/generative-grammar.rb +1 -3
- data/lib/musa-dsl/generative/markov.rb +10 -6
- data/lib/musa-dsl/logger/logger.rb +6 -1
- data/lib/musa-dsl/midi/midi-voices.rb +8 -7
- data/lib/musa-dsl/music/scales.rb +1 -1
- data/lib/musa-dsl/neumalang/neumalang.rb +1 -1
- data/lib/musa-dsl/neumas/array-to-neumas.rb +1 -1
- data/lib/musa-dsl/sequencer/base-sequencer-implementation-play-helper.rb +2 -2
- data/lib/musa-dsl/sequencer/base-sequencer-implementation-play-timed.rb +2 -1
- data/lib/musa-dsl/sequencer/base-sequencer-implementation.rb +2 -0
- data/lib/musa-dsl/sequencer/base-sequencer-tick-based.rb +4 -2
- data/lib/musa-dsl/sequencer/sequencer-dsl.rb +6 -6
- data/lib/musa-dsl/series/base-series.rb +293 -144
- data/lib/musa-dsl/series/buffer-serie.rb +236 -0
- data/lib/musa-dsl/series/hash-or-array-serie-splitter.rb +145 -115
- data/lib/musa-dsl/series/main-serie-constructors.rb +249 -156
- data/lib/musa-dsl/series/main-serie-operations.rb +331 -318
- data/lib/musa-dsl/series/proxy-serie.rb +25 -41
- data/lib/musa-dsl/series/quantizer-serie.rb +38 -38
- data/lib/musa-dsl/series/queue-serie.rb +39 -43
- data/lib/musa-dsl/series/series-composer.rb +316 -0
- data/lib/musa-dsl/series/series.rb +5 -1
- data/lib/musa-dsl/series/timed-serie.rb +119 -130
- data/musa-dsl.gemspec +13 -3
- metadata +9 -9
- data/.ruby-version +0 -1
- data/lib/musa-dsl/series/holder-serie.rb +0 -87
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ruby-2.7.2
|
@@ -1,87 +0,0 @@
|
|
1
|
-
module Musa
|
2
|
-
module Series
|
3
|
-
# TODO: adapt to series prototyping
|
4
|
-
|
5
|
-
def HOLDER(serie = nil)
|
6
|
-
Holder.new(serie)
|
7
|
-
end
|
8
|
-
|
9
|
-
class Holder
|
10
|
-
include Serie
|
11
|
-
|
12
|
-
attr_reader :hold, :next
|
13
|
-
|
14
|
-
def initialize(serie)
|
15
|
-
@hold = serie.instance if serie
|
16
|
-
@next = []
|
17
|
-
|
18
|
-
mark_as_instance!
|
19
|
-
end
|
20
|
-
|
21
|
-
def hold=(serie)
|
22
|
-
@hold = serie.instance
|
23
|
-
end
|
24
|
-
|
25
|
-
def <<(serie)
|
26
|
-
if @hold.nil?
|
27
|
-
@hold = serie.instance
|
28
|
-
else
|
29
|
-
@next << serie.instance
|
30
|
-
end
|
31
|
-
|
32
|
-
self
|
33
|
-
end
|
34
|
-
|
35
|
-
def _prototype!
|
36
|
-
raise PrototypingSerieError, 'Cannot get prototype of a proxy serie'
|
37
|
-
end
|
38
|
-
|
39
|
-
def restart
|
40
|
-
if @next.empty? && @hold
|
41
|
-
@hold.restart
|
42
|
-
else
|
43
|
-
@hold = @next.shift
|
44
|
-
end
|
45
|
-
|
46
|
-
self
|
47
|
-
end
|
48
|
-
|
49
|
-
def current_value
|
50
|
-
@hold.current_value if @hold
|
51
|
-
end
|
52
|
-
|
53
|
-
def next_value
|
54
|
-
@hold.next_value if @hold
|
55
|
-
end
|
56
|
-
|
57
|
-
def peek_next_value
|
58
|
-
@hold.peek_next_value if @hold
|
59
|
-
end
|
60
|
-
|
61
|
-
def infinite?
|
62
|
-
@hold.infinite? if @hold
|
63
|
-
end
|
64
|
-
|
65
|
-
private
|
66
|
-
|
67
|
-
def method_missing(method_name, *args, **key_args, &block)
|
68
|
-
if @hold && @hold.respond_to?(method_name)
|
69
|
-
@hold.send method_name, *args, **key_args, &block
|
70
|
-
else
|
71
|
-
super
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def respond_to_missing?(method_name, include_private)
|
76
|
-
@hold && @hold.respond_to?(method_name, include_private) || super
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
module SerieOperations
|
82
|
-
# TODO add test case
|
83
|
-
def hold
|
84
|
-
Series::Holder.new self
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|