
csong@49: \section{Introduction}
csong@56: \label{sec:introduction}
csong@49: 
christopher@62: 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 broader 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: 
christopher@62: In~\cite{Song15thesis}, 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: 
christopher@62: novel features - time sig, tempo, real music file input, polyrhythm
csong@49: 
christopher@62: 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 a simple, intuitive syntax. Multiple bars of music can be processed, reporting syncopation values bar by bar as well as various descriptive statistics across a whole piece. The toolkit defines a common interface for syncopation models, providing a simple plugin architecture for future extensibility.  
christopher@62: 
christopher@62: In section~\ref{sec:background} we introduce mathematical representations of a few key rhythmic concepts that form the basis of the toolkit then briefly review seven syncopation models that have been implemented. In section~\ref{sec:framework} we outline the functional requirements and  architecture of SynPy, describing input sources, options and usage.




