We now have a glide note property in dev for an upcoming release. See: #74
Another basic, obvious addition, and contrary to glide, a relatively low hanging fruit, would be an offset command. It should be optional, just like glide, and should allow to set a sample/playback starting offset for the note. Using a relative value makes sense in our context, so that:
o0.0 - starts from the beginning of the file/sound (same as not specifying it)
o0.5 - starts from the middle of the file/sound.
Required changes:
- add new optional
offset parameter to the rust Note representation
- add
offset functions to Lua API note and sequence function and table constructors
- add
o attribute to the Lua API note strings: note("c5 o0.1")
- add
o attribute in cycles
Examples:
-- a hi-hat alike pattern with randomized sample offset values
return pattern {
unit = "1/8",
pulse = {0, 1, {1, 1}, 0, 1, {1, 1, 1}},
event = function (context)
if context.pulse_time < 1 then -- in all all sub-divided pulses
return note("c5 v0.5"):offset(math.random() * 0.1)
else
return "c5"
end
end
}
Or in cycles:
-- Note ARP cycle with alternating offset values
cycle "[<c4 a3 d3>:o=<0.1 0.2>]*12"
It may be interesting to use other units than the relative ones, too. For example, c4 o1# to address cue/slice markers directly, just like in Renoise's S pattern command. This will not be very portable, though, and in Renoise, you can always map slices to notes as workaround.
Other units such as beats, seconds could be interesting as well: c4 o0.5b (0.5 beats), c4 o2s (2.0 seconds). This could be handled as an extra feature, after we got the basic relative value implementation ready. Those also won't be compatible with Renoise's pattern commands.
We now have a glide note property in dev for an upcoming release. See: #74
Another basic, obvious addition, and contrary to glide, a relatively low hanging fruit, would be an offset command. It should be optional, just like glide, and should allow to set a sample/playback starting offset for the note. Using a relative value makes sense in our context, so that:
o0.0- starts from the beginning of the file/sound (same as not specifying it)o0.5- starts from the middle of the file/sound.Required changes:
offsetparameter to the rustNoterepresentationoffsetfunctions to Lua APInoteandsequencefunction and table constructorsoattribute to the Lua API note strings:note("c5 o0.1")oattribute in cyclesExamples:
Or in cycles:
It may be interesting to use other units than the relative ones, too. For example,
c4 o1#to address cue/slice markers directly, just like in Renoise'sSpattern command. This will not be very portable, though, and in Renoise, you can always map slices to notes as workaround.Other units such as beats, seconds could be interesting as well:
c4 o0.5b(0.5 beats),c4 o2s(2.0 seconds). This could be handled as an extra feature, after we got the basic relative value implementation ready. Those also won't be compatible with Renoise's pattern commands.