# HG changeset patch # User christopherh # Date 1428875254 -3600 # Node ID e19c519e7e3f5d4c5dd6ee8a32c1a4c3d2a1d540 # Parent d9ac6e0d1daff098541eaf5f0ce7b2a94b9efd50 adding the basic LaTeX files for the paper diff -r d9ac6e0d1daf -r e19c519e7e3f SMC2015latex/IEEEtran.bst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SMC2015latex/IEEEtran.bst Sun Apr 12 22:47:34 2015 +0100 @@ -0,0 +1,2417 @@ +%% +%% IEEEtran.bst +%% BibTeX Bibliography Style file for IEEE Journals and Conferences (unsorted) +%% Version 1.12 (2007/01/11) +%% +%% Copyright (c) 2003-2007 Michael Shell +%% +%% Original starting code base and algorithms obtained from the output of +%% Patrick W. Daly's makebst package as well as from prior versions of +%% IEEE BibTeX styles: +%% +%% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988) +%% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993) +%% +%% Support sites: +%% http://www.michaelshell.org/tex/ieeetran/ +%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/ +%% and/or +%% http://www.ieee.org/ +%% +%% For use with BibTeX version 0.99a or later +%% +%% This is a numerical citation style. +%% +%%************************************************************************* +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%% +%% This work is distributed under the LaTeX Project Public License (LPPL) +%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used, +%% distributed and modified. A copy of the LPPL, version 1.3, is included +%% in the base LaTeX documentation of all distributions of LaTeX released +%% 2003/12/01 or later. +%% Retain all contribution notices and credits. +%% ** Modified files should be clearly indicated as such, including ** +%% ** renaming them and changing author support contact information. ** +%% +%% File list of work: IEEEabrv.bib, IEEEfull.bib, IEEEexample.bib, +%% IEEEtran.bst, IEEEtranS.bst, IEEEtranSA.bst, +%% IEEEtranN.bst, IEEEtranSN.bst, IEEEtran_bst_HOWTO.pdf +%%************************************************************************* +% +% +% Changelog: +% +% 1.00 (2002/08/13) Initial release +% +% 1.10 (2002/09/27) +% 1. Corrected minor bug for improperly formed warning message when a +% book was not given a title. Thanks to Ming Kin Lai for reporting this. +% 2. Added support for CTLname_format_string and CTLname_latex_cmd fields +% in the BST control entry type. +% +% 1.11 (2003/04/02) +% 1. Fixed bug with URLs containing underscores when using url.sty. Thanks +% to Ming Kin Lai for reporting this. +% +% 1.12 (2007/01/11) +% 1. Fixed bug with unwanted comma before "et al." when an entry contained +% more than two author names. Thanks to Pallav Gupta for reporting this. +% 2. Fixed bug with anomalous closing quote in tech reports that have a +% type, but without a number or address. Thanks to Mehrdad Mirreza for +% reporting this. +% 3. Use braces in \providecommand in begin.bib to better support +% latex2html. TeX style length assignments OK with recent versions +% of latex2html - 1.71 (2002/2/1) or later is strongly recommended. +% Use of the language field still causes trouble with latex2html. +% Thanks to Federico Beffa for reporting this. +% 4. Added IEEEtran.bst ID and version comment string to .bbl output. +% 5. Provide a \BIBdecl hook that allows the user to execute commands +% just prior to the first entry. +% 6. Use default urlstyle (is using url.sty) of "same" rather than rm to +% better work with a wider variety of bibliography styles. +% 7. Changed month abbreviations from Sept., July and June to Sep., Jul., +% and Jun., respectively, as IEEE now does. Thanks to Moritz Borgmann +% for reporting this. +% 8. Control entry types should not be considered when calculating longest +% label width. +% 9. Added alias www for electronic/online. +% 10. Added CTLname_url_prefix control entry type. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These are the defaults for the user adjustable controls. The values used +% here can be overridden by the user via IEEEtranBSTCTL entry type. + +% NOTE: The recommended LaTeX command to invoke a control entry type is: +% +%\makeatletter +%\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}} +%\def\@bstctlcite[#1]#2{\@bsphack +% \@for\@citeb:=#2\do{% +% \edef\@citeb{\expandafter\@firstofone\@citeb}% +% \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}% +% \@esphack} +%\makeatother +% +% It is called at the start of the document, before the first \cite, like: +% \bstctlcite{IEEEexample:BSTcontrol} +% +% IEEEtran.cls V1.6 and later does provide this command. + + + +% #0 turns off the display of the number for articles. +% #1 enables +FUNCTION {default.is.use.number.for.article} { #1 } + + +% #0 turns off the display of the paper and type fields in @inproceedings. +% #1 enables +FUNCTION {default.is.use.paper} { #1 } + + +% #0 turns off the forced use of "et al." +% #1 enables +FUNCTION {default.is.forced.et.al} { #0 } + +% The maximum number of names that can be present beyond which an "et al." +% usage is forced. Be sure that num.names.shown.with.forced.et.al (below) +% is not greater than this value! +% Note: There are many instances of references in IEEE journals which have +% a very large number of authors as well as instances in which "et al." is +% used profusely. +FUNCTION {default.max.num.names.before.forced.et.al} { #10 } + +% The number of names that will be shown with a forced "et al.". +% Must be less than or equal to max.num.names.before.forced.et.al +FUNCTION {default.num.names.shown.with.forced.et.al} { #1 } + + +% #0 turns off the alternate interword spacing for entries with URLs. +% #1 enables +FUNCTION {default.is.use.alt.interword.spacing} { #1 } + +% If alternate interword spacing for entries with URLs is enabled, this is +% the interword spacing stretch factor that will be used. For example, the +% default "4" here means that the interword spacing in entries with URLs can +% stretch to four times normal. Does not have to be an integer. Note that +% the value specified here can be overridden by the user in their LaTeX +% code via a command such as: +% "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to +% that via the IEEEtranBSTCTL entry type. +FUNCTION {default.ALTinterwordstretchfactor} { "4" } + + +% #0 turns off the "dashification" of repeated (i.e., identical to those +% of the previous entry) names. IEEE normally does this. +% #1 enables +FUNCTION {default.is.dash.repeated.names} { #1 } + + +% The default name format control string. +FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" } + + +% The default LaTeX font command for the names. +FUNCTION {default.name.latex.cmd}{ "" } + + +% The default URL prefix. +FUNCTION {default.name.url.prefix}{ "[Online]. Available:" } + + +% Other controls that cannot be accessed via IEEEtranBSTCTL entry type. + +% #0 turns off the terminal startup banner/completed message so as to +% operate more quietly. +% #1 enables +FUNCTION {is.print.banners.to.terminal} { #1 } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FILE VERSION AND BANNER %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION{bst.file.version} { "1.12" } +FUNCTION{bst.file.date} { "2007/01/11" } +FUNCTION{bst.file.website} { "http://www.michaelshell.org/tex/ieeetran/bibtex/" } + +FUNCTION {banner.message} +{ is.print.banners.to.terminal + { "-- IEEEtran.bst version" " " * bst.file.version * + " (" * bst.file.date * ") " * "by Michael Shell." * + top$ + "-- " bst.file.website * + top$ + "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." * + top$ + } + { skip$ } + if$ +} + +FUNCTION {completed.message} +{ is.print.banners.to.terminal + { "" + top$ + "Done." + top$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING CONSTANTS %% +%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {bbl.and}{ "and" } +FUNCTION {bbl.etal}{ "et~al." } +FUNCTION {bbl.editors}{ "eds." } +FUNCTION {bbl.editor}{ "ed." } +FUNCTION {bbl.edition}{ "ed." } +FUNCTION {bbl.volume}{ "vol." } +FUNCTION {bbl.of}{ "of" } +FUNCTION {bbl.number}{ "no." } +FUNCTION {bbl.in}{ "in" } +FUNCTION {bbl.pages}{ "pp." } +FUNCTION {bbl.page}{ "p." } +FUNCTION {bbl.chapter}{ "ch." } +FUNCTION {bbl.paper}{ "paper" } +FUNCTION {bbl.part}{ "pt." } +FUNCTION {bbl.patent}{ "Patent" } +FUNCTION {bbl.patentUS}{ "U.S." } +FUNCTION {bbl.revision}{ "Rev." } +FUNCTION {bbl.series}{ "ser." } +FUNCTION {bbl.standard}{ "Std." } +FUNCTION {bbl.techrep}{ "Tech. Rep." } +FUNCTION {bbl.mthesis}{ "Master's thesis" } +FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" } +FUNCTION {bbl.st}{ "st" } +FUNCTION {bbl.nd}{ "nd" } +FUNCTION {bbl.rd}{ "rd" } +FUNCTION {bbl.th}{ "th" } + + +% This is the LaTeX spacer that is used when a larger than normal space +% is called for (such as just before the address:publisher). +FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " } + +% The LaTeX code for dashes that are used to represent repeated names. +% Note: Some older IEEE journals used something like +% "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along +% the baseline. However, IEEE now uses a thinner, above baseline, +% six dash long sequence. +FUNCTION {repeated.name.dashes} { "------" } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PREDEFINED STRING MACROS %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"Jun."} +MACRO {jul} {"Jul."} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sep."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + + + +%%%%%%%%%%%%%%%%%% +%% ENTRY FIELDS %% +%%%%%%%%%%%%%%%%%% + +ENTRY + { address + assignee + author + booktitle + chapter + day + dayfiled + edition + editor + howpublished + institution + intype + journal + key + language + month + monthfiled + nationality + note + number + organization + pages + paper + publisher + school + series + revision + title + type + url + volume + year + yearfiled + CTLuse_article_number + CTLuse_paper + CTLuse_forced_etal + CTLmax_names_forced_etal + CTLnames_show_etal + CTLuse_alt_spacing + CTLalt_stretch_factor + CTLdash_repeated_names + CTLname_format_string + CTLname_latex_cmd + CTLname_url_prefix + } + {} + { label } + + + + +%%%%%%%%%%%%%%%%%%%%%%% +%% INTEGER VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { prev.status.punct this.status.punct punct.std + punct.no punct.comma punct.period + prev.status.space this.status.space space.std + space.no space.normal space.large + prev.status.quote this.status.quote quote.std + quote.no quote.close + prev.status.nline this.status.nline nline.std + nline.no nline.newblock + status.cap cap.std + cap.no cap.yes} + +INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames } + +INTEGERS { is.use.number.for.article + is.use.paper + is.forced.et.al + max.num.names.before.forced.et.al + num.names.shown.with.forced.et.al + is.use.alt.interword.spacing + is.dash.repeated.names} + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { bibinfo + longest.label + oldname + s + t + ALTinterwordstretchfactor + name.format.string + name.latex.cmd + name.url.prefix} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOW LEVEL FUNCTIONS %% +%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.controls} +{ default.is.use.number.for.article 'is.use.number.for.article := + default.is.use.paper 'is.use.paper := + default.is.forced.et.al 'is.forced.et.al := + default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al := + default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al := + default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing := + default.is.dash.repeated.names 'is.dash.repeated.names := + default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor := + default.name.format.string 'name.format.string := + default.name.latex.cmd 'name.latex.cmd := + default.name.url.prefix 'name.url.prefix := +} + + +% This IEEEtran.bst features a very powerful and flexible mechanism for +% controlling the capitalization, punctuation, spacing, quotation, and +% newlines of the formatted entry fields. (Note: IEEEtran.bst does not need +% or use the newline/newblock feature, but it has been implemented for +% possible future use.) The output states of IEEEtran.bst consist of +% multiple independent attributes and, as such, can be thought of as being +% vectors, rather than the simple scalar values ("before.all", +% "mid.sentence", etc.) used in most other .bst files. +% +% The more flexible and complex design used here was motivated in part by +% IEEE's rather unusual bibliography style. For example, IEEE ends the +% previous field item with a period and large space prior to the publisher +% address; the @electronic entry types use periods as inter-item punctuation +% rather than the commas used by the other entry types; and URLs are never +% followed by periods even though they are the last item in the entry. +% Although it is possible to accommodate these features with the conventional +% output state system, the seemingly endless exceptions make for convoluted, +% unreliable and difficult to maintain code. +% +% IEEEtran.bst's output state system can be easily understood via a simple +% illustration of two most recently formatted entry fields (on the stack): +% +% CURRENT_ITEM +% "PREVIOUS_ITEM +% +% which, in this example, is to eventually appear in the bibliography as: +% +% "PREVIOUS_ITEM," CURRENT_ITEM +% +% It is the job of the output routine to take the previous item off of the +% stack (while leaving the current item at the top of the stack), apply its +% trailing punctuation (including closing quote marks) and spacing, and then +% to write the result to BibTeX's output buffer: +% +% "PREVIOUS_ITEM," +% +% Punctuation (and spacing) between items is often determined by both of the +% items rather than just the first one. The presence of quotation marks +% further complicates the situation because, in standard English, trailing +% punctuation marks are supposed to be contained within the quotes. +% +% IEEEtran.bst maintains two output state (aka "status") vectors which +% correspond to the previous and current (aka "this") items. Each vector +% consists of several independent attributes which track punctuation, +% spacing, quotation, and newlines. Capitalization status is handled by a +% separate scalar because the format routines, not the output routine, +% handle capitalization and, therefore, there is no need to maintain the +% capitalization attribute for both the "previous" and "this" items. +% +% When a format routine adds a new item, it copies the current output status +% vector to the previous output status vector and (usually) resets the +% current (this) output status vector to a "standard status" vector. Using a +% "standard status" vector in this way allows us to redefine what we mean by +% "standard status" at the start of each entry handler and reuse the same +% format routines under the various inter-item separation schemes. For +% example, the standard status vector for the @book entry type may use +% commas for item separators, while the @electronic type may use periods, +% yet both entry handlers exploit many of the exact same format routines. +% +% Because format routines have write access to the output status vector of +% the previous item, they can override the punctuation choices of the +% previous format routine! Therefore, it becomes trivial to implement rules +% such as "Always use a period and a large space before the publisher." By +% pushing the generation of the closing quote mark to the output routine, we +% avoid all the problems caused by having to close a quote before having all +% the information required to determine what the punctuation should be. +% +% The IEEEtran.bst output state system can easily be expanded if needed. +% For instance, it is easy to add a "space.tie" attribute value if the +% bibliography rules mandate that two items have to be joined with an +% unbreakable space. + +FUNCTION {initialize.status.constants} +{ #0 'punct.no := + #1 'punct.comma := + #2 'punct.period := + #0 'space.no := + #1 'space.normal := + #2 'space.large := + #0 'quote.no := + #1 'quote.close := + #0 'cap.no := + #1 'cap.yes := + #0 'nline.no := + #1 'nline.newblock := +} + +FUNCTION {std.status.using.comma} +{ punct.comma 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.no 'cap.std := +} + +FUNCTION {std.status.using.period} +{ punct.period 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.yes 'cap.std := +} + +FUNCTION {initialize.prev.this.status} +{ punct.no 'prev.status.punct := + space.no 'prev.status.space := + quote.no 'prev.status.quote := + nline.no 'prev.status.nline := + punct.no 'this.status.punct := + space.no 'this.status.space := + quote.no 'this.status.quote := + nline.no 'this.status.nline := + cap.yes 'status.cap := +} + +FUNCTION {this.status.std} +{ punct.std 'this.status.punct := + space.std 'this.status.space := + quote.std 'this.status.quote := + nline.std 'this.status.nline := +} + +FUNCTION {cap.status.std}{ cap.std 'status.cap := } + +FUNCTION {this.to.prev.status} +{ this.status.punct 'prev.status.punct := + this.status.space 'prev.status.space := + this.status.quote 'prev.status.quote := + this.status.nline 'prev.status.nline := +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ { skip$ } + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + { skip$ } + if$ +} + + +% convert the strings "yes" or "no" to #1 or #0 respectively +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + + +% pushes true if the single char string on the stack is in the +% range of "0" to "9" +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +% multiplies the integer on the stack by a factor of 10 +FUNCTION {bump.int.mag} +{ #0 'multiresult := + { duplicate$ #0 > } + { #1 - + multiresult #10 + + 'multiresult := + } + while$ +pop$ +multiresult +} + +% converts a single character string on the stack to an integer +FUNCTION {char.to.integer} +{ duplicate$ + is.num + { chr.to.int$ "0" chr.to.int$ - } + {"noninteger character " quote$ * swap$ * quote$ * + " in integer field of " * cite$ * warning$ + #0 + } + if$ +} + +% converts a string on the stack to an integer +FUNCTION {string.to.integer} +{ duplicate$ text.length$ 'namesleft := + #1 'nameptr := + #0 'numnames := + { nameptr namesleft > not } + { duplicate$ nameptr #1 substring$ + char.to.integer numnames bump.int.mag + + 'numnames := + nameptr #1 + + 'nameptr := + } + while$ +pop$ +numnames +} + + + + +% The output routines write out the *next* to the top (previous) item on the +% stack, adding punctuation and such as needed. Since IEEEtran.bst maintains +% the output status for the top two items on the stack, these output +% routines have to consider the previous output status (which corresponds to +% the item that is being output). Full independent control of punctuation, +% closing quote marks, spacing, and newblock is provided. +% +% "output.nonnull" does not check for the presence of a previous empty +% item. +% +% "output" does check for the presence of a previous empty item and will +% remove an empty item rather than outputing it. +% +% "output.warn" is like "output", but will issue a warning if it detects +% an empty item. + +FUNCTION {output.nonnull} +{ swap$ + prev.status.punct punct.comma = + { "," * } + { skip$ } + if$ + prev.status.punct punct.period = + { add.period$ } + { skip$ } + if$ + prev.status.quote quote.close = + { "''" * } + { skip$ } + if$ + prev.status.space space.normal = + { " " * } + { skip$ } + if$ + prev.status.space space.large = + { large.space * } + { skip$ } + if$ + write$ + prev.status.nline nline.newblock = + { newline$ "\newblock " write$ } + { skip$ } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.warn} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% "fin.entry" is the output routine that handles the last item of the entry +% (which will be on the top of the stack when "fin.entry" is called). + +FUNCTION {fin.entry} +{ this.status.punct punct.no = + { skip$ } + { add.period$ } + if$ + this.status.quote quote.close = + { "''" * } + { skip$ } + if$ +write$ +newline$ +} + + +FUNCTION {is.last.char.not.punct} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {is.multiple.pages} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {capitalize}{ "u" change.case$ "t" change.case$ } + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {do.name.latex.cmd} +{ name.latex.cmd + empty$ + { skip$ } + { name.latex.cmd "{" * swap$ * "}" * } + if$ +} + +% IEEEtran.bst uses its own \BIBforeignlanguage command which directly +% invokes the TeX hyphenation patterns without the need of the Babel +% package. Babel does a lot more than switch hyphenation patterns and +% its loading can cause unintended effects in many class files (such as +% IEEEtran.cls). +FUNCTION {select.language} +{ duplicate$ empty$ 'pop$ + { language empty$ 'skip$ + { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {space.word}{ " " swap$ * " " * } + + +% Field Conditioners, Converters, Checkers and External Interfaces + +FUNCTION {empty.field.to.null.string} +{ duplicate$ empty$ + { pop$ "" } + { skip$ } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {empty.entry.warn} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ url empty$ + and and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +% The bibinfo system provides a way for the electronic parsing/acquisition +% of a bibliography's contents as is done by ReVTeX. For example, a field +% could be entered into the bibliography as: +% \bibinfo{volume}{2} +% Only the "2" would show up in the document, but the LaTeX \bibinfo command +% could do additional things with the information. IEEEtran.bst does provide +% a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is +% currently not used as the bogus bibinfo functions defined here output the +% entry values directly without the \bibinfo wrapper. The bibinfo functions +% themselves (and the calls to them) are retained for possible future use. +% +% bibinfo.check avoids acting on missing fields while bibinfo.warn will +% issue a warning message if a missing field is detected. Prior to calling +% the bibinfo functions, the user should push the field value and then its +% name string, in that order. + +FUNCTION {bibinfo.check} +{ swap$ duplicate$ missing$ + { pop$ pop$ "" } + { duplicate$ empty$ + { swap$ pop$ } + { swap$ pop$ } + if$ + } + if$ +} + +FUNCTION {bibinfo.warn} +{ swap$ duplicate$ missing$ + { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } + { duplicate$ empty$ + { swap$ "empty " swap$ * " in " * cite$ * warning$ } + { swap$ pop$ } + if$ + } + if$ +} + + +% IEEE separates large numbers with more than 4 digits into groups of +% three. IEEE uses a small space to separate these number groups. +% Typical applications include patent and page numbers. + +% number of consecutive digits required to trigger the group separation. +FUNCTION {large.number.trigger}{ #5 } + +% For numbers longer than the trigger, this is the blocksize of the groups. +% The blocksize must be less than the trigger threshold, and 2 * blocksize +% must be greater than the trigger threshold (can't do more than one +% separation on the initial trigger). +FUNCTION {large.number.blocksize}{ #3 } + +% What is actually inserted between the number groups. +FUNCTION {large.number.separator}{ "\," } + +% So as to save on integer variables by reusing existing ones, numnames +% holds the current number of consecutive digits read and nameptr holds +% the number that will trigger an inserted space. +FUNCTION {large.number.separate} +{ 't := + "" + #0 'numnames := + large.number.trigger 'nameptr := + { t empty$ not } + { t #-1 #1 substring$ is.num + { numnames #1 + 'numnames := } + { #0 'numnames := + large.number.trigger 'nameptr := + } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames nameptr = + { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$ + nameptr large.number.blocksize - #1 + global.max$ substring$ + large.number.separator swap$ * * + nameptr large.number.blocksize - 'numnames := + large.number.blocksize #1 + 'nameptr := + } + { skip$ } + if$ + } + while$ +} + +% Converts all single dashes "-" to double dashes "--". +FUNCTION {n.dashify} +{ large.number.separate + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + + +% This function detects entries with names that are identical to that of +% the previous entry and replaces the repeated names with dashes (if the +% "is.dash.repeated.names" user control is nonzero). +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { is.dash.repeated.names + { repeated.name.dashes } + { s 'oldname := s } + if$ + } + { s 'oldname := s } + if$ + } + if$ +} + +% Converts the number string on the top of the stack to +% "numerical ordinal form" (e.g., "7" to "7th"). There is +% no artificial limit to the upper bound of the numbers as the +% least significant digit always determines the ordinal form. +FUNCTION {num.to.ordinal} +{ duplicate$ #-1 #1 substring$ "1" = + { bbl.st * } + { duplicate$ #-1 #1 substring$ "2" = + { bbl.nd * } + { duplicate$ #-1 #1 substring$ "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ +} + +% If the string on the top of the stack begins with a number, +% (e.g., 11th) then replace the string with the leading number +% it contains. Otherwise retain the string as-is. s holds the +% extracted number, t holds the part of the string that remains +% to be scanned. +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +% Converts the word number string on the top of the stack to +% Arabic string form. Will be successful up to "tenth". +FUNCTION {word.to.num} +{ duplicate$ "l" change.case$ 's := + s "first" = + { pop$ "1" } + { skip$ } + if$ + s "second" = + { pop$ "2" } + { skip$ } + if$ + s "third" = + { pop$ "3" } + { skip$ } + if$ + s "fourth" = + { pop$ "4" } + { skip$ } + if$ + s "fifth" = + { pop$ "5" } + { skip$ } + if$ + s "sixth" = + { pop$ "6" } + { skip$ } + if$ + s "seventh" = + { pop$ "7" } + { skip$ } + if$ + s "eighth" = + { pop$ "8" } + { skip$ } + if$ + s "ninth" = + { pop$ "9" } + { skip$ } + if$ + s "tenth" = + { pop$ "10" } + { skip$ } + if$ +} + + +% Converts the string on the top of the stack to numerical +% ordinal (e.g., "11th") form. +FUNCTION {convert.edition} +{ duplicate$ empty$ 'skip$ + { duplicate$ #1 #1 substring$ is.num + { extract.num + num.to.ordinal + } + { word.to.num + duplicate$ #1 #1 substring$ is.num + { num.to.ordinal } + { "edition ordinal word " quote$ * edition * quote$ * + " may be too high (or improper) for conversion" * " in " * cite$ * warning$ + } + if$ + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LATEX BIBLIOGRAPHY CODE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {start.entry} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + initialize.prev.this.status +} + +% Here we write out all the LaTeX code that we will need. The most involved +% code sequences are those that control the alternate interword spacing and +% foreign language hyphenation patterns. The heavy use of \providecommand +% gives users a way to override the defaults. Special thanks to Javier Bezos, +% Johannes Braams, Robin Fairbairns, Heiko Oberdiek, Donald Arseneau and all +% the other gurus on comp.text.tex for their help and advice on the topic of +% \selectlanguage, Babel and BibTeX. +FUNCTION {begin.bib} +{ "% Generated by IEEEtran.bst, version: " bst.file.version * " (" * bst.file.date * ")" * + write$ newline$ + preamble$ empty$ 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\csname url@samestyle\endcsname" + write$ newline$ + "\providecommand{\newblock}{\relax}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}" + write$ newline$ + "\providecommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + "\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus " + write$ newline$ + "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}" + write$ newline$ + "\providecommand{\BIBforeignlanguage}[2]{{%" + write$ newline$ + "\expandafter\ifx\csname l@#1\endcsname\relax" + write$ newline$ + "\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%" + write$ newline$ + "\typeout{** loaded for the language `#1'. Using the pattern for}%" + write$ newline$ + "\typeout{** the default language instead.}%" + write$ newline$ + "\else" + write$ newline$ + "\language=\csname l@#1\endcsname" + write$ newline$ + "\fi" + write$ newline$ + "#2}}" + write$ newline$ + "\providecommand{\BIBdecl}{\relax}" + write$ newline$ + "\BIBdecl" + write$ newline$ +} + +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ } + +FUNCTION {if.url.alt.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + +FUNCTION {if.url.std.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%% +%% LONGEST LABEL PASS %% +%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ type$ "ieeetranbstctl" = + { skip$ } + { number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + { skip$ } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%% +%% FORMAT HANDLERS %% +%%%%%%%%%%%%%%%%%%%%% + +%% Lower Level Formats (used by higher level formats) + +FUNCTION {format.address.org.or.pub.date} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + { skip$ } + if$ + address empty$ t empty$ and + year empty$ and month empty$ and + { skip$ } + { this.to.prev.status + this.status.std + cap.status.std + address "address" bibinfo.check * + t empty$ + { skip$ } + { punct.period 'prev.status.punct := + space.large 'prev.status.space := + address empty$ + { skip$ } + { ": " * } + if$ + t * + } + if$ + year empty$ month empty$ and + { skip$ } + { t empty$ address empty$ and + { skip$ } + { ", " * } + if$ + month empty$ + { year empty$ + { skip$ } + { year "year" bibinfo.check * } + if$ + } + { month "month" bibinfo.check * + year empty$ + { skip$ } + { " " * year "year" bibinfo.check * } + if$ + } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + this.to.prev.status + this.status.std + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + name.format.string + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { nameptr num.names.shown.with.forced.et.al #1 + = + numnames max.num.names.before.forced.et.al > + is.forced.et.al and and + { "others" 't := + #1 'namesleft := + } + { skip$ } + if$ + namesleft #1 > + { ", " * t do.name.latex.cmd * } + { s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { " " * bbl.etal emphasize * } + { numnames #2 > + { "," * } + { skip$ } + if$ + bbl.and + space.word * t do.name.latex.cmd * + } + if$ + } + if$ + } + { t do.name.latex.cmd } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + cap.status.std + } if$ +} + + + + +%% Higher Level Formats + +%% addresses/locations + +FUNCTION {format.address} +{ address duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% author/editor names + +FUNCTION {format.authors}{ author "author" format.names } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { ", " * + get.bbl.editor + capitalize + * + } + if$ +} + + + +%% date + +FUNCTION {format.date} +{ + month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { this.to.prev.status + this.status.std + cap.status.std + swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} + +FUNCTION {format.date.electronic} +{ month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ + { pop$ } + { "there's a month but no year in " cite$ * warning$ + pop$ ")" * "(" swap$ * + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ + } + { swap$ + { swap$ pop$ ")" * "(" swap$ * } + { "(" swap$ * ", " * swap$ * ")" * } + if$ + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ +} + + + +%% edition/title + +% Note: IEEE considers the edition to be closely associated with +% the title of a book. So, in IEEEtran.bst the edition is normally handled +% within the formatting of the title. The format.edition function is +% retained here for possible future use. +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + convert.edition + status.cap + { "t" } + { "l" } + if$ change.case$ + "edition" bibinfo.check + "~" * bbl.edition * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of a conference proceedings. +% Here we use the "intype" field to provide the user a way to +% override the word "in" (e.g., with things like "presented at") +% Use of intype stops the emphasis of the booktitle to indicate that +% we no longer mean the written conference proceedings, but the +% conference itself. +FUNCTION {format.in.booktitle} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + intype missing$ + { emphasize + bbl.in " " * + } + { intype " " * } + if$ + swap$ * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of collection. +% Here the "intype" field is not supported, but "edition" is. +FUNCTION {format.in.booktitle.edition} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + "l" change.case$ + * "~" * bbl.edition * + } + if$ + bbl.in " " * swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { quote.close 'this.status.quote := + is.last.char.not.punct + { punct.std 'this.status.punct := } + { punct.no 'this.status.punct := } + if$ + select.language + "``" swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title.electronic} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ + { skip$ } + { select.language } + if$ +} + +FUNCTION {format.book.title.edition} +{ title "title" bibinfo.check + duplicate$ empty$ + { "empty title in " cite$ * warning$ } + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + status.cap + { "t" } + { "l" } + if$ + change.case$ + * "~" * bbl.edition * + } + if$ + cap.status.std + } + if$ +} + +FUNCTION {format.book.title} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% journal + +FUNCTION {format.journal} +{ journal duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% how published + +FUNCTION {format.howpublished} +{ howpublished duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% institutions/organization/publishers/school + +FUNCTION {format.institution} +{ institution duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.organization} +{ organization duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.address.publisher.date} +{ publisher "publisher" bibinfo.warn format.address.org.or.pub.date } + +FUNCTION {format.address.publisher.date.nowarn} +{ publisher "publisher" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.address.organization.date} +{ organization "organization" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.school} +{ school duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% volume/number/series/chapter/pages + +FUNCTION {format.volume} +{ volume empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + bbl.volume + status.cap + { capitalize } + { skip$ } + if$ + swap$ tie.or.space.prefix + "volume" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number} +{ number empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + status.cap + { bbl.number capitalize } + { bbl.number } + if$ + swap$ tie.or.space.prefix + "number" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number.if.use.for.article} +{ is.use.number.for.article + { format.number } + { "" } + if$ +} + +% IEEE does not seem to tie the series so closely with the volume +% and number as is done in other bibliography styles. Instead the +% series is treated somewhat like an extension of the title. +FUNCTION {format.series} +{ series empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.series " " * + series "series" bibinfo.check * + cap.status.std + } + if$ +} + + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { this.to.prev.status + this.status.std + type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + cap.status.std + } + if$ +} + + +% The intended use of format.paper is for paper numbers of inproceedings. +% The paper type can be overridden via the type field. +% We allow the type to be displayed even if the paper number is absent +% for things like "postdeadline paper" +FUNCTION {format.paper} +{ is.use.paper + { paper empty$ + { type empty$ + { "" } + { this.to.prev.status + this.status.std + type "type" bibinfo.check + cap.status.std + } + if$ + } + { this.to.prev.status + this.status.std + type empty$ + { bbl.paper } + { type "type" bibinfo.check } + if$ + " " * paper + "paper" bibinfo.check + * + cap.status.std + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + duplicate$ is.multiple.pages + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + cap.status.std + } + if$ +} + + + +%% technical report number + +FUNCTION {format.tech.report.number} +{ number "number" bibinfo.check + this.to.prev.status + this.status.std + cap.status.std + type duplicate$ empty$ + { pop$ + bbl.techrep + } + { skip$ } + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ } + { tie.or.space.prefix * * } + if$ +} + + + +%% note + +FUNCTION {format.note} +{ note empty$ + { "" } + { this.to.prev.status + this.status.std + punct.period 'this.status.punct := + note #1 #1 substring$ + duplicate$ "{" = + { skip$ } + { status.cap + { "u" } + { "l" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + cap.yes 'status.cap := + } + if$ +} + + + +%% patent + +FUNCTION {format.patent.date} +{ this.to.prev.status + this.status.std + year empty$ + { monthfiled duplicate$ empty$ + { "monthfiled" bibinfo.check pop$ "" } + { "monthfiled" bibinfo.check } + if$ + dayfiled duplicate$ empty$ + { "dayfiled" bibinfo.check pop$ "" * } + { "dayfiled" bibinfo.check + monthfiled empty$ + { "dayfiled without a monthfiled in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + yearfiled empty$ + { "no year or yearfiled in " cite$ * warning$ } + { yearfiled "yearfiled" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + } + { month duplicate$ empty$ + { "month" bibinfo.check pop$ "" } + { "month" bibinfo.check } + if$ + day duplicate$ empty$ + { "day" bibinfo.check pop$ "" * } + { "day" bibinfo.check + month empty$ + { "day without a month in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + year "year" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + cap.status.std +} + +FUNCTION {format.patent.nationality.type.number} +{ this.to.prev.status + this.status.std + nationality duplicate$ empty$ + { "nationality" bibinfo.warn pop$ "" } + { "nationality" bibinfo.check + duplicate$ "l" change.case$ "united states" = + { pop$ bbl.patentUS } + { skip$ } + if$ + " " * + } + if$ + type empty$ + { bbl.patent "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.warn pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + + + +%% standard + +FUNCTION {format.organization.institution.standard.type.number} +{ this.to.prev.status + this.status.std + organization duplicate$ empty$ + { pop$ + institution duplicate$ empty$ + { "institution" bibinfo.warn } + { "institution" bibinfo.warn " " * } + if$ + } + { "organization" bibinfo.warn " " * } + if$ + type empty$ + { bbl.standard "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.check pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + +FUNCTION {format.revision} +{ revision empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.revision + revision tie.or.space.prefix + "revision" bibinfo.check + * * + cap.status.std + } + if$ +} + + +%% thesis + +FUNCTION {format.master.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.mthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + +FUNCTION {format.phd.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.phdthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + + + +%% URL + +FUNCTION {format.url} +{ url empty$ + { "" } + { this.to.prev.status + this.status.std + cap.yes 'status.cap := + name.url.prefix " " * + "\url{" * url * "}" * + punct.no 'this.status.punct := + punct.period 'prev.status.punct := + space.normal 'this.status.space := + space.normal 'prev.status.space := + quote.no 'this.status.quote := + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%% +%% ENTRY HANDLERS %% +%%%%%%%%%%%%%%%%%%%% + + +% Note: In many journals, IEEE (or the authors) tend not to show the number +% for articles, so the display of the number is controlled here by the +% switch "is.use.number.for.article" +FUNCTION {article} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.journal "journal" bibinfo.check "journal" output.warn + format.volume output + format.number.if.use.for.article output + format.pages output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {book} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + author empty$ + { skip$ } + { format.editors output } + if$ + format.address.publisher.date output + format.volume output + format.number output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {booklet} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {electronic} +{ std.status.using.period + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.date.electronic output + format.article.title.electronic output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {inbook} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + format.address.publisher.date output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {incollection} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle.edition "booktitle" output.warn + format.series output + format.editors output + format.address.publisher.date.nowarn output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {inproceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle "booktitle" output.warn + format.series output + format.editors output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.paper output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {manual} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title.edition "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {mastersthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.master.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {misc} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.pages output + format.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {patent} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.patent.nationality.type.number output + format.patent.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {periodical} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + format.organization "organization" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {phdthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.phd.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {proceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {standard} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization.institution.standard.type.number output + format.revision output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {techreport} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.institution "institution" bibinfo.warn output + format.address "address" bibinfo.check output + format.tech.report.number output.nonnull + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {unpublished} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.date output + format.note "note" output.warn + format.url output + fin.entry + if.url.std.interword.spacing +} + + +% The special entry type which provides the user interface to the +% BST controls +FUNCTION {IEEEtranBSTCTL} +{ is.print.banners.to.terminal + { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." * + top$ + } + { skip$ } + if$ + CTLuse_article_number + empty$ + { skip$ } + { CTLuse_article_number + yes.no.to.int + 'is.use.number.for.article := + } + if$ + CTLuse_paper + empty$ + { skip$ } + { CTLuse_paper + yes.no.to.int + 'is.use.paper := + } + if$ + CTLuse_forced_etal + empty$ + { skip$ } + { CTLuse_forced_etal + yes.no.to.int + 'is.forced.et.al := + } + if$ + CTLmax_names_forced_etal + empty$ + { skip$ } + { CTLmax_names_forced_etal + string.to.integer + 'max.num.names.before.forced.et.al := + } + if$ + CTLnames_show_etal + empty$ + { skip$ } + { CTLnames_show_etal + string.to.integer + 'num.names.shown.with.forced.et.al := + } + if$ + CTLuse_alt_spacing + empty$ + { skip$ } + { CTLuse_alt_spacing + yes.no.to.int + 'is.use.alt.interword.spacing := + } + if$ + CTLalt_stretch_factor + empty$ + { skip$ } + { CTLalt_stretch_factor + 'ALTinterwordstretchfactor := + "\renewcommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + } + if$ + CTLdash_repeated_names + empty$ + { skip$ } + { CTLdash_repeated_names + yes.no.to.int + 'is.dash.repeated.names := + } + if$ + CTLname_format_string + empty$ + { skip$ } + { CTLname_format_string + 'name.format.string := + } + if$ + CTLname_latex_cmd + empty$ + { skip$ } + { CTLname_latex_cmd + 'name.latex.cmd := + } + if$ + CTLname_url_prefix + missing$ + { skip$ } + { CTLname_url_prefix + 'name.url.prefix := + } + if$ + + + num.names.shown.with.forced.et.al max.num.names.before.forced.et.al > + { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$ + max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al := + } + { skip$ } + if$ +} + + +%%%%%%%%%%%%%%%%%%% +%% ENTRY ALIASES %% +%%%%%%%%%%%%%%%%%%% +FUNCTION {conference}{inproceedings} +FUNCTION {online}{electronic} +FUNCTION {internet}{electronic} +FUNCTION {webpage}{electronic} +FUNCTION {www}{electronic} +FUNCTION {default.type}{misc} + + + +%%%%%%%%%%%%%%%%%% +%% MAIN PROGRAM %% +%%%%%%%%%%%%%%%%%% + +READ + +EXECUTE {initialize.controls} +EXECUTE {initialize.status.constants} +EXECUTE {banner.message} + +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} + +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + +EXECUTE{completed.message} + + +%% That's all folks, mds. diff -r d9ac6e0d1daf -r e19c519e7e3f SMC2015latex/csong.bib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SMC2015latex/csong.bib Sun Apr 12 22:47:34 2015 +0100 @@ -0,0 +1,1103 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% music theory +% Rhythm/Meter + +@Book{Taylor89MusicTheory, +author = {Eric Taylor}, +title = {The AB Guide to Music Theory, Part I}, +publisher = {Associated Board of the Royal Schools of Music}, +year = {1989}, +} + + +@Book{Lerdahl_Jackendoff83GTTM, +author = {Fred Lerdahl and Ray Jackendoff}, +title = {A Generative Theory of Tonal Music}, +publisher = {Cambridge, Mass: MIT Press}, +year = {1983}, +} + +@Article{Higgins78, +author = {Hugh C. Longuet-Higgins}, +title = {The perception of music}, +journal = {Interdisciplinary Science Review}, +volume = {3}, +pages = {148-156}, +year = {1978}, +} + +@Book{Yeston76, +author = {Maury Yeston}, +title = {The stratification of musical rhythm}, +publisher = {New Haven, Conn: Yale University Press}, +year = {1976}, +} + +@Book{London04Meter, +author = {Justin London}, +title = {Hearing in Time: Psychological Aspects of Musical Meter}, +publisher = {Oxford University Press}, +year = {2004}, +} + +@Book{Cooper_Meyer60, +author = {Grosvenor Cooper and Leonard B. Meyer}, +title = {The Rhythmic Structure of Music}, +publisher = {University of Chicago Press}, +year = {1960}, +} + +@PhdThesis{Gouyon05, +author = {Fabien Gouyon}, +title = {A computational approach to rhythm description}, +school = {Department of Technology of the University Pompeu Fabra}, +year = {2005}, +} + +@MastersThesis{Bilmes93, +author = {Jeffrey A. Bilmes}, +title = {Timing is of the essence: perceptual and computational techniques for representing, learning, and reproducing expressive timing in percussive rhythm}, +school = {MIT Masters Thesis}, +year = {1993}, +} + +@InCollection{Clarke99, +author = {Eric F. Clarke}, +title = {Rhythm and timing in music}, +booktitle = {The psychology of music (2nd edition)}, +pages = {437-500}, +publisher = {New York: Academic Press}, +year = {1999}, +} + + +% Syncopation theory + +@Book{Randel86Harvard, +author = {Don Randel}, +title = {The Harvard Dictionary of Music}, +publisher = {Harvard University Press}, +year = {1986}, +} + +@Book{Kennedy94Oxford, +author = {Michael Kennedy}, +title = {The Oxford Dictionary of Music}, +publisher = {Oxford University Press}, +edition = {Second Edition}, +year = {1994}, +} + +@Book{Huron06Anticipation, +author = {David Huron}, +title = {Sweet anticipation: music and the psychology of expectation}, +publisher = {Cambridge, MA: MIT. Press}, +year = {2006}, +} + +@Article{Huron_Ommen06, +author = {David Huron and Ann Ommen}, +title = { An Empirical Study of Syncopation in American Popular Music, 1890–1939}, +journal = {Music Theory Spectrum}, +volume = {28}, +number = {2}, +pages = {211-231}, +year = {2006}, +} + +@Book{Krebs99, +author = {Harald Krebs}, +title = {Fantasy pieces: metrical dissonance in the music of robert schumann}, +publisher = {New York: Oxford University Press}, +year = {1999}, +} + +@Article{Temperley99, +author = {David Temperley}, +title = {Syncopation in rock: a perceptual perspective}, +journal = {Popular Music}, +volume = {18}, +number = {1}, +pages = {19-40}, +year = {1999}, +} + + +@Book{Temperley01, +author = {David Temperley}, +title = {The cognition of basic musical structures}, +publisher = {The MIT Press}, +year = {2001}, +} + +% syncopation and meter/beat induction, rhythm perception, similary +@InProceedings{Velasco_Large11, +author = {Marc J. Velasco and Edward W. Large}, +title = {Pulse detection in syncopated rhythms using neural oscillators}, +booktitle = {Proceedings of the 12th International Society for Music Information Retrieval Conference}, +pages = {185-190}, +year = {2011}, +} + +@Article{Eck01, +author = {Douglas Eck}, +title = {A positive-evidence model for rhythmical beat induction}, +journal = {Journal of New Music Research}, +volume = {30}, +number = {2}, +pages = {187-200}, +year = {2001}, +} + +@Article{Keller_Repp05, +author = {Peter E. Keller and Bruno H. Repp}, +title = {Staying offbeat: sensorimotor syncopation with structured and unstructured auditory sequences}, +journal = {Psychological Research}, +volume = {69}, +number = {4}, +pages = {292-309}, +year = {2001}, +} + +@InProceedings{Moelants12, +author = {Dirk Moelants}, +title = {Conveying syncopation in music performance}, +booktitle = {Proceedings of the 12th International Conference on Music Perception and Cognition and the 8th Triennial Conference of the European Society for the Cognitive Sciences of Music}, +pages = {686-691}, +year = {2012}, +} + +% syncopation and broad music perception +@Article{Keller_Schubert11, +author = {Peter E. Keller and Emery Schubert}, +title = {Cognitive and affective judgements of syncopated musical themes}, +journal = {Advances in Cognitive Psychology}, +volume = {7}, +pages = {142-156}, +year = {2011}, +} + +@Article{Madison06, +author = {Guy Madison}, +title = {Experiencing groove induced by music: consistency and phenomenology}, +journal = {Music Perception: An Interdisciplinary Journal}, +volume = {24}, +number = {2}, +pages = {201-208}, +year = {2006}, +} + +@Article{Witek14, +author = {Maria A. G. Witek and Eric F. Clarke and Mikkel Wallentin and Morten L. Kringelbach and Peter Vuust}, +title = {Syncopation, body-movement and pleasure in groove music}, +journal = {PloS ONE}, +volume = {9}, +number = {4}, +pages = {e94446}, +year = {2014}, +} + +@InProceedings{Madison13, +author = {Guy Madison and George Sioros and Matthew Davis and Marius Miron and Diogo Cocharro and Fabien Gouyon}, +title = {Adding syncopation to simple melodies increases the perception of groove}, +booktitle = {Proceedings of: Conference of Society for Music Perception and Cognition}, +year = {2013}, +} + + @Article{Sloboda91, +author = {John A. Sloboda}, +title = {Musical structure and emotional responses: some empirical fundings}, +journal = {Psychology of music}, +volume = {19}, +pages = {110-120}, +year = {1991}, +} + +@Article{Mayville01, +author = {Justine M. Mayville and Armin Fuchs and Mingzhou Ding and Douglas Cheyne and Lüder Deecke and J.A. Scott Kelso}, +title = {Event-related changes in neuromagnetic activity associated with syncopation and synchronization timing tasks}, +journal = {Human Brain Mapping}, +volume = {113}, +number = {2}, +pages = {65-80}, +year = {2001}, +} + + +@Article{Honning09Baby, +author = {Henkjan Honing and Olivia Ladinig and G\'{a}bor P H\'{a}den and Istv\'{a}n Winkler}, +title = {Is beat induction innate or learned? Probing emergent meter perception in adults and newborns using event-related brain potentials}, +journal = {Annals of the New York Academy of Sciences}, +volume = {1169}, +pages = {93-96}, +year = {2009} +} + +@Article{Winkler09, +author = {Istv\'{a}n Winkler and G\'{a}bor P H\'{a}den and Olivia Ladinig and Istv\'{a}n Sziller and Henkjan Honing}, +title = {Newborn infants detect the beat in music}, +journal = {Proceedings of the National Academy of Sciences of the United States of America}, +volume = {106}, +number = {7}, +pages = {2468-2471}, +year = {2009} +} + +@Article{Ladinig09, +author = {Olivia Ladinig and Henkjan Honing}, +title = {Probing attentive and preattentive emergent meter in adult listners without extensive music training}, +journal = {Music Perception}, +volume = {26}, +number = {4}, +pages = {377-386}, +year = {2009}, +} + +@Article{Thaut_Kenyon03, +author = {Michael H. Thaut and Gary P. Kenyon}, +title = {Rapid motor adaptations to subliminal frequency shifts during syncopated rhythmic sensorimotor synchronization}, +journal = {Human Movement Science}, +volume = {22}, +number = {3}, +pages = {321-338}, +year = {2003}, +} + +@Article{Simpson_Huron93, +author = {Jasba Simpson and David Huron}, +title = { The perception of rhythmic similarity: A test of a modified version of Johnson-Laird’s theory}, +journal = {Canadian Acoustics}, +volume = {21}, +pages = {89-90}, +year = {1993}, +} + +@PhdThesis{Streich06, +author = {Sebastian Streich}, +title = {Music complexity: a multifaceted description of audio content}, +school = {Music Technology Group, The Universitat Pompeu Fabra}, +year = {2006}, +} + +@PhdThesis{Ladinig09thesis, +author = {Olivia Ladinig}, +title = {Temporal expectations and their violations}, +school = {Institute for Logic, Language and Computation, Universiteit van Amsterdam, The Netherlands}, +year = {2009}, +} + +@InProceedings{Smith10, +author = {Leigh M. Smith}, +title = {Rhythmic similarity using metrical profile matching}, +booktitle = {Proceedings of the 2010 International Computer Music Conference}, +year = {2010}, +} + +@InProceedings{Panteli14, +author = {Maria Panteli and Bruno Rocha and Niels Bogaards and Aline Honingh}, +title = {Development of a rhythm similarity model for electronic dance music}, +booktitle = {AES 53rd International Conference, London, UK}, +year = {2014}, +} + +@Article{Post_Toussaint11, +author = {Olaf Post and Godfried Toussaint}, +title = {The edit distance as a measure of perceived rhythmic similarity}, +journal = {Empirical Musicology Review}, +volume = {6}, +number = {3}, +pages = {164-179}, +year = {2011}, +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Perceptual/Neurological studies - meter, rhythm, syncopation + +@Article{Palmer_Krumhansl90, +author = {Caroline Palmer and Carol L. Krumhansl}, +title = { Mental Representations for Musical Meter}, +journal = {Journal of Experimental Psychology: Human Perception and Performance}, +volume = {16}, +number = {4}, +pages = {728-741}, +year = {1990}, +} + +@Article{Chen08, +author = {Joyce L. Chen and Virginia B. Penhune and Robert J. Zatorre}, +title = {Moving on time: brain network for auditory-motor synchronization is modulated by rhythm complexity and musical training}, +journal = {Journal of Cognitive Neuroscience}, +volume = {20}, +number = {2}, +pages = {226-239}, +year = {2008}, +} + +@Article{Repp_Doggett07, +author = {Bruno H. Repp and Rebecca Doggett}, +title = {Tapping to a very slow beat: a comparison of musicians and nonmusicians }, +journal = {Music Perception}, +volume = {24}, +number = {4}, +pages = {367-376}, +year = {2007}, +} + +@Article{Snyder_Krumhansl01, +author = {Joel Snyder and Carol L. Krumhansl}, +title = {Tapping to Ragtime: Cue to Pulse Finding}, +journal = {Music Perception}, +volume = {18}, +number = {4}, +pages = {445-489}, +year = {2001}, +} + +@Article{Toivianinen_Snyder03, +author = {Petri Toivianinen and Joel S. Snyder}, +title = {Tapping to Bach: Resonance-based Modelling of Pulse}, +journal = {Music Perception}, +volume = {21}, +number = {1}, +pages = {43-80}, +year = {2003}, +} + +@Article{Handel_Oshinsky81, +author = {Stephen Handel and James S. Oshinsky}, +title = {The meter of syncopated auditory polyrhythms}, +journal = {Perception \& Psychophysics }, +volume = {30}, +number = {1}, +pages = {1-9}, +year = {1981}, +} + +@Article{Repp02, +author = {Bruno H. Repp and W. Luke Windsor and Peter Desain}, +title = {Effects of tempo on the timing of simple musical rhythms}, +journal = {Music Perception}, +volume = {19}, +number = {4}, +pages = {565-593}, +year = {2002}, +} + +@Article{Desain_Honing94, +author = {Peter Desain and Henkjan Honing}, +title = {Does expressive timing in music performance scale proportionally with tempo?}, +journal = {Psychological Research}, +volume = {56}, +number = {4}, +pages = {285-292}, +year = {1994}, +} + +@Article{Drake93, +author = {Carolyn Drake}, +title = {Reproduction of musical rhythms by children, adult musicians, and adult nonmusicians}, +journal = {Perception \& Psychophysics}, +volume = {53}, +number = {1}, +pages = {25-33}, +year = {1993}, +} + +@Article{Smith_Cuddy89, +author = {Karen C. Smith and Lola L. Cuddy}, +title = {Effects of metric and harmonic rhythm on the detection of pitch alterations in melodic sequences}, +journal = {Journal of Experimental Psychology: Human Perception and Performance}, +volume = {15}, +number = {3}, +pages = {457-471}, +year = {1989}, +} + +@Article{Hannon04, +author = {Erin E. Hannon and Joel S. Snyder and Tuomas Eerola and Carol L. Krumhansl}, +title = {The Role of Melodic and Temporal Cues in Perceiving Musical Meter}, +journal = {Journal of Experimental Psychology: Human Perception and Performance}, +volume = {30}, +number = {5}, +pages = {956-974}, +year = {2004}, +} + +@Article{Vuust09, +author = {Peter Vuust and Leif Ostergaard and Karen Johanne Pallesen and Christopher Bailey and Andreas Roepstorff}, +title = {Predictive coding of music – brain responses to rhythmic incongruity}, +journal = {Cortex}, +volume = {45}, +pages = {80-92}, +year = {2009}, +} + +@Article{Vuust11, +author = {Peter Vuust and Mikkel Wallentin and Leif Ostergaard and Andreas Roepstorff}, +title = {Tapping polyrhythms in music activates language areas}, +journal = {Neuroscience Letters}, +volume = {494}, +pages = {211-216}, +year = {2011}, +} + + +% particularly on tempo + +@Article{Meyer_Palmer01, +author = {Rosalee K. Meyer and Caroline Palmer}, +title = {Rate and tactus effects in music performance}, +journal = {Manuscript submitted for publication}, +year = {2001}, +} + +@Article{Duke89, +author = {Robert A. Duke}, +title = {Musicians' perception of beat in monotonic stimuli}, +journal = {Journal of Research in Music Education}, +volume = {37}, +number = {1}, +pages = {61-71}, +year = {1989}, +} + +@Article{McAuley_Semple99, +author = {J. Devin McAuley and Peter Semple}, +title = {The effect of tempo and musical experience on perceived beat}, +journal = {Australian Journal of Psychology}, +volume = {51}, +number = {3}, +pages = {176-187}, +year = {1999}, +} + +@InProceedings{Moelants_McKinney04, +author = {Dirk Moelants and M McKinney}, +title = {Tempo percepton and musical content: what makes a piece fast, slow or temporally ambiguous?}, +booktitle = {Proceedings of the 8th International Conference on Music Perception and Cognition}, +pages = {558-562}, +year = {2004}, +} + + +@Article{Wohlschlager_Koch00, +author = {Andreas Wohlschl\"{a}ger and Robert Koch}, +title = {Syncronization error: an error in time perception}, +journal = {Rhythm perception and production}, +pages = {115-127}, +year = {2000}, +} + +@Article{Repp08, +author = {Bruno H. Repp}, +title = {Metrical sbudivision results in subjective slowing of the beat}, +journal = {Music Perception}, +volume = {26}, +issue = {1}, +pages = {19-39}, +year = {2008}, +} + +@Article{Repp03, +author = {Bruno H. Repp}, +title = {Rate limits in sensorimotor synchronization with auditory and visual sequences: The synchronization threshold and the benefits and costs of interval subdivision}, +journal = {Journal of Motor Behavior}, +volume = {35}, +issue = {4}, +pages = {355-370}, +year = {2003}, +} + +@Article{Handel92, +author = {Stephen Handel}, +title = {The differentiation of rhythmic structure}, +journal = {Perception \& Psychophysics}, +volume = {52}, +pages = {497-507}, +year = {1992}, +} + +@Article{Handel93, +author = {Stephen Handel}, +title = {The effect of tempo and tone duration on rhythm discrimination}, +journal = {Percept Psychophys}, +volume = {54}, +number = {3}, +pages = {370-382}, +year = {1993}, +} + +@Article{Duke88, +author = {Robert A. Duke and John M. Geringer and Clifford K. Madsen}, +title = {The effect of tempo on pitch perception}, +journal = {Journal of Research in Music Education}, +volume = {36}, +number = {2}, +pages = {108-125}, +year = {1988}, +} + +@Article{LeBlanc81, +author = {Albert LeBlanc}, +title = {Effects of style, tempo and performing medium on children's music preference}, +journal = {Journal of Research in Music Education}, +volume = {29}, +number = {2}, +pages = {143-156}, +year = {1981}, +} + +% This was cited in plos one paper, but they actually didn't show tempo effects on emotion +@Article{Kamenetsky97, +author = {Stuart B. Kamenetsky and David S. Hill and Sandra E. Trehub}, +title = {Effect of tempo and dynamics on perception of emotion in music}, +journal = {Psychology of Music}, +volume = {25}, +number = {2}, +pages = {149-160}, +year = {1997}, +} + +@Article{Zwaag11, +author = {Marjolein D. vander Zwaag and Joyce H.D.M. Westerink and Egon L. van den Broek}, +title = {Emotional and psychophysiological responses to tempo, mode and perceussiveness}, +journal = {Musicae Scientiae}, +volume = {15}, +number = {2}, +pages = {250-269}, +year = {2011}, +} + +@Article{Collier_Hubbard01, +author = {William G. Collier and Timothy L. Hubbard}, +title = {Judgements of happiness, brightness, speed and tempo change of auditory stimuli varying in pitch and tempo}, +journal = {Psychomusicology}, +volume = {17}, +pages = {36-55}, +year = {2001}, +} + +@Book{Gabrielsson10, +author = {Aalf Gabrielsson and Erik Lindstr\"{o}m}, +title = {The role of structure in the musical expression of emotions}, +journal = {Music and emotion: Theory, research, and applications}, +pages = {367-400}, +publisher = {Oxford University Press}, +year = {2010}, +} + +@Article{Caldwell_Hibbert99, +author = {Clare Caldwell and Sally A. Hibbert}, +title = {Play that one again: the effect of music tempo on consumer behaviour in a restaurant}, +journal = {European Advances in Comsumer Research}, +volume = {4}, +pages = {58-62}, +year = {1999}, +} + +@Article{Brodsky02, +author = {Warren Brodsky}, +title = {The effects of music tempo on simulted driving performance and vehicular control}, +journal = {Transportation Research Part F}, +volume = {4}, +pages = {219-241}, +year = {2002}, +} + +@Book{Fraisse63, +author = {Paul Fraisse}, +title = {Psycbology of time}, +publisher = {New York: Harper}, +pages = {13-14}, +year = {1963}, +} + + +@Book{Fraisse82, +author = {Paul Fraisse}, +title = {The Psychology of Music, ``Rhythm and Tempo''}, +publisher = {Academic Press, New York}, +pages = {149-180}, +year = {1982}, +} + +@Article{Bolton1894, +author = {Thaddeus L. Bolton}, +title = {Rhythm}, +journal = {American Journal of Psychology}, +volume = {6}, +pages = {145-238}, +year = {1894}, +} + +@Article{Hirsh_Monohan90, +author = {Ira J. Hirsh and Caroline B. Monohan}, +title = {Studies in auditory timing: 1. simple patterns}, +journal = {Perception and psychophysics}, +volume = {47}, +number = {3}, +pages = {215-226}, +year = {1990}, +} + +@Article{Mates93, +author = {Ji\v{r}\'{i} Mates and U. M\"{u}ller and E. P\"{o}ppel and Tom\'{a}\v{s} Radil}, +title = {Stimulus anticipation disappears when following slow tonal sequences by finger tapping}, +journal = {Homeostatis in Health and Disease}, +volume = {34}, +pages = {185-187}, +year = {1993}, +} + +@InProceedings{London06, +author = {Justin London and Ian Cross and Tommi Himberg}, +title = {The effect of tempo on the perception of anacruses}, +booktitle = {The 9th International Conference on Music Perception and Cognition}, +address = {Alma Mater Studiorum University of Bologna}, +pages = {1641-1647}, +year = {2006}, +} + + +@Article{Parncutt94, +author = {Richard Parncutt}, +title = {A perceptual model of pulse salience and metrical accent in musical rhythms}, +journal = {Music Perception}, +volume = {11}, +number = {4}, +pages = {409-464}, +year = {1994}, +} + +@Article{Oshinsky_Handel78, +author = {James S. Oshinsky and Stephen Handel}, +title = {Syncopated auditory polyrhtyhms: discontinuous reversals in meter interpretation}, +journal = {The Journal of Acoustical Society of America}, +volume = {63}, +number = {3}, +pages = {936-939}, +year = {1978}, +} + + +@Article{Handel_Lawson83, +author = {Stephen Handel and Gregory R. Lawson}, +title = {The contextual nature of rhythmic interpretation}, +journal = {Percept \& Psychophys}, +volume = {34}, +number = {2}, +pages = {103-120}, +year = {1983}, +} + + +@Article{Bergeson_Trehub06, +author = {Tonya R. Bergeson and Sandra E. Trehub}, +title = {Infants perception of rhythmic patterns}, +journal = {Music Perception}, +volume = {23}, +number = {4}, +pages = {345-360}, +year = {2006}, +} + +@Article{Drake97, +author = {Carolyn Drake}, +title = { Motor and perceptually preferred synchronisation by children and adults: binary and ternary ratios}, +journal = {Polish Quarterly of Developmental Psychology}, +volume = {3}, +pages = {41-59}, +year = {1997}, +} + +@Article{VanNoorden_Moelants99, +author = {Leon van Noorden and Dirk Moelants}, +title = {Resonance in the perception of musical pulse}, +journal = {Journal of New Music Research}, +volume = {28}, +pages = {43-66}, +year = {1999}, +} + +@Article{Quinn_Watt06, +author = {Sandra Quinn and Roger Watt}, +title = {The perception of tempo in music}, +journal = {Perception}, +volume = {35}, +pages = {267-280}, +year = {2006}, +} + +@Article{McAuley06, +author = {J. Devin McAuley and Mari Riess Jones and Shayla Holub and Heather M. Johnston and Nathaniel S. Miller}, +title = {The time of our lives: lifespan development of timing and event tracking}, +journal = {Journal of Experimental Psychology: General}, +volume = {135}, +number = {3}, +pages = {348-367}, +year = {2006}, +} + + +@Article{McAuley10, +author = {J. Devin McAuley}, +title = {Tempo and rhythm}, +journal = {Music perception}, +publisher = {Springer New York}, +pages = {165-199}, +year = {2010} +} + + +@Article{Lapidaki00, +author = {Eleni Lapidaki}, +title = {Stability of tempo perception in music listening}, +journal = {Music Education Research}, +volume = {2}, +pages = {25-44}, +year = {2000}, +} + +@Article{MacDougall_Moore05, +author = {Hamish G. MacDougall and Steven T. Moore}, +title = {Marching to the beat of the same drummer: the spontaneous tempo of human locomotion}, +journal = {Journal of Applied Physiology}, +volume = {99}, +number = {3}, +pages = {1164-1173}, +year = {2005}, +} + +@Article{Barton13, +author = {Scott Barton and Laura Getz and Michael Kubovy}, +title = {Rhythmic identity, syncopation and tempo}, +journal = {Submitted for publication}, +year = {2013}, +} + +@InProceedings{Moelants02, +author = {Dirk Moelants}, +title = {Preferred tempo reconsidered}, +booktitle = {Proceedings of the 7th International Conference on Music Perception and Cognition}, +address = {Sydney}, +pages = {580-583}, +year = {2002}, +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Syncopation models + +@Article{LHL84, +author = {Hugh C. Longuet-Higgins and Christopher S. Lee}, +title = {The rhythmic interpretation of monophonic music}, +journal = {Music Perception}, +volume = {1}, +number = {4}, +pages = {424-441}, +year = {1984}, +} + +@Book{Keith91, +author = {Michael Keith}, +title = {From Polychords to P\'olya: Adventures in Music Combinatiorics}, +publisher = {Vinculum Press}, +year = {1991} +} +%address={Princeton}, + +@InProceedings{Toussaint02Metrical, +author = {Godfried T. Toussaint}, +title = {A mathematical analysis of African, Brazilian, and Cuban clave rhythms}, +booktitle = {Proceedings of BRIDGES: Mathematical Connections in Art, Music and Science}, +pages = {157-168}, +year = {2002}, +} +%address = {Townson University, Towson, MD} + +@InProceedings{Toussaint05Offbeatness, +author = {Godfried T. Toussaint}, +title = {Mathematical features for recognizing preference in Sub-Saharan African traditional rhythm timelines}, +booktitle = {3rd International Conference on Advances in Pattern Recognition}, +pages = {18-27}, +year = {2005}, +} +%address = {University of Bath, Bath, United Kingdom}, + +@InProceedings{Gomez05, +author = {F. G\'omez and A. Melvin and D. Rappaport and Godfried T. Toussaint}, +title = {Mathematical measures of syncopation}, +booktitle = {BRIDGES: Mathematical Connections in Art, Music and Science}, +pages = {73-84}, +year = {2005}, +} +%address = {Banff, Alberta, Canada}, + +@InProceedings{Sioros11, +author = {George Sioros and Carlos Guedes}, +title = {Complexity Driven Recombination of MIDI Loops}, +booktitle = {Proceedings of the 12th International Society for Music Information Retrieval Conference}, +pages = {381-386}, +year = {2011}, +} + +@InProceedings{Sioros12, +author = {George Sioros and Andr\'e Holzapfel and Carlos Guedes}, +title = {On measuring syncopation to drive an interactive music system}, +booktitle = {Proceedings of the 13th International Society for Music Information Retrieval Conference}, +pages = {283-288}, +year = {2012}, +} + +@Inproceedings {Sioros13, + author = {George Sioros and Marius Miron and Diogo Cocharro and Carlos Guedes and Fabien Gouyon}, + title = {Syncopalooza: Manipulating the Syncopation in Rhythmic Performances}, + booktitle = {International Symposium on Computer Music Multidisciplinary Research}, + year = {2013}, +} + +@misc {Sioros11URL, + author = {George Sioros}, + title = {Kinetic. Gestural controller-driven, adaptive, and dynamic music composition systems}, + year = {2011}, + howpublished = {{{https://http://smc.inescporto.pt/kinetic/?page\_id=9}}} +} + +@misc {Sioros14Comms, + author = {George Sioros}, + year = {2014}, + month = {January}, + howpublished = "Personal communication" +} + + +@InProceedings{Pressing93, +author = {Jeffrey Pressing and Peter Lawrence}, +title = {Transcribe: a comprehensive autotranscription program.}, +booktitle = {Proceedings of the 1993 International Computer Music Conference}, +pages = {343-345}, +year = {1993}, +} + +@InProceedings{Pressing97, +author = {Jeffrey Pressing}, +title = {Cognitive complexity and the structure of musical patterns}, +booktitle = {Proceedings of the 4th Conference of the Australian Cognitive Science Society}, +year = {1997}, +} +%address = {Newcastle, Australia}, + +@Book{Arom91Oddity, +author = {Simha Arom}, +title = {African Polyphony and Polyrhythm: Musical Structure and Methodology}, +publisher = {Cambridge University Press}, +year = {1991}, +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Data + +@Article{Povel_Essens85, +author = {Dirk-Jan Povel and Peter Essens}, +title = {Perception of temporal patterns}, +journal = {Music Perception}, +volume = {2}, +number = {4}, +pages = {411-440}, +year = {1985}, +} + +@Article{Essens95, +author = {Peter Essens}, +title = {Structuring temporal sequences: comparison of models and factors of complexity}, +journal = {Perception and Psychophysics}, +volume = {57}, +number = {4}, +pages = {519-532}, +year = {1995}, +} + + +@Article{Shmulevich_Povel00, +author = {Ilya Shmulevich and Dirk-Jan Povel}, +title = {Measures of temporal pattern complexity}, +journal = {Journal of New Music Research}, +volume = {29}, +number = {1}, +pages = {61-69}, +year = {2000}, +} + +@Article{Fitch_Rosenfeld07, +author = {W. Tecumseh Fitch and Andrew J. Rosenfeld}, +title = {Perception and production of syncopated rhythms}, +journal = {Music Perception}, +volume = {25}, +number = {1}, +pages = {43-58}, +year = {2007} +} + +@Article{Song13, +author = {Chunyang Song and Andrew J.R. Simpson and Christopher A. Harte and Marcus T. Pearce and Mark B. Sandler}, +title = { Syncopation and the score}, +journal = {PloS ONE}, +volume = {8}, +number = {9}, +pages = {e74692. doi:10.1371/journal.pone.0074692}, +year = {2013}, +} + +@misc {Song14URL, + author = {Chunyang Song}, + title = {C4{DM} Syncopation Dataset and Toolkit}, + year = {2014}, + howpublished = {{{https://code.soundsoftware.ac.uk/projects/syncopation-dataset}}} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%Evaluations +@InProceedings{Gomez07, +author={Francisco G\'omez and Eric Thul and Godfried T. Toussaint}, +title={An experimental comparison of formal measures of rhythmic +syncopation}, +booktitle={Proceedings of the International Computer Music Conference}, +pages={101-104}, +year= {2007} +} +%address={Copenhagen, Denmark}, + +@MastersThesis{Thul08, +author = {Eric Thul}, +title = {Measuring the complexity of musical rhythm. (MSc Thesis)}, +school = {McGill University}, +year = {2008}, +} + + +@InProceedings{Smith_Honing07, +author = {Leigh M. Smith and Henkjan Honing}, +title = {Evaluating and Extending Computational Models of Rhythmic Syncopation in Music}, +booktitle = {Proceedings of the 2006 International Computer Music Conference}, +pages = {688-91}, +year = {2007} +} +%address= {New Orleans}, + + + +% Something not too relavent but have to cite +@Book{Stevens75Psychophysics, + Author = {Stanley Smith Stevens}, + Title = {Psychophysics: Introduction to its perceptual, neural, and social prospects. Chap. 1}, + Publisher = {Wiley}, + Address = {New York}, + year = 1975 +} + +@Book{Bech_Zacharov06, + Author = {S{\o}ren Bech and Nick Zacharov}, + Title = {Perceptual Audio Evaluation: Theory, Method and Application. Chap. 4}, + Publisher = {John Wiley \& Son}, + year = 2006 +} + +@Book{Poulton89Bias, + Author = {E. Christopher Poulton}, + Title = {Bias in Quantifying Judgement}, + Publisher = {Lawrence Erlbaum Associates Ltd.}, + Address = {East Sussex, U.K.}, + year = 1989 +} + + +@Book{Hrbacek99Set_theory, +author = {Karel Hrbacek and Thomas Jech}, +title = {Introduction to Set Theory}, +publisher = {Marcel Dekker, Inc., New York}, +year = {1999}, +} + +@book{Lewin72, + title={Theory and design of digital computers}, + author={Lewin, D.}, + isbn={9780470531594}, + lccn={72002462}, + year={1972}, + publisher={J. Wiley, Press} +} + +@Book{Miller90, +author = {Alan J. Miller}, +title = {Subset Selection in Regression}, +publisher = {Chapman and Hall, London}, +year = {1990}, +} + +@Book{Akaike77, +author = {Hirotugu Akaike}, +title = {On entropy maximization principle}, +publisher = {Applications of Statistics, North-Holland, Amsterdam}, +pages = {27-41}, +year = {1977}, +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Unclassified + +@Article{Pressnitzer11, +author = {Daniel Pressnitzer, Clara Suied and Shihab A. Shamma}, +title = {Auditory scene analysis: the sweet music of ambiguity}, +journal = {Front Hum Neurosci}, +volume = {5}, +pages = {158}, +year = {2011}, +} + +@InProceedings{Guoyon04, +author = {Fabien Gouyon and Simon Dixon and Elia Pampalk and Gerhard Widmer}, +title = {Evaluating rhythmic descriptors for musical genre classification}, +booktitle = {Proceedings of the AES 25th International Conference}, +pages = {196-204}, +year = {2004}, +} +%address= {New Orleans}, + +@Article{Thomassen82, +author = {Joseph M. Thomassen}, +title = {Melodic accent: experiments and a tentative model}, +journal = {The Journal of the Acoustical Society of America}, +volume = {71}, +number = {6}, +pages = {1596-1605}, +year = {1982}, +} + +@Article{Dixon01, +author = {Simon Dixon}, +title = {Automatic extraction of tempo and beat from expressive performances}, +journal = {Journal of New Music Research}, +volume = {30}, +number = {1}, +pages = {39-58}, +year = {2001}, +} + +@Article{Mullensiefen09, +author = {Daniel M\"{u}llensiefen and Martin Pfleiderer and Klaus Frieler }, +title = {The perception of accents in pop music melodies}, +journal = {Journal of New Music Research}, +volume = {38}, +number = {1}, +pages = {19-44}, +year = {2009}, +} + + +@Article{Trainor07, +author = {Laurel J. Trainor}, +title = {Do preferred beat rate and entrainment to the beat have a common origin in movement?}, +journal = {Empirical Musicology Review}, +volume = {2}, +pages = {17-21}, +year = {2007}, +} \ No newline at end of file diff -r d9ac6e0d1daf -r e19c519e7e3f SMC2015latex/smc2015.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SMC2015latex/smc2015.sty Sun Apr 12 22:47:34 2015 +0100 @@ -0,0 +1,258 @@ +% Latex Paper Template for SMC 2015 +% slightly adapted version of the templates for SMC 2011, SMC 2010 and ISMIR 2009 +% +% Version 20111229 +% Adapded for Sound And Music computing conference +% The bibliography style is now the most recent IEEEtran.bst + +\def\Hline{\noalign{\hrule height 0.4mm}} +%\newcommand{\bm}[1]{\mbox{\boldmath{$#1$}}} +\newcommand{\figbox}[1]{\fbox{\parbox{\columnwidth}{\centering{ #1 }}}} +\newcommand{\range}[2]{{#1,\cdots,#2\;}} +\newcommand{\secref}[1]{\mbox{Section~\ref{#1}}} +\newcommand{\tabref}[1]{\mbox{Table~\ref{#1}}} +\newcommand{\figref}[1]{\mbox{Figure~\ref{#1}}} +\newcommand{\eqnref}[1]{\mbox{Eq.~(\ref{#1})}} + +\renewcommand{\sfdefault}{phv} +\renewcommand{\rmdefault}{ptm} +\renewcommand{\ttdefault}{pcr} + +\setlength{\paperheight}{297mm} +\setlength{\paperwidth}{210mm} +\setlength{\textheight}{252mm} +\setlength{\textwidth}{172mm} +\setlength{\columnsep}{8mm} +\setlength{\headheight}{0mm} +\setlength{\voffset}{-12mm} +\setlength{\hoffset}{0mm} +\setlength{\marginparwidth}{0mm} +\setlength{\parindent}{2mm} %1pc +\setlength{\topmargin}{-5mm} +\setlength{\oddsidemargin}{-6mm} +\setlength{\evensidemargin}{-6mm} + +\setlength\normallineskip{1\p@} +\setlength\parskip{0\p@ \@plus \p@} +%\def\baselinestretch{0.98} + +\def\normalsize{\@setsize\normalsize{12pt}\xpt\@xpt} +\def\small{\@setsize\small{10pt}\ixpt\@ixpt} +\def\footnotesize{\@setsize\footnotesize{8pt}\viiipt\@viiipt} +\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} +\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} +\def\large{\@setsize\large{14pt}\xiipt\@xiipt} +\def\Large{\@setsize\Large{16pt}\xivpt\@xivpt} +\def\LARGE{\@setsize\LARGE{20pt}\xviipt\@xviipt} +\def\huge{\@setsize\huge{23pt}\xxpt\@xxpt} +\def\Huge{\@setsize\Huge{28pt}\xxvpt\@xxvpt} + +\twocolumn +\pagestyle{empty} + +\def\maketitle{\par + \begingroup + \def\thefootnote{} + \def\@makefnmark{ + \hbox + {$^{\@thefnmark}$\hss} + } + \twocolumn[\@maketitle] + \permission + \@thanks + \endgroup + \setcounter{footnote}{0} + \let\maketitle\relax + \let\@maketitle\relax + \gdef\thefootnote{ + \arabic{footnote} + } + \gdef\@@savethanks{} + \gdef\@thanks{} + \gdef\@author{} + \gdef\@title{} + \let\thanks\relax +} + +\def\@maketitle{ + \newpage + \null + \begin{center} { + \Large \bf \@title \par + } + \vskip 2.0em { + \normalsize \lineskip .5em + \begin{tabular}[t]{c} + \@author \\ + \end{tabular} + \par + } + \end{center} + \par + \vskip 2.0em +} + +\newcommand{\permission}{ +\begin{figure}[b] +{\scriptsize{\it Copyright: \copyright 2015 \firstauthor \hspace*{1 pt} et al. This is an open-access article distributed under the terms of the \href{http://creativecommons.org/licenses/by/3.0/}{\textcolor {magenta} {\underline {Creative Commons Attribution 3.0 Unported License}}}, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.}} +%{\copyright~Copyright notice here} +\end{figure}} + +\def\oneauthor#1#2{ + \gdef\@author{ + \begin{tabular}{@{}c@{}} + {\bf #1} \\ + #2\relax + \end{tabular}\hskip .3in + } +} + +\def\twoauthors#1#2#3#4{ + \gdef\@author{ + \begin{tabular}{@{}c@{}} + {\bf #1} \\ + #2 + \end{tabular}\hskip 1.5in + \begin{tabular}{@{}c@{}} + {\bf #3} \\ + #4\relax + \end{tabular} + } +} + +\def\threeauthors#1#2#3#4#5#6{ + \gdef\@author{ + \begin{tabular}{@{}c@{}} + {\bf #1} \\ + #2 + \end{tabular}\hskip .3in + \begin{tabular}{@{}c@{}} + {\bf #3} \\ + #4 + \end{tabular}\hskip .3in + \begin{tabular}{@{}c@{}} + {\bf #5} \\ + #6\relax + \end{tabular} + } +} + +\def\abstract{ + \begin{center}{ + \bf ABSTRACT + } + \end{center} +} +\def\endabstract{\par} + +\def\title#1{\gdef\@title{\uppercase{#1}}} + +\newif\if@smcsection + +\renewcommand\section{ + \@smcsectiontrue + \@startsection + {section} + {1} + {\z@} + {-3.5ex \@plus -1ex \@minus -.2ex} + {6pt \@plus.2ex} + {\large\bf\centering} +} + +\renewcommand\subsection{ + \@smcsectionfalse + \@startsection + {subsection} + {2} + {\z@} + {-2.5ex \@plus -1ex \@minus -.2ex} + {6pt \@plus.2ex} + {\normalsize\bf\raggedright} +} + +\renewcommand\subsubsection{ + \@smcsectionfalse + \@startsection + {subsubsection} + {3} + {\z@} + {-1.5ex \@plus -1ex \@minus -.2ex} + {6pt \@plus.2ex} + {\normalsize\it\raggedright} +} + +\def\@sect#1#2#3#4#5#6[#7]#8{ + \refstepcounter{#1} + \if@smcsection + \edef\@svsec{\csname the#1\endcsname.\hskip 0.6em} + \else + \edef\@svsec{\csname the#1\endcsname\hskip 0.6em} + \fi + \begingroup + \ifnum #2=1 + \bf\centering{\interlinepenalty \@M \@svsec\uppercase{#8}\par} + \else + \ifnum #2=2 + \bf\raggedright + \noindent{\interlinepenalty \@M \@svsec #8\par} + \else + \it\raggedright + \noindent{\interlinepenalty \@M \@svsec #8\par} + \fi + \fi + \endgroup + \csname #1mark\endcsname{#7}\addcontentsline + {toc}{#1}{\protect\numberline + \if@smcsection + {\csname the#1\endcsname.} + \else + {\csname the#1\endcsname} + \fi + #7} + \@tempskipa #5\relax + \@xsect{\@tempskipa} +} + +\newenvironment{acknowledgments}% +{% +\vskip 2.5ex {\normalsize\bf\raggedright Acknowledgments} +\vspace*{6pt} \\ +\noindent +}% +{% +\par +} + + +\bibliographystyle{IEEEtran} + +\def\thebibliography#1{ + \section{References}\list + {[\arabic{enumi}]}{ + \settowidth\labelwidth{[#1]}\leftmargin 1em + \advance\leftmargin\labelsep + \usecounter{enumi} + } + \def\newblock{\hskip .01em plus .01em minus .01em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax +} + +\let\endthebibliography=\endlist + +\long\def\@makecaption#1#2{ + \vskip 10pt + \setbox\@tempboxa\hbox{#1. #2} + \ifdim + \wd\@tempboxa >\hsize #1. #2\par + \else + \hbox + to\hsize{\hfil\box\@tempboxa\hfil} + \fi +} + +\def\fnum@figure{{\bf Figure\ \thefigure}} +\def\fnum@table{{\bf Table \thetable}} + +\flushbottom diff -r d9ac6e0d1daf -r e19c519e7e3f SMC2015latex/syncopation_toolkit.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SMC2015latex/syncopation_toolkit.tex Sun Apr 12 22:47:34 2015 +0100 @@ -0,0 +1,260 @@ +% ----------------------------------------------- +% Template for SMC 2012 +% adapted from the template for SMC 2011, which was adapted from that of SMC 2010 +% ----------------------------------------------- + +\documentclass{article} +\usepackage{smc2015} +\usepackage{times} +\usepackage{ifpdf} +\usepackage[english]{babel} +\usepackage{cite} +\usepackage{minted} + +%%%%%%%%%%%%%%%%%%%%%%%% Some useful packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%% See related documentation %%%%%%%%%%%%%%%%%%%%%%%%%% +%\usepackage{amsmath} % popular packages from Am. Math. Soc. Please use the +%\usepackage{amssymb} % related math environments (split, subequation, cases, +%\usepackage{amsfonts}% multline, etc.) +%\usepackage{bm} % Bold Math package, defines the command \bf{} +%\usepackage{paralist}% extended list environments +%%subfig.sty is the modern replacement for subfigure.sty. However, subfig.sty +%%requires and automatically loads caption.sty which overrides class handling +%%of captions. To prevent this problem, preload caption.sty with caption=false +%\usepackage[caption=false]{caption} +%\usepackage[font=footnotesize]{subfig} + + +%user defined variables +\def\papertitle{SYNPY: A PYTHON TOOLKIT FOR SYNCOPATION MODELLING} +\def\firstauthor{Chunyang Song} +\def\secondauthor{Marcus Pearce} +\def\thirdauthor{Christopher Harte} + +% adds the automatic +% Saves a lot of ouptut space in PDF... after conversion with the distiller +% Delete if you cannot get PS fonts working on your system. + +% pdf-tex settings: detect automatically if run by latex or pdflatex +\newif\ifpdf +\ifx\pdfoutput\relax +\else + \ifcase\pdfoutput + \pdffalse + \else + \pdftrue +\fi + +\ifpdf % compiling with pdflatex + \usepackage[pdftex, + pdftitle={\papertitle}, + pdfauthor={\firstauthor, \secondauthor, \thirdauthor}, + bookmarksnumbered, % use section numbers with bookmarks + pdfstartview=XYZ % start with zoom=100% instead of full screen; + % especially useful if working with a big screen :-) + ]{hyperref} + %\pdfcompresslevel=9 + + \usepackage[pdftex]{graphicx} + % declare the path(s) where your graphic files are and their extensions so + %you won't have to specify these with every instance of \includegraphics + \graphicspath{{./figures/}} + \DeclareGraphicsExtensions{.pdf,.jpeg,.png} + + \usepackage[figure,table]{hypcap} + +\else % compiling with latex + \usepackage[dvips, + bookmarksnumbered, % use section numbers with bookmarks + pdfstartview=XYZ % start with zoom=100% instead of full screen + ]{hyperref} % hyperrefs are active in the pdf file after conversion + + \usepackage[dvips]{epsfig,graphicx} + % declare the path(s) where your graphic files are and their extensions so + %you won't have to specify these with every instance of \includegraphics + \graphicspath{{./figures/}} + \DeclareGraphicsExtensions{.eps} + + \usepackage[figure,table]{hypcap} +\fi + +%setup the hyperref package - make the links black without a surrounding frame +\hypersetup{ + colorlinks,% + citecolor=black,% + filecolor=black,% + linkcolor=black,% + urlcolor=black +} + + +% Title. +% ------ +\title{\papertitle} + +% Authors +% Please note that submissions are NOT anonymous, therefore +% authors' names have to be VISIBLE in your manuscript. +% +% Single address +% To use with only one author or several with the same address +% --------------- +%\oneauthor +% {\firstauthor} {Affiliation1 \\ % +% {\tt \href{mailto:author1@smcnetwork.org}{author1@smcnetwork.org}}} + +% Two addresses +% -------------- +\threeauthors + {\firstauthor} {Queen Mary, University of London \\ % + {\tt \href{mailto:dr.chunyang.song@gmail.com}{dr.chunyang.song@gmail.com}}} + {\secondauthor} {Queen Mary, University of London \\ % + {\tt \href{mailto:marcus.pearce@qmul.ac.uk}{marcus.pearce@qmul.ac.uk}}} + {\thirdauthor} {University of York \\ % + {\tt \href{mailto:christopher.harte@york.ac.uk}{christopher.harte@york.ac.uk}}} + +% Three addresses +% -------------- + % \threeauthors + % {\firstauthor} {Affiliation1 \\ % + % {\tt \href{mailto:author1@smcnetwork.org}{author1@smcnetwork.org}}} + % {\secondauthor} {Affiliation2 \\ % + % {\tt \href{mailto:author2@smcnetwork.org}{author2@smcnetwork.org}}} + % {\thirdauthor} { Affiliation3 \\ % + % {\tt \href{mailto:author3@smcnetwork.org}{author3@smcnetwork.org}}} + + +% ***************************************** the document starts here *************** +\begin{document} +% +\capstartfalse +\maketitle +\capstarttrue +% +\begin{abstract} + +talk about a syncopation toolkit + +\end{abstract} +% + +\section{Introduction}\label{sec:introduction} + +% \url{http://www.maynoothuniversity.ie/smc15}. + +bars + + +\section{MIDI Input}\label{sec:midi} + +\cite{Taylor89MusicTheory} + +\section{Text Input}\label{sec:textinput} + +\begin{table*} +\small{ +\begin{minted}[frame=single,framesep=10pt]{console} + ::= [] | + + ::= "\n" | "\n" + + ::= [] [] "\n" + + ::= "#" + + ::= | [] | + + ::= [] [] [] + + ::= "QPM{" "}" + + ::= "TPQ{" "}" + + ::= "T{" "/" "}" + + ::= "V{" "}" | "Y{" "}" + + ::= | "," + + ::= "(" "," "," ")" + + ::= | "," + + ::= "0" | "1" | "0." + + ::= | + + ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" +\end{minted} +} +\caption{Syntax of rhythm text format Backus-Naur Form} +\label{ta:BNF} +\end{table*} + +% \section{Page size and format}\label{sec:page_size} + +% \begin{equation} +% E=mc^{2+\delta}. +% \label{eq:Emc2} +% \end{equation} +% Refer to equations like so: +% As (\ref{eq:Emc2}) shows, +% I do not completely trust Special Relativity. + +% \subsection{Figures, Tables and Captions} +% \begin{table}[t] +% \begin{center} +% \begin{tabular}{|l|l|} +% \hline +% String value & Numeric value \\ +% \hline +% Hej SMC & 2015 \\ +% \hline +% \end{tabular} +% \end{center} +% \caption{Table captions should be placed below the table, exactly like this, +% but using words different from these.} +% \label{tab:example} +% \end{table} + + + +% Always refer to tables and figures in the main text, for example: +% see Fig. \ref{fig:example} and \tabref{tab:example}. +% Figures and tables may extend across both columns to a maximum width of 17.2cm. + + + +% \begin{figure}[t] +% \centering +% \includegraphics[width=0.6\columnwidth]{figure} +% \caption{Figure captions should be placed below the figure, +% exactly like this. +% When you come to SMC2015, you will +% understand why there is a large hand +% planted atop Copenhagen.\label{fig:example}} +% \end{figure} + + + + + + + +\section{Conclusions} + +some conclusions + +% +\begin{acknowledgments} +You may acknowledge people, projects, +funding agencies, etc. +which can be included after the second-level heading +``Acknowledgments'' (with no numbering). +\end{acknowledgments} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%bibliography here +\bibliography{csong.bib} + +\end{document}