tmhglnd / mercury

A minimal and human-readable language and environment for the live coding of algorithmic electronic music.

Home Page:http://www.timohoogland.com/mercury-livecoding

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Different time signature than default 4/4

GuillemGongora opened this issue · comments

A parameter could be set to define the amount of beats [time(1/4)] in a bar [time(1)], acting as a time signature. Default is 4/4 and there's no possibility to change this. In the situation of writing in any other time signature, the value of time(1) is always set beforehand.
Something like set timeSignature 3/4 could solve the issue so that time(1) equals time(3/4).
However, certain discrepancies arise if time() is interpreted as a fraction, because 3/4 ≠ 1. Something to think about...

commented

Yeah, currently the only way to do different timesignatures is to indeed either set time(3/4), or to use a ring that has a length of the multiple of your signature and don't reset the beat. For example this would be a 7/8 signature:

set tempo 131

ring lo  [1 0 0 0 1 0 0]
ring mid [0 1 0 1 0 1 0]
ring hi  [0 0 1 0 0 0 1]

new sample tabla_lo time(1/8) beat(lo)
new sample tabla_mid time(1/8) beat(mid)
new sample tabla_hi time(1/8) beat(hi)

It is indeed interesting to think about, i'm not yet sure if -when you would set a measure to 3/4- it would be clear that time(1) would then map to time(3/4), and this would then mean that time(1/2) => time(3/8), and time(3/4) => time(9/16). This might become very confusing, but on the other hand maybe very useful for advanced users.

An other idea that I had would be that currently the second argument in the beat() resets the counter after n-bars. This is currently 4/4, but maybe that could change, so if you would set your measer to be 7/8, and have a ring of 8 values, it would only play the first seven and then resetting the counter. Stuff to think about indeed!