musa-dsl 0.14.31 → 0.14.32
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 38849caa61ab0d2381beb2b3dfc85686c9b7592b027dfd5a4f1f3aadae60ae7d
|
|
4
|
+
data.tar.gz: cdea129555d1bba7a5933cf71a522852463196a27fdca1ac39e10d8d0aca2dcb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9ae1524d885d66a1d6dc5e1cb4d88e17d069e38cd6a98c3ce8fe4131b2fb2e2df09490e3e2fbcb657a6e35a6ce27f363734e742393d10af5300502262b8d44a1
|
|
7
|
+
data.tar.gz: 7b8186dd41f7243f2b1b168929a845efa93a6028c13ff286628b505de7515cb91b4c4861c89c1a1759ab9fb3512bb042b0e20821ff300458e9fec671b9304975
|
|
@@ -333,9 +333,11 @@ class Musa::BaseSequencer
|
|
|
333
333
|
nil
|
|
334
334
|
end
|
|
335
335
|
|
|
336
|
-
def _move(every: nil, from:, to: nil, step: nil, duration: nil, till: nil, right_open: nil, on_stop: nil, after_bars: nil, after: nil, &block)
|
|
336
|
+
def _move(every: nil, from:, to: nil, step: nil, duration: nil, till: nil, function: nil, right_open: nil, on_stop: nil, after_bars: nil, after: nil, &block)
|
|
337
337
|
|
|
338
338
|
raise ArgumentError, "Cannot use duration: #{duration} and till: #{till} parameters at the same time. Use only one of them." if till && duration
|
|
339
|
+
raise ArgumentError, "Invalid use: 'function:' parameter is incompatible with 'step:' parameter" if function && step
|
|
340
|
+
raise ArgumentError, "Invalid use: 'function:' parameter needs 'to:' parameter not nil" if function && !to
|
|
339
341
|
|
|
340
342
|
# from, to, step, every
|
|
341
343
|
# from, to, step, (duration | till)
|
|
@@ -347,6 +349,10 @@ class Musa::BaseSequencer
|
|
|
347
349
|
step = -step if step && to && ((step > 0 && to < from) || (step < 0 && from < to))
|
|
348
350
|
right_open ||= false
|
|
349
351
|
|
|
352
|
+
function ||= proc { |ratio| ratio }
|
|
353
|
+
function_range = 1r
|
|
354
|
+
function_offset = 0r
|
|
355
|
+
|
|
350
356
|
start_position = position
|
|
351
357
|
|
|
352
358
|
if duration || till
|
|
@@ -358,12 +364,24 @@ class Musa::BaseSequencer
|
|
|
358
364
|
every = Rational(effective_duration, steps + right_open_offset)
|
|
359
365
|
|
|
360
366
|
elsif to && !step && !every
|
|
361
|
-
|
|
367
|
+
function_range = to - from
|
|
368
|
+
function_offset = from
|
|
369
|
+
|
|
370
|
+
from = 0r
|
|
371
|
+
to = 1r
|
|
372
|
+
|
|
373
|
+
step = 1r / (effective_duration * @ticks_per_bar - right_open_offset)
|
|
362
374
|
every = @tick_duration
|
|
363
375
|
|
|
364
376
|
elsif to && !step && every
|
|
377
|
+
function_range = to - from
|
|
378
|
+
function_offset = from
|
|
379
|
+
|
|
380
|
+
from = 0r
|
|
381
|
+
to = 1r
|
|
382
|
+
|
|
365
383
|
steps = effective_duration / every
|
|
366
|
-
step =
|
|
384
|
+
step = 1r / (steps - right_open_offset)
|
|
367
385
|
|
|
368
386
|
elsif !to && step && every
|
|
369
387
|
# ok
|
|
@@ -383,7 +401,6 @@ class Musa::BaseSequencer
|
|
|
383
401
|
end
|
|
384
402
|
end
|
|
385
403
|
|
|
386
|
-
|
|
387
404
|
binder = KeyParametersProcedureBinder.new(block)
|
|
388
405
|
|
|
389
406
|
every_control = EveryControl.new(@event_handlers.last, capture_stdout: true, duration: duration, till: till, on_stop: on_stop, after_bars: after_bars, after: after)
|
|
@@ -399,7 +416,7 @@ class Musa::BaseSequencer
|
|
|
399
416
|
|
|
400
417
|
parameters = binder.apply(control: control)
|
|
401
418
|
|
|
402
|
-
yield value, **parameters
|
|
419
|
+
yield function.call(value) * function_range + function_offset, **parameters
|
|
403
420
|
|
|
404
421
|
if to && (value >= to && step.positive? || value <= to && step.negative?)
|
|
405
422
|
control.stop
|
|
@@ -227,8 +227,8 @@ class Musa::BaseSequencer
|
|
|
227
227
|
control
|
|
228
228
|
end
|
|
229
229
|
|
|
230
|
-
def move(every: nil, from: nil, to: nil, step: nil, duration: nil, till: nil, right_open: nil, on_stop: nil, after_bars: nil, after: nil, &block)
|
|
231
|
-
control = _move every: every, from: from, to: to, step: step, duration: duration, till: till, right_open: right_open, on_stop: on_stop, after_bars: after_bars, after: after, &block
|
|
230
|
+
def move(every: nil, from: nil, to: nil, step: nil, duration: nil, till: nil, function: nil, right_open: nil, on_stop: nil, after_bars: nil, after: nil, &block)
|
|
231
|
+
control = _move every: every, from: from, to: to, step: step, duration: duration, till: till, function: function, right_open: right_open, on_stop: on_stop, after_bars: after_bars, after: after, &block
|
|
232
232
|
|
|
233
233
|
@moving << control
|
|
234
234
|
|
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.14.
|
|
4
|
-
s.date = '2019-10-
|
|
3
|
+
s.version = '0.14.32'
|
|
4
|
+
s.date = '2019-10-05'
|
|
5
5
|
s.summary = 'A simple Ruby DSL for making complex music'
|
|
6
6
|
s.description = 'Musa-DSL: A Ruby DSL for algorithmic music composition, device language neutral (MIDI, OSC, etc)'
|
|
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.14.
|
|
4
|
+
version: 0.14.32
|
|
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: 2019-10-
|
|
11
|
+
date: 2019-10-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: citrus
|