You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ability to specify notes which last longer than a quarter note. #75
The string-based API for specifying rhythm and timing of notes is awesome, but the maximum unit of time being a quarter-note makes complex rhythms difficult to construct. I suggest adding additional characters and structures for note lengths greater than 1/4 notes.
From discussing this with Walmik, the [ ] notation subdivides
quarter-notes. So 'x' and '[xxx]' have the same duration, but the second
consists of triplets.
On Tue, Oct 2, 2018, 11:24 PM crazy4groovy ***@***.***> wrote:
I'm no expert! But I just noticed in the tidal.js example this
pattern: '[xxx]'
and [] makes it sound faster, maybe 1/8 notes? The docs don't mention
this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#75 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AC7ifzj3DGkxHQxXpnB81Gbc3-e-Fn_Aks5uhDwVgaJpZM4W79c4>
.
The functionality to extend note lengths is a must have for the browser clip method of scribbletune. It already exists in the node module which exports MIDI files as outlined here https://scribbletune.com/documentation/core/clip Basically adding underscores to a x will increase its length. So if x is a quarter notes, a single underscore like this, x_ makes it as long as 2 quarter notes and 2 underscores x__ makes it as long as 3 quarter notes. One can even set the default duration of each x thus making it possible to extend those notes exponentially.
However, for the browser we need to add this. I m open to PRs for this.. if no PR comes in I ll add it myself once I get some time.
This begs the question (for me at least): what about dotted notes (beats that last 1.5 times the specified note length)? Would it be something like this? [x__] aka one note lasting the length of three eighth notes?
I've been messing around with some ways to make the clips editable in-browser, but understanding the notational restrictions will make it easier to design something that works!
Hey HI @spencerudnick For those you can just mix and match.
so something like x[xx] is a quarter note followed by 2 eighth notes. If you dont want play one of the eighth notes then simply x[-x] You can keep subdividing further if you like.. for instance something like this x[x[xx]]. Here we have one quarter note followed by another quarter note which is chopped up into a eighth notes followed by 2 sixteenth notes.
@walmik I believe you're still referring to methods of subdividing quarter notes. Check out this video for an example of what I'm referring to.
Dotted notes instruct the instrument / musician to play a note which lasts for 1.5 times the length of the note specified. So a dotted quarter note lasts the length of a quarter note plus an eighth note.
Specifying these types of notes is pretty imperative for creating a visual clip editor, otherwise users will be limited to a constrained visual grid.
This also begs the question of how to specify notes spanning beats (tied notes), so a quarter-note could begin one eighth-note length from the beginning of the measure.
A hacky, unwieldy way that can be explored at least as a POC in the node module version (not the browser js) is to use the HDR speed and construct 2 clips and concat them before exporting. Basically you'd need to add a prop here for the required HDR speed (comments here have the description of what is HDR) https://github.com/scribbletune/scribbletune/blob/master/src/clip.js#L30
If that works out then we can put a new character in the pattern lingo for . Currently pattern only accepts
x
-
_
[
]
Some thought must be invested while developing this as it needs to also subsequently support the same in the browser along with Tone.js (which is a primary dependency for running Scribbletune in the browser)
All in all i believe this a great feature to have.
Activity
crazy4groovy commentedon Oct 3, 2018
I'm no expert! But I just noticed in the tidal.js example this
pattern: '[xxx]'and
[]makes it sound faster, maybe 1/8 notes? The docs don't mention this.rain-sk commentedon Oct 3, 2018
walmik commentedon Oct 6, 2018
Thank you for the comments.
The functionality to extend note lengths is a must have for the browser clip method of scribbletune. It already exists in the node module which exports MIDI files as outlined here https://scribbletune.com/documentation/core/clip Basically adding underscores to a
xwill increase its length. So ifxis a quarter notes, a single underscore like this,x_makes it as long as 2 quarter notes and 2 underscoresx__makes it as long as 3 quarter notes. One can even set the default duration of eachxthus making it possible to extend those notes exponentially.However, for the browser we need to add this. I m open to PRs for this.. if no PR comes in I ll add it myself once I get some time.
rain-sk commentedon Oct 12, 2018
Thanks for clarifying!
This begs the question (for me at least): what about dotted notes (beats that last 1.5 times the specified note length)? Would it be something like this? [x__] aka one note lasting the length of three eighth notes?
I've been messing around with some ways to make the clips editable in-browser, but understanding the notational restrictions will make it easier to design something that works!
walmik commentedon Oct 12, 2018
Hey HI @spencerudnick For those you can just mix and match.
so something like
x[xx]is a quarter note followed by 2 eighth notes. If you dont want play one of the eighth notes then simplyx[-x]You can keep subdividing further if you like.. for instance something like thisx[x[xx]]. Here we have one quarter note followed by another quarter note which is chopped up into a eighth notes followed by 2 sixteenth notes.rain-sk commentedon Oct 12, 2018
@walmik I believe you're still referring to methods of subdividing quarter notes. Check out this video for an example of what I'm referring to.
Dotted notes instruct the instrument / musician to play a note which lasts for 1.5 times the length of the note specified. So a dotted quarter note lasts the length of a quarter note plus an eighth note.
Specifying these types of notes is pretty imperative for creating a visual clip editor, otherwise users will be limited to a constrained visual grid.
This also begs the question of how to specify notes spanning beats (tied notes), so a quarter-note could begin one eighth-note length from the beginning of the measure.
rain-sk commentedon Oct 12, 2018
Based on your syntax, I could see something like: 'x[_-]'
Thoughts?
walmik commentedon Oct 13, 2018
I think this is definitely a new feature.
A hacky, unwieldy way that can be explored at least as a POC in the node module version (not the browser js) is to use the HDR speed and construct 2 clips and concat them before exporting. Basically you'd need to add a prop here for the required HDR speed (comments here have the description of what is HDR) https://github.com/scribbletune/scribbletune/blob/master/src/clip.js#L30
If that works out then we can put a new character in the pattern lingo for
.Currently pattern only acceptsx-_[]Some thought must be invested while developing this as it needs to also subsequently support the same in the browser along with Tone.js (which is a primary dependency for running Scribbletune in the browser)
All in all i believe this a great feature to have.