musa-dsl 0.23.19 → 0.23.20

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69d8893b895c8b836a51be4f7fc7b51fbab501383c6e3780d0af52e82f1bb324
4
- data.tar.gz: 017f7f8a8fb2cd5b3104d6c1f5c5acd535ea3db4c4285d15f1c81fe792cf123c
3
+ metadata.gz: c9f9288750f73ad1ddb927ad4b59537c61b1913f7194b6716a61b4e7977605f5
4
+ data.tar.gz: 44c7984d242e8d3521c5005d4beb0357cb63a469c2dfa054662539af2e23797b
5
5
  SHA512:
6
- metadata.gz: 681651cd39523a69d2cbe3fe7271b79ab6f8c0d616cabd8f7d9ef4e0af8f8bbaaed39d41977c35900a748057af8a274b5672762340b98537b9f1d2cba7c5b401
7
- data.tar.gz: 29cc0e37bf4f3513d78e32776c9df7a6a622c913a965f7bef8944bd0961ef7f8e23bfc348dbbe9eb7d18a211e224f6f27acc95210340bbad05aacde0d34f5404
6
+ metadata.gz: ca86c780eed4d3b11506b8682c9b128a315384353c816cc290823bdf7a9b404af8d99f33f557a263d29b2f2dd8e52f5a4757ad13064cc7ea6a87bb145b1b5775
7
+ data.tar.gz: 7fe5ce3b6ffa253a5eb4bd7d8d8cfac31129a80fe9da684b5de3e0f393c26ad8e9930f27108696ed10d21ce769dd16bd222265eb8810e2277353b1d08d26bd6c
@@ -4,7 +4,7 @@ module Musa::Sequencer
4
4
  class BaseSequencer
5
5
  using Musa::Extension::InspectNice
6
6
 
7
- private def _play_timed(timed_serie, control, &block)
7
+ private def _play_timed(timed_serie, start_position, control, &block)
8
8
 
9
9
  if first_value_sample = timed_serie.peek_next_value
10
10
  debug "_play_timed: first_value_sample #{first_value_sample}"
@@ -25,7 +25,7 @@ module Musa::Sequencer
25
25
  binder = Musa::Extension::SmartProcBinder::SmartProcBinder.new(block)
26
26
 
27
27
  _play_timed_step(hash_mode, component_ids, extra_attribute_names, timed_serie,
28
- position, last_positions, binder, control)
28
+ start_position, last_positions, binder, control)
29
29
  end
30
30
 
31
31
  private def _play_timed_step(hash_mode,
@@ -21,9 +21,9 @@ module Musa
21
21
  logger: nil,
22
22
  do_log: nil, do_error_log: nil, log_position_format: nil)
23
23
 
24
- raise ArgumentError,
25
- "'beats_per_bar' and 'ticks_per_beat' parameters should be both nil or both have values" \
26
- unless beats_per_bar && ticks_per_beat || beats_per_bar.nil? && ticks_per_beat.nil?
24
+ unless beats_per_bar && ticks_per_beat || beats_per_bar.nil? && ticks_per_beat.nil?
25
+ raise ArgumentError, "'beats_per_bar' and 'ticks_per_beat' parameters should be both nil or both have values"
26
+ end
27
27
 
28
28
  if logger
29
29
  @logger = logger
@@ -39,9 +39,9 @@ module Musa
39
39
  @beats_per_bar = Rational(beats_per_bar)
40
40
  @ticks_per_beat = Rational(ticks_per_beat)
41
41
 
42
- self.singleton_class.include TickBasedTiming
42
+ singleton_class.include TickBasedTiming
43
43
  else
44
- self.singleton_class.include TicklessBasedTiming
44
+ singleton_class.include TicklessBasedTiming
45
45
  end
46
46
 
47
47
  _init_timing
@@ -215,10 +215,13 @@ module Musa
215
215
  end
216
216
 
217
217
  def play_timed(timed_serie,
218
+ at: nil,
218
219
  on_stop: nil,
219
220
  after_bars: nil, after: nil,
220
221
  &block)
221
222
 
223
+ at ||= position
224
+
222
225
  control = PlayTimedControl.new(@event_handlers.last,
223
226
  on_stop: on_stop, after_bars: after_bars, after: after)
224
227
 
@@ -230,7 +233,7 @@ module Musa
230
233
 
231
234
  @event_handlers.push control
232
235
 
233
- _play_timed(timed_serie.instance, control, &block)
236
+ _play_timed(timed_serie.instance, at, control, &block)
234
237
 
235
238
  @event_handlers.pop
236
239
 
@@ -28,9 +28,9 @@ module Musa
28
28
  if @do_log && to_sleep.negative? & @logger
29
29
  tick_errors = -to_sleep / @period
30
30
  if tick_errors >= @delayed_ticks_error
31
- @logger.error "Timer delayed #{tick_errors.round(2)} ticks (#{-to_sleep}s)"
31
+ @logger.error "Timer delayed #{tick_errors.round(2)} ticks (#{-to_sleep.round(3)}s)"
32
32
  else
33
- @logger.warn "Timer delayed #{tick_errors.round(2)} ticks (#{-to_sleep}s)"
33
+ @logger.warn "Timer delayed #{tick_errors.round(2)} ticks (#{-to_sleep.round(3)}s)"
34
34
  end
35
35
  end
36
36
 
data/lib/musa-dsl.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Musa
2
- VERSION = '0.23.19'
2
+ VERSION = '0.23.20'
3
3
  end
4
4
 
5
5
  require_relative 'musa-dsl/core-ext'
data/musa-dsl.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'musa-dsl'
3
- s.version = '0.23.19'
4
- s.date = '2021-09-28'
3
+ s.version = '0.23.20'
4
+ s.date = '2021-09-29'
5
5
  s.summary = 'A simple Ruby DSL for making complex music'
6
6
  s.description = 'Musa-DSL: A Ruby framework and DSL for algorithmic sound and musical thinking and composition'
7
7
  s.authors = ['Javier Sánchez Yeste']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: musa-dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.19
4
+ version: 0.23.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javier Sánchez Yeste
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-28 00:00:00.000000000 Z
11
+ date: 2021-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: citrus