
csong@49: \section{Introduction}
csong@49: 
csong@49: Syncopation is a fundamental feature of rhythm in music and a crucial aspect of musical character in many styles and cultures. Having comprehensive models to capture syncopation perception allows us to better understand the broad aspects of music perception. Over the last thirty years, several modelling approaches for syncopation have been developed and heavily used in studies in multiple disciplines~\cite{Fitch_Rosenfeld07, Smith_Honing07, Keller_Schubert11, Madison13, Witek14}. To date, formal investigations on the links between syncopation and  music perception subjects such as meter induction, emotion and groove, have largely relied on quantitative measures of syncopation [cites?]. However, until now there has not been a comprehensive reference implementation of the different algorithms available to facilitate quantifying syncopation.
csong@49: 
csong@49: In~\cite{Song14thesis}, Song provides a consolidated mathematical framework and in-depth review of seven widely used syncopation models including: Longuet-Higgins and Lee’s model (LHL)~\cite{LHL84}, Pressing’s model (PRS)~\cite{Pressing97,Pressing93}, Toussaint’s Metric Complexity model (TMC)~\cite{Toussaint02Metrical}, Sioros and Guedes’s model (SG)~\cite{Sioros11,Sioros12}, Keith’s model (KTH)~\cite{Keith91}, Toussaint's off-beatness measure (TOB)~\cite{Toussaint05Offbeatness} and G\’omez et al.’s Weighted Note-to- Beat Distance (WNBD)~\cite{Gomez05}.
csong@49: Based on this mathematical framework, the SynPy toolkit provides implementations of these syncopation models in the Python programming language. 
csong@49: 
csong@49: XXXXX Key features XXXXX. For ease of input, the SynPy toolkit is able to process standard MIDI files or text annotations of rhythm patterns in an intuitive, simple syntax. It is able to process multiple bars of music, reporting syncopation values bar by bar as well as various descriptive statistics across a whole piece. This toolkit also defines a common interface for syncopation models, which provides a simple plugin architecture for future extensibility.  
csong@49: 
csong@49: In section 2 we briefly review the seven syncopation models and introduce the mathematical representations of a few important rhythmic concepts used in the implementations. In section 3 we describe the framework for SynPy which is the main contribution of this paper. We outline the functional requirements, define the input source and describe the usage.




