Mercurial > hg > syncopation-dataset
diff Syncopation models/TOB.py @ 1:b2da092dc2e0
The consolidated syncopation software. Have finished individual model and basic functions. Need to revise the coding in main.py, and add rhythm-input interface.
author | Chunyang Song <csong@eecs.qmul.ac.uk> |
---|---|
date | Sun, 05 Oct 2014 21:52:41 +0100 |
parents | |
children | 031e2ccb1fb6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Syncopation models/TOB.py Sun Oct 05 21:52:41 2014 +0100 @@ -0,0 +1,24 @@ +''' +Author: Chunyang Song +Institution: Centre for Digital Music, Queen Mary University of London + +''' + +from basic_functions import ceiling, find_divisor, get_min_timeSpan + +# This function calculates the syncopation value for TOB model. +def get_syncopation(seq): + syncopation = 0 + bseq_ts = get_min_timeSpan(ceiling(seq)) # converting to binary and mininum time-span sequence + divisors = find_divisor(len(bseq_ts)) # find all the divisors other than 1 and the length of this sequence + del divisors[0] + del divisors[-1] + + offbeatness = [1]*len(bseq_ts) + for index in range(len(bseq_ts)): + for d in divisors: + if index % d == 0: + offbeatness[index] = 0 + break + syncopation += bseq_ts[index]*offbeatness[index] + return syncopation