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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/lib/musa-dsl.rb +14 -8
  4. data/lib/musa-dsl/core-ext/deep-copy.rb +12 -1
  5. data/lib/musa-dsl/core-ext/inspect-nice.rb +1 -2
  6. data/lib/musa-dsl/core-ext/smart-proc-binder.rb +13 -11
  7. data/lib/musa-dsl/datasets/p.rb +38 -15
  8. data/lib/musa-dsl/datasets/score/to-mxml/process-pdv.rb +14 -12
  9. data/lib/musa-dsl/datasets/score/to-mxml/process-ps.rb +32 -6
  10. data/lib/musa-dsl/datasets/score/to-mxml/to-mxml.rb +24 -10
  11. data/lib/musa-dsl/generative/backboner.rb +6 -11
  12. data/lib/musa-dsl/generative/generative-grammar.rb +1 -3
  13. data/lib/musa-dsl/generative/markov.rb +10 -6
  14. data/lib/musa-dsl/logger/logger.rb +6 -1
  15. data/lib/musa-dsl/midi/midi-voices.rb +8 -7
  16. data/lib/musa-dsl/music/scales.rb +1 -1
  17. data/lib/musa-dsl/neumalang/neumalang.rb +1 -1
  18. data/lib/musa-dsl/neumas/array-to-neumas.rb +1 -1
  19. data/lib/musa-dsl/sequencer/base-sequencer-implementation-play-helper.rb +2 -2
  20. data/lib/musa-dsl/sequencer/base-sequencer-implementation-play-timed.rb +2 -1
  21. data/lib/musa-dsl/sequencer/base-sequencer-implementation.rb +2 -0
  22. data/lib/musa-dsl/sequencer/base-sequencer-tick-based.rb +4 -2
  23. data/lib/musa-dsl/sequencer/sequencer-dsl.rb +6 -6
  24. data/lib/musa-dsl/series/base-series.rb +293 -144
  25. data/lib/musa-dsl/series/buffer-serie.rb +236 -0
  26. data/lib/musa-dsl/series/hash-or-array-serie-splitter.rb +145 -115
  27. data/lib/musa-dsl/series/main-serie-constructors.rb +249 -156
  28. data/lib/musa-dsl/series/main-serie-operations.rb +331 -318
  29. data/lib/musa-dsl/series/proxy-serie.rb +25 -41
  30. data/lib/musa-dsl/series/quantizer-serie.rb +38 -38
  31. data/lib/musa-dsl/series/queue-serie.rb +39 -43
  32. data/lib/musa-dsl/series/series-composer.rb +316 -0
  33. data/lib/musa-dsl/series/series.rb +5 -1
  34. data/lib/musa-dsl/series/timed-serie.rb +119 -130
  35. data/musa-dsl.gemspec +13 -3
  36. metadata +9 -9
  37. data/.ruby-version +0 -1
  38. 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