musa-dsl 0.22.5 → 0.23.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|