musa-dsl 0.23.17 → 0.23.18

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: ef23a7cf410efe4d9fa21687e85678c5f2bbf4deca1255e188d199246d221e62
4
- data.tar.gz: 5a97ebc91408d7d29a09ec441cecba974c8b994c83a982610288b52897cb1327
3
+ metadata.gz: 7b3da8a6794922e430f83799de2679402d3bfefda3208fa1788f0beedb1ae55e
4
+ data.tar.gz: 8583d5e0e518ff221cdf8b3f7cd6bc96ffe5a2c8b6c86ae53eb7d339b2a0eabd
5
5
  SHA512:
6
- metadata.gz: 5ef6043e7356890a1806b73c2884f92cfbc1ad8c09f232f8c60254179737d85047bca63bfa1bd3a206a743aa11125d1ae61b3de3be3a88aac7b4fba1beade4b5
7
- data.tar.gz: e3047601fd766e64103bbaa00c3cf14d28f509682b25fb1e6db2dac6878155827e6fb03bd3a324f11e877ee2765c071a51be43210557df678c2fbab92f652916
6
+ metadata.gz: 06642f37659b697dca34396cca40aaa0ee30788cb2905e29ae9e2be16d3df570e1195996d50b81d10506059b37ef319f0c7c0aec8ccf789a35dc5d4734ba19ce
7
+ data.tar.gz: bd2c24988b5f1ef6e11d3b426de27a8ed46a9ca14f08f4d7eb1fbcff95e6854f839bb369e716c3ed05b393852571440bffbb223e2d3333a82900b62ffd0ce0db
@@ -3,7 +3,7 @@ require_relative 'clock'
3
3
  module Musa
4
4
  module Clock
5
5
  class TimerClock < Clock
6
- def initialize(period = nil, ticks_per_beat: nil, bpm: nil, correction: nil, logger: nil)
6
+ def initialize(period = nil, ticks_per_beat: nil, bpm: nil, correction: nil, logger: nil, do_log: nil)
7
7
  do_log ||= false
8
8
 
9
9
  super()
@@ -21,6 +21,7 @@ module Musa
21
21
  @paused = false
22
22
 
23
23
  @logger = logger
24
+ @do_log = do_log
24
25
  end
25
26
 
26
27
  attr_reader :period, :ticks_per_beat, :bpm
@@ -55,7 +56,7 @@ module Musa
55
56
  @run = true
56
57
 
57
58
  while @run
58
- @timer = Timer.new(@period, correction: @correction, stop: true, logger: @logger)
59
+ @timer = Timer.new(@period, correction: @correction, stop: true, logger: @logger, do_log: @do_log)
59
60
 
60
61
  @timer.run do
61
62
  yield if block_given?
@@ -3,11 +3,12 @@ module Musa
3
3
  class Timer
4
4
  attr_accessor :period
5
5
 
6
- def initialize(period_in_seconds, correction: nil, stop: nil, logger: nil)
6
+ def initialize(period_in_seconds, correction: nil, stop: nil, logger: nil, do_log: nil)
7
7
  @period = period_in_seconds.rationalize
8
8
  @correction = (correction || 0r).rationalize
9
9
  @stop = stop || false
10
10
  @logger = logger
11
+ @do_log = do_log
11
12
  end
12
13
 
13
14
  def run
@@ -22,7 +23,9 @@ module Musa
22
23
  @next_moment += @period
23
24
  to_sleep = (@next_moment + @correction) - Process.clock_gettime(Process::CLOCK_MONOTONIC)
24
25
 
25
- @logger&.error "Timer spected to sleep a negative time #{to_sleep}" if to_sleep.negative?
26
+ if @do_log && to_sleep.negative?
27
+ @logger&.error "Timer delayed #{-to_sleep}s (near #{(-to_sleep / @period).round} ticks)"
28
+ end
26
29
 
27
30
  sleep to_sleep if to_sleep > 0.0
28
31
  end
data/lib/musa-dsl.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Musa
2
- VERSION = '0.23.17'
2
+ VERSION = '0.23.18'
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.17'
4
- s.date = '2021-09-27'
3
+ s.version = '0.23.18'
4
+ s.date = '2021-09-28'
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.17
4
+ version: 0.23.18
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-27 00:00:00.000000000 Z
11
+ date: 2021-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: citrus