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