This commit is contained in:
Josia Pietsch 2022-03-24 11:49:43 +01:00
parent 5a54a11f59
commit ccb1819dfd
9 changed files with 1184 additions and 110 deletions

Binary file not shown.

58
abc/README Normal file
View file

@ -0,0 +1,58 @@
The abc package lets you include lines of music written in the ABC Plus
language (http://abcplus.sourceforge.net).
This is version 2.0b of the package (a maintenance release)
Copyright 2005-2016 Enrico Gregorio
This program is provided under the terms of the
LaTeX Project Public License distributed from CTAN
archives in directory macros/latex/base/lppl.txt.
Author: Enrico Gregorio
Enrico dot Gregorio at univr dot it
This work has the LPPL maintenance status "author-maintained".
This work consists of the following files:
README (this file)
abc.dtx
abc.ins
abc.pdf
and of the derived files
abc.sty
mup.sty
example.tex
poll.abc
mupexa.tex
simple.mup
To install the distribution:
o run "latex abc.ins"
o run "latex -shell-escape example.tex" for a test
o move "abc.sty" and "mup.sty" to locations where LaTeX will
find it (the FAQ on CTAN in /help/uktug-FAQ gives more
information about this magic place)
Please note that you need, on your system, the
utilities "abcm2ps" (http://abcplus.sourceforge.net),
either "ps2eps" (which comes with TeX Live) or "ps2epsi"
(which comes with Ghostscript), and epstopdf (which
comes with TeX Live) if you use pdflatex.
If you want to compile the Mup examples, you need the
utility "mup" (http://www.arkkra.com), along with the
Postscript utilities mentioned above.
Note also that you must enable "shell escape" on your
TeX system via the command line switch (at least); see
your distribution's documentation. However, this is not
strictly necessary in order to use the package, see the
documentation.
2016/05/15
Enrico Gregorio

824
abc/abc.dtx Normal file
View file

@ -0,0 +1,824 @@
% \iffalse meta-comment
%
% Copyright (C) 2005-2015 by Enrico Gregorio
% <Enrico dot Gregorio at univr dot it>
% -------------------------------------------------------
%
% This file may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.2 of this license
% or (at your option) any later version. The latest version of this
% license is in:
%
% http://www.latex-project.org/lppl.txt
%
% and version 1.2 or later is part of all distributions of LaTeX
% version 1999/12/01 or later.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{abc.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{abc}
%<*package>
[2016/05/15 v2.0b Enrico Gregorio]
%</package>
%<*driver>
\documentclass{ltxdoc}
\usepackage{verbatim}
\newenvironment{smallverb}{\footnotesize\verbatim}{\endverbatim}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
\DocInput{abc.dtx}
\end{document}
%</driver>
% \fi
%
% \CheckSum{416}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
% Digits \0\1\2\3\4\5\6\7\8\9
% Exclamation \! Double quote \" Hash (number) \#
% Dollar \$ Percent \% Ampersand \&
% Acute accent \' Left paren \( Right paren \)
% Asterisk \* Plus \+ Comma \,
% Minus \- Point \. Solidus \/
% Colon \: Semicolon \; Less than \<
% Equals \= Greater than \> Question mark \?
% Commercial at \@ Left bracket \[ Backslash \\
% Right bracket \] Circumflex \^ Underscore \_
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
% \changes{v2.0b}{2016/05/15}{Use shellesc}
%
% \changes{v2.0a}{2015/09/09}{Fixed gobbling of leading lines that
% start with \%}
%
% \changes{v2.0}{2008/03/03}{Many changes, in order to allow for Mup
% support; added saveall and nosaveall options}
%
% \changes{v1.1}{2007/03/27}{Added \cs{endgroup} when the warning for
% a non existent file is issued}
%
% \changes{v1.0}{2006/03/22}{After long delay decided to publish it}
%
% \changes{v0.7}{2005/11/21}{Corrected some errors from previous
% version; changed `abcinput' to support keyword-value pairs like
% the environment; added the production of a batch file when the
% `noshellescape' option is active; improved the documentation}
%
% \changes{v0.7beta}{2005/11/19}{Added the `postoptions' and `width'
% keywords}
%
% \changes{v0.6}{2005/11/18}{Changed options: erased `nix' and
% `dos', added `ps2epsidos' to correct a mistake}
%
% \changes{v0.5}{2005/11/13}{Added the interface to keyval}
%
% \changes{v0.4}{2005/11/10}{Initial version; too many things changed}
%
% \changes{v.0.1-0.3}{2005/11/01}{Very preliminar versions}
%
% \GetFileInfo{abc.dtx}
%
% \DoNotIndex{\newcommand,\newenvironment,\def,\ifpdf,\begin}
% \DoNotIndex{\DeclareOption,\ExecuteOptions,\RequirePackage}
% \DoNotIndex{\renewcommand,\else,\fi,\relax,\@bsphack,\@esphack}
% \DoNotIndex{\active,\AtEndOfPackage,\catcode,\centering}
% \DoNotIndex{\closeout,\comment,\do,\dospecials,\end,\endcomment}
% \DoNotIndex{\fbox,\gdef,\immediate,\includegraphics,\let}
% \DoNotIndex{\linewidth,\message,\newif,\newwrite,\openout}
% \DoNotIndex{\PackageWarning,\space,\the,\verbatim@line}
% \DoNotIndex{\verbatim@processline,\verbatim@start,\write}
% \DoNotIndex{\@makeother,\IfFileExists,\ProcessOptions}
% \DoNotIndex{\@ifnextchar,\define@key,\MessageBreak,\setkeys}
% \DoNotIndex{\stepcounter,\newcounter,\trivlist,\AtEndDocument}
% \DoNotIndex{\@empty,\edef,\csname,\endcsname,\edef,\begingroup}
% \DoNotIndex{\endgroup,\endtrivlist,\global,\if,\ifx,\item}
% \DoNotIndex{\PackageWarningNoLine,\PassOptionsToPackage}
% \DoNotIndex{\ProvidesPackage,\@arabic}
%
% \title{The \textsf{abc} package\thanks{This document corresponds to
% \textsf{abc}~\fileversion, dated \filedate.}}
%
% \author{Enrico Gregorio \\ \texttt{Enrico dot Gregorio at univr dot it}}
%
% \date{\filedate}
%
% \maketitle
%
% \section{Introduction}
% There are several ways to set music using \TeX{}, notably
% Musix\TeX{} and Lilypond. Both are very powerful and,
% consequently, a bit difficult to learn and to use.
%
% From the point of view of notation, the ABC
% system\footnote{\texttt{http://staffweb.cms.gre.ac.uk/\char`\~c.walshaw/abc/}}
% is much simpler. A recent extension of this language, called
% ABC~Plus\footnote{\texttt{http://abcplus.sourceforge.net}}, allows
% for setting multiple staves and polyphony. One of the best programs
% for converting these notations into sheet music is
% \texttt{abcm2ps}, which can take an ABC or ABC~Plus file and
% transform it into a PostScript\texttrademark{} file.
%
% The purpose of this package is to allow \LaTeX{} users to include in
% their documents small excerpts of music written directly in
% ABC (Plus). It exploits the \verb|\write18| technique available with
% the Web2C implementation of the \TeX{} system and free utilities
% like \texttt{ps2eps}, \texttt{ps2epsi} and \texttt{epstopdf}. From
% version 2.0b we check the existence of the \textsf{shellesc} package
% in order to be compatible with Lua\TeX.
%
% This package can be used both with \LaTeX{} and
% \textsc{pdf}\LaTeX{}, without any change in the user's source file.
% It employs also the package \textsf{keyval} by David Carlisle and
% ideas from the \textsf{verbatim} package in the \LaTeX{} tools.
%
% Martin Tarenskeen wrote me about possible support of Mup--Music
% Publisher\footnote{\texttt{http://www.arkkra.com}} and actually it
% was easy to add it along with some improvements partly suggested by
% him. Therefore the package now comes along with a new \textsf{mup}
% package; see section~\ref{mup}. I owe many thanks to Martin for
% testing the new version.
%
% We are studying whether it is feasible to extend support also to
% other music printing programs like Lilypond.
%
% \section{Usage}
% \DescribeEnv{abc}
% The only environment provided by this package is \verb|abc| with
% the following syntax:
% \begin{quote}
% \verb|\begin{abc}[|\meta{keyword}$=$\meta{value}\verb|...]|\\
% \meta{ABC Plus material}\\
% \verb|\end{abc}|
% \end{quote}
% The environment should be used only in LR-mode. Its output is set
% in a `center' environment. We give a list of the available
% keywords.
% \begin{description}
%
% \item[\normalfont\texttt{name=}\meta{name}:] \meta{name} is a name
% for the temporary file which will be output and massaged by
% \texttt{abcm2ps}. \emph{Warning}: the extension \texttt{.abc} is
% automatically added to the file name; esistent files with the same
% name will be silently erased. If the keyword is specified without a
% value, then the output file receives a unique name.
%
% \item[\normalfont\texttt{options=}\meta{options}:] \meta{options}
% are command line parameters to the \texttt{abcm2ps} utility; the
% default are `\texttt{-O= -c}'.
%
% \item[\normalfont\texttt{postoptions=}\meta{postoptions}:]
% \meta{postoptions} are possible command line options which, in
% \texttt{abcm2ps} syntax, go after the file name.
%
% \item[\normalfont\texttt{program=}\meta{program}:] \meta{program} is
% used to specify an alternative program to \texttt{abc2mps} (if
% existent). In this case users must specify completely the command
% line options, directly in \meta{program} or with \meta{options} and
% \meta{postoptions}. For example
% \begin{quote}
% \verb|\begin[name=song,program=abctoeps,options={-a -b}]|\\
% \verb|\begin[name=song,program={abc3ps -a -b}]|
% \end{quote}
% (assuming there is an \texttt{abc3ps} program).
%
% \item[\normalfont\texttt{width=}\meta{width}:] \meta{width} should
% be a dimension; it is best to express it as a fraction of
% \verb|\abcwidth|.
%
% \item[\normalfont\texttt{center}:] This is a boolean, either true
% or false; the default is true, if left flush alignment is preferred,
% specify \texttt{center=false}.
%
% \item[\normalfont\texttt{extension}:] This keyword seems practically
% useless, but is needed if one needs to input both ABC and Mup files
% in one and the same document. See later on.
% \end{description}
%
% \DescribeMacro{\abcinput}
% It is also possible to input an available ABC file. The syntax is
% \begin{quote}
% \verb|\abcinput|\oarg{options}\marg{name}
% \end{quote}
% where \meta{name} is the name of the file, without the extension
% which should be \texttt{.abc}. In the optional argument users can
% put keyword-value pairs as for the environment. Of course the
% keyword \texttt{name} is ignored here.
%
% \DescribeMacro{\abcwidth}
% Users have a minimum control (at least in this version) on how to
% include some lines of music. The only parameter they can modify is
% \verb|\abcwidth| with \verb|\renewcommand|. Its normal value is
% \verb|\linewidth|. The best thing to do is
% \begin{quote}
% \verb|\renewcommand{\abcwidth}{|\meta{fraction}\verb|\linewidth}|
% \end{quote}
% where \meta{fraction} is some number between $0$ and~$1$. Changing
% this parameter affects every subsequent music inclusion, obeying to
% the usual scoping rules. The width can be changed locally for the
% environment or the command with the method explained before.
%
% \DescribeMacro{\normalabcoutputfile}
% The name for the generic output files is ``\texttt{out-abc}''. In
% the (improbable) case that some file \texttt{out-abc.}\meta{ext} is
% present in the directory, users can redefine
% \verb|\normalabcoutputfile| as they like.
%
% \section{Package options}
% There are some package options, to control what is to be passed for
% subsequent processing.
%
% \subsection{\texttt{shellescape} and \texttt{noshellescape}}
% The option \texttt{shellescape} (default) means that some external
% programs will be called by \LaTeX{} to get the inclusion of the
% music lines. If you don't trust the automatic generation, or your
% \TeX{} implementation does not allow the trick with \verb|\write18|,
% then use \texttt{noshellescape}. In this case, a name should be
% specified for every `abc' environment, because otherwise ABC output
% files will be overwritten, since they receive the same generic name,
% by default. A file named \texttt{out-abc.sh} is produced,
% containing the commands to give for elaborating the music files.
%
% \subsection{\texttt{generate} and \texttt{nogenerate}}
% With the \texttt{generate} option (default) the ABC lines will be
% processed by the external programs. The \texttt{nogenerate} option
% can be used when the ABC sources have not changed, in order to
% increase speed. Also in this case, however, a name should be
% specified for all output ABC files.
%
% \subsection{\texttt{ps2epsi}, \texttt{ps2epsidos} and
% \texttt{ps2eps}}
% The option \texttt{ps2eps} (default) means that the \texttt{ps2eps}
% Perl script will be used for generating the EPS file for graphic
% inclusion. Specify the \texttt{ps2epsi} option if you prefer the
% \texttt{ps2epsi} program; specify \texttt{ps2epsidos} if you are on
% a system where the utility \texttt{ps2epsi} generates a file with
% three letter extension \texttt{.epi}.
%
% \subsection{\texttt{nosaveall} and \texttt{saveall}}
% The first is the default, but the second is called implicitly when
% the \texttt{noshellescape} is given. When the \texttt{saveall}
% option is active, every `abc' environment produces a unique output
% file; in other words, the \texttt{name} keyword, without value, is
% given for every environment. So the \texttt{noshellescape} option
% along with \texttt{generate} will not overwrite the output from
% unnamed environment. It is possible that, during the document's
% preparation, the numbers added to the default file name are out of
% synch, the process should converge. Note that with Lua\TeX{} the
% \texttt{nosaveall} option can produce errors, so \texttt{saveall} is
% enabled by default, with this engine.
%
%
% \section{Compiling documents}
% Users must give the option \texttt{-shell-escape} when compiling
% their documents, unless they chose the \texttt{nogenerate} package
% option or the \texttt{noshellescape}. Thus one of
% \begin{quote}
% \texttt{latex -shell-escape} \meta{\TeX{} file name}\\
% \texttt{pdflatex -shell-escape} \meta{\TeX{} file name}\\
% \texttt{simpdftex latex --extratexopts "-shell-escape"}
% \end{quote}
% should be used from the command line (or equivalent way, depending
% on operating system and distribution).
%
% \section{An example file}
% \iffalse
%<*example>
% \fi
% \begin{smallverb}
\documentclass[a4paper,12pt]{article}
\usepackage[generate,ps2eps]{abc}
\usepackage{mathptmx}
\begin{document}
\title{Example of ABC Plus in \LaTeX{}}
\author{Guido Gonzato}
\date{}
\maketitle
This is a short piece.
\medskip
\begin{abc}
X:4
T:Cronin's Hornpipe
R:hornpipe
S:Keenan and Glackin
E:7
M:C|
L:1/8
K:G
BA|GABc dBde|gage dega|bage dBGB|cABG A2BA|!
GABc dBde|gage dega|bage dBAB|G2G2 G2:|!
fg|afd^c d2ga|bged e2ga|(3bag (3agf gedB|(3cBA AG AcBA|!
GABc dBde|~g3e dega|bage dBAB|G2G2 G2:|!
\end{abc}
\medskip
This is another short piece, but we would like to keep the
ABC source in our directory.
\begin{abc}[name=jacky]
X:9
T:Jacky Tar
R:hornpipe
M:4/4
L:1/8
K:Edor
(Bd) | "Em" e2 ed efge | "G" d2 B2 B2 (dB) | "D" ABde faef | d2 A2 A2 (Bd) |
"Em" e2 ef g2 fe | "G" dB GB d2 (cB) | "D" AGFE DEFA | "Em" G2 E2 E2 :|
(GA) | "Em" BGEG BGEG | BAGF E2 (FG) | "D" BGEG BGEG | AGFE D2 (EF) |
"G" GFGB g2 (fe) | dBGB d2 (cB) | "D" AGFE DEFA | "Em" G2 E2 E2 :|
\end{abc}
\clearpage
And, finally, we want to set also the last piece; its ABC code
is already in our directory.
\medskip
\abcinput{poll}
\end{document}
% \end{smallverb}
% \iffalse
%</example>
% \fi
%
% This file is accompanied by a file \texttt{poll.abc}
% \iffalse
%<*abc>
% \fi
% \begin{smallverb}
X:12
T:Poll Ha'penny
T:Garra\'i na bhF\'eile\'og
R:hornpipe
H:The Irish title means "The Garden of Honeysuckles"
D:Mary Bergin: Feadoga Stain
D:Noel Hill agus Tony McMahon: I gCnoc na Grai
Z:id:hn-hornpipe-26
M:C|
L:1/8
K:Amix
(3GAB | =cAAG A2 (3AB=c | (3d=cB (3AGF G2 (3B^cd | ed^cA d^cAG | ~A3 G A2 de |
~f3 d ~e3 c | d2 (3Bcd efge | aged (3=cBA GB | ~A3 G A2:|
|: ef | ~g3 f gfef | g2 ga gedg | eaag a3 g | eaag a2 ag |
~f3 d ~e3 c | d2 (3Bcd efge | aged (3=cBA GB | ~A3 G A2 :|
% \end{smallverb}
% \iffalse
%</abc>
% \fi
%
% \section{Mup support}\label{mup}
% Everything we have said about ABC translates verbatim for Mup.
% Simply call the package with
% \iffalse
%<*verb>
% \fi
\begin{verbatim}
\usepackage{mup}
\end{verbatim}
% \iffalse
%</verb>
% \fi
% with options just like before, and substitute the string `mup' to
% every occurrence of `abc' in the preceding sections. The only
% differences are in the default command line options when calling the
% external program (they are \texttt{-F} for `mup').
%
% It is even possible to use both external programs in the same
% document. If this is desired, call the \textsf{abc} package and
% define a new environment for Mup inclusion as follows
% \iffalse
%<*verb>
% \fi
\begin{verbatim}
\newenvironment{mup}[1][]
{\renewcommand{\normalabcoutputfile}{out-mup}%
\abc[program=mup,options={-F},extension=mup,#1]}
{\endabc}
\newcommand{\mupinput}[2][]{%
\abcinput[program=mup,options={-F},extension=mup,#1]{#2}}
\end{verbatim}
% \iffalse
%</verb>
% \fi
%
% Here is an example with Mup.
%
% \iffalse
%<*example-mup>
% \fi
% \begin{smallverb}
\documentclass[a4paper,12pt]{article}
\usepackage[generate,ps2eps]{mup}
\usepackage{mathptmx}
\begin{document}
\title{Example of MUP in \LaTeX{}}
\author{Martin Tarenskeen}
\date{}
\maketitle
This is a short piece.
\medskip
\begin{mup}
1: a-;b-;c;d;
bar
1: e;f;g;a;
endbar
\end{mup}
\medskip
This is another short piece, but we would like to keep the
MUP source in our directory.
\begin{mup}[name=mymup]
score
staffs=2
time=6/8
beamstyle=4.,4.
staff 2
clef=bass
music
1: 8c;d;e;f;g;a;
2: 4.ceg;cfa;
repeatend
\end{mup}
\clearpage
And finally, we want to set also the last piece; its MUP code
is already in our directory.
\medskip
\mupinput{simple}
\end{document}
% \end{smallverb}
% \iffalse
%</example-mup>
% \fi
% This file is accompanied by a file \texttt{simple.mup}
% \iffalse
%<*mup>
% \fi
% \begin{smallverb}
score
staffs=2
time=6/8
beamstyle=4.,4.
staff 2
clef=bass
music
1: 8c;d;e;f;g;a;
2: 4.ceg;cfa;
repeatend
% \end{smallverb}
% \iffalse
%</mup>
% \fi
%
% \StopEventually{\PrintChanges\PrintIndex}
%
% \section{The implementation}
% After the usual stuff of package presentation, here are the actual
% macros. To begin with the option declarations and the defaults.
% The first options are boolean.
% \begin{macrocode}
%<*package>
\RequirePackage{ifluatex}
\newif\ifabc@shellescape
\newif\ifabc@generate
\newif\ifabc@warning
\newif\ifabc@saveall
\newif\ifabc@mup
\DeclareOption{mup}{\abc@muptrue}
\DeclareOption{noshellescape}{\abc@shellescapefalse\abc@warningtrue
\abc@savealltrue}
\DeclareOption{shellescape}{\abc@shellescapetrue}
\DeclareOption{nogenerate}{\abc@generatefalse}
\DeclareOption{generate}{\abc@generatetrue}
\DeclareOption{nosaveall}{\abc@saveallfalse}
\DeclareOption{saveall}{\abc@savealltrue}
% \end{macrocode}
% The following options control the external programs to use.
% \begin{macrocode}
\def\abc@epsext{eps}
\DeclareOption{ps2eps}{\def\abc@pscmd{ps2eps -f}}
\DeclareOption{ps2epsi}{\def\abc@pscmd{ps2epsi}\def\abc@epsext{epsi}}
\DeclareOption{ps2epsidos}{\def\abc@pscmd{ps2epsi}\def\abc@epsext{epi}}
% \end{macrocode}
% Now we declare the default options and call the user specified
% ones. Since Lua\TeX{} doesn't accept loading different PDF files
% with the same name, when this engine is used, the \texttt{saveall}
% option is enabled by default.
% \begin{macrocode}
\ExecuteOptions{generate,shellescape,nosaveall,ps2eps}
\ifluatex
\ExecuteOptions{saveall}
\fi
\ProcessOptions\relax
% \end{macrocode}
%
% Then we have to load some packages we need. The first one is to do
% verbatim output to a file without reinventing the wheel. Then the
% package for implementing keyword-value options; we have to take care
% of graphics inclusion, and to control whether we are using \LaTeX{}
% with DVI or PDF output.
% \begin{macrocode}
\RequirePackage{verbatim}
\RequirePackage{keyval}
\RequirePackage{graphicx}
\RequirePackage{ifpdf}
% \end{macrocode}
% Next we define some internal commands. First of all a boolean for
% issuing messages if necessary and a counter to assign unique names
% to output files
% \begin{macrocode}
\newif\ifabc@unprocessedfiles
\newcounter{abc@count}
% \end{macrocode}
% We choose to give explicitly the extensions to the graphics files,
% since some user could prefer \texttt{ps2epsi}. Everything is
% doubled for Mup support.
% \begin{environment}{mup}
% \begin{macro}{\mupinput}
% \begin{macrocode}
\ifabc@mup
\newcommand{\abc@cmd}{mup} % virtually no choice
\newcommand{\abc@parm}{-F} % -F MUST stay
\newcommand{\abc@epstopdfcmd}{epstopdf}
\newcommand{\abc@pdfext}{pdf}
\def\normalabcoutputfile{out-mup}
\def\normalmupoutputfile{\normalabcoutputfile}
\def\mup{\abc}
\def\endmup{\endabc}
\def\mupinput{\abcinput}
\def\abc@ext{.mup}
\def\abc@packagename{mup}
\else
\newcommand{\abc@cmd}{abcm2ps} % virtually no choice
\newcommand{\abc@parm}{-O= -c} % -O= MUST stay
\newcommand{\abc@epstopdfcmd}{epstopdf}
\newcommand{\abc@pdfext}{pdf}
\def\normalabcoutputfile{out-abc}
\def\abc@ext{.abc}
\def\abc@packagename{abc}
\fi
\def\abc@tempfile{\normalabcoutputfile}
\def\abc@opt{}
\let\abc@postopt\@empty
\ifpdf
\let\abc@finalext\abc@pdfext
\else
\let\abc@finalext\abc@epsext
\fi
\newif\ifabc@center
\abc@centertrue
% \end{macrocode}
% \end{macro}
% \end{environment}
% The following is the only parameter the user is authorized to
% tamper with; it has an alias for Mup.
% \begin{macrocode}
\newcommand{\abcwidth}{\linewidth} % only fractions of \linewidth
\let\mupwidth\abcwidth
% \end{macrocode}
% \begin{macro}{\abc@startgen}
% \begin{macro}{\abc@finishgen}
% Now something directly borrowed from the package \textsf{verbatim}.
% We declare an output stream and define two macros which will be
% called by the \texttt{abc} environment or by the \verb|\abcinput|
% command in case we are generating the graphics files. The macro
% \verb|\abc@startgen| then passes the control to \verb|\abc@process|
% which is different, according to the options given to the package.
% \begin{macrocode}
\newwrite\abc@out
\def\abc@startgen{%
\@bsphack
\immediate\openout\abc@out\abc@tempfile\abc@ext
\let\do\@makeother\dospecials
\catcode`\^^M\active \catcode`\^^I=12
\def\verbatim@processline{%
\immediate\write\abc@out
{\the\verbatim@line}}%
\verbatim@start}
\def\abc@finishgen{%
\immediate\closeout\abc@out
\@esphack
\abc@process
}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\abc@doshellcommand}
% \begin{macro}{\abc@nodoshellcommand}
% We define a macro for the external massaging of the ABC files and
% another one for the case the user doesn't trust or have available
% the \verb|\write18| trick; the second one spits out a very simple
% shell script which can be used to take care of the compilation; this
% file is probably compatible with all systems having a command line
% interface. Then we check the options again and define the commands
% that really do the job.
% \begin{macrocode}
\ifluatex
\IfFileExists{shellesc.sty}
{\RequirePackage{shellesc}\let\abc@shell\ShellEscape}
{\def\abc@shell{\immediate\write18}}
\else
\def\abc@shell{\immediate\write18}
\fi
\def\abc@doshellcommand{%
\abc@shell{%
\ifabc@mup
\abc@cmd\space
\abc@opt\space
\abc@parm\space
\abc@tempfile\abc@ext\space
\else
\abc@cmd\space
\abc@parm\space
\abc@opt\space
\abc@tempfile\abc@ext\space
\fi
\ifx\abc@postopt\@empty
\else\space\abc@postopt\fi
}%
\abc@shell{%
\abc@pscmd\space\abc@tempfile.ps
}%
\ifpdf
\abc@shell{%
\abc@epstopdfcmd\space\abc@tempfile.\abc@epsext
}%
\fi
}
\def\abc@nodoshellcommand{%
\immediate\write\abc@outsh{%
\abc@cmd\space
\abc@parm\space
\abc@opt\space
\abc@tempfile\abc@ext\space
\ifx\abc@postopt\@empty
\else\space\abc@postopt\fi}%
\immediate\write\abc@outsh{%
\abc@pscmd\space\abc@tempfile.ps}%
\ifpdf
\immediate\write\abc@outsh{%
\abc@epstopdfcmd\space\abc@tempfile.\abc@epsext}%
\fi
}
% \end{macrocode}
% We use a conditional to emit a message at the end of the
% compilation if some file has not been found and the
% \texttt{nogenerate} option was chosen.
% \begin{macrocode}
\AtEndDocument{%
\ifabc@warning\ifabc@unprocessedfiles
\PackageWarningNoLine{\abc@packagename}{%
\ifabc@shellescape
You have set the `shellescape' option, but you ran%
\MessageBreak
(pdf)latex without the `-shell-escape' command line%
\MessageBreak
option. Fix it either with the `noshellescape' option%
\MessageBreak
in your document or the correct call of (pdf)latex%
\else
Remember to generate the [eps,pdf] files before compiling%
\MessageBreak
again. Use the file \abc@tempfile.sh for a list or as a script%
\fi}%
\fi\fi}
% \end{macrocode}
% \end{macro}
% \end{macro}
% Now we define the macro responsible for the massaging of the ABC
% files. This is a good moment for inizializing the writing of the
% shell script, when needed.
% \begin{macro}{\abc@process}
% \begin{macrocode}
\ifabc@shellescape
\let\abc@process\abc@doshellcommand
\else
\newwrite\abc@outsh
\immediate\openout\abc@outsh\abc@tempfile.sh
\AtEndDocument{\closeout\abc@outsh}
\let\abc@process\abc@nodoshellcommand
\fi
% \end{macrocode}
% \end{macro}
% \begin{macro}{\abc@start}
% \begin{macro}{\abc@finish}
% We now define how to start and finish; if no generation is required,
% the ABC lines are skipped like a comment (thanks again to the
% \textsf{verbatim} package).
% \begin{macrocode}
\ifabc@generate
\let\abc@start\abc@startgen
\let\abc@finish\abc@finishgen
\else
\let\abc@start\comment
\let\abc@finish\endcomment
\fi
% \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{environment}{abc}
% \begin{macro}{\abcinput}
% Finally, we define the environment and the command. Some commands
% are initialized here; the name of the temporary file is, by default,
% ``out-abc'' which should not clobber any existing file.
% \begin{macrocode}
\def\abc{\@makeother\%\@ifnextchar[\abc@grab{\abc@grab[]}}
\define@key{abc}{name}[]{%
\if!#1!\stepcounter{abc@count}%
\edef\abc@tempfile{\normalabcoutputfile-\@arabic\c@abc@count}%
\else
\def\abc@tempfile{#1}%
\fi
}
\define@key{abc}{options}{\def\abc@opt{#1}}
\define@key{abc}{postoptions}{\def\abc@postopt{#1}}
\define@key{abc}{program}{\def\abc@cmd{#1}\let\abc@parm\@empty}
\define@key{abc}{width}{\def\abc@width{#1}}
\define@key{abc}{center}[true]{\csname abc@center#1\endcsname}
\define@key{abc}{extension}{\def\abc@ext{.#1}}
\def\abc@grab[#1]{\let\abc@width=\abcwidth
\ifabc@saveall
\setkeys{abc}{name,#1}%
\else
\setkeys{abc}{#1}%
\fi\abc@start}
% \end{macrocode}
% The final part of the environment; we do the processing, if
% required and then include the graphics file. If none is found, the
% simple name is used, to recall that some processing is to be done.
% \begin{macrocode}
\def\endabc{%
\abc@finish
\trivlist\item[]\ifabc@center\centering\fi
\IfFileExists{\abc@tempfile.\abc@finalext}
{\includegraphics[width=\abc@width]{\abc@tempfile.\abc@finalext}}%
{\global\abc@warningtrue\fbox{\abc@tempfile}%
\global\abc@unprocessedfilestrue}%
\endtrivlist
}
% \end{macrocode}
% The command version is similar. The only difference is that we
% issue a warning if the named file does not exist.
% \begin{macrocode}
\def\abcinput{\@ifnextchar[\abc@grabinput{\abc@grabinput[]}}
\def\abc@grabinput[#1]#2{\let\abc@width=\abcwidth\setkeys{abc}{#1}%
\begingroup\def\abc@tempfile{#2}%
\IfFileExists{\abc@tempfile\abc@ext}
{%
\abc@process
\begin{center}
\IfFileExists{\abc@tempfile.\abc@finalext}
{\includegraphics[width=\abc@width]{\abc@tempfile.\abc@finalext}}%
{\fbox{\abc@tempfile}}%
\end{center}%
\endgroup
}
{\PackageWarning{\abc@packagename}{No file \abc@tempfile\abc@ext\space found}}%
}
%</package>
% \end{macrocode}
% \end{macro}
% \end{environment}
% \begin{macrocode}
%<*package-mup>
\ProvidesPackage{mup}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{abc}}
\ProcessOptions\relax
\RequirePackage[mup]{abc}
%</package-mup>
% \end{macrocode}
% \Finale

63
abc/abc.ins Normal file
View file

@ -0,0 +1,63 @@
%%
%% abc.ins
%% Copyright 2006-2016 Enrico Gregorio
%%
%% This program is provided under the terms of the
%% LaTeX Project Public License distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt.
%%
%% Author: Enrico Gregorio
%% Enrico dot Gregorio at univr dot it
%%
%% This work has the LPPL maintenance status "author-maintained".
%%
%% This file will generate fast loadable files and documentation
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
%% --------------- start of docstrip commands ------------------
%%
\input docstrip
\preamble
Copyright 2006-2016 Enrico Gregorio
This program is provided under the terms of the
LaTeX Project Public License distributed from CTAN
archives in directory macros/latex/base/lppl.txt.
Author: Enrico Gregorio
Enrico dot Gregorio at univr dot it
This work has the LPPL maintenance status "author-maintained".
\endpreamble
\keepsilent
\askforoverwritefalse
\Msg{*** Generating the package files ***}
\generate{\file{abc.sty}{\from{abc.dtx}{package}}%
\file{example.tex}{\from{abc.dtx}{example}}%
\file{mup.sty}{\from{abc.dtx}{package-mup}}%
\file{mupexa.tex}{\from{abc.dtx}{example-mup}}%
\nopreamble\nopostamble
\file{poll.abc}{\from{abc.dtx}{abc}}%
\file{simple.mup}{\from{abc.dtx}{mup}}%
}
\Msg{***********************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the following}
\Msg{* files into a directory searched by TeX:}
\Msg{*}
\Msg{* \space\space abc.sty}
\Msg{*}
\Msg{*}
\Msg{* To produce the documentation on abc's code run the}
\Msg{* file ending with `.dtx' through (pdf)LaTeX.}
\Msg{*}
\Msg{* Happy TeXing}
\Msg{***********************************************************}
\endbatchfile

BIN
abc/abc.pdf Normal file

Binary file not shown.

234
inputs/intervalle.tex Normal file
View file

@ -0,0 +1,234 @@
\section{Intervalle}
\begin{definition}[Schall]
\vocab{Schall} ist eine Funktion $f: \text{Zeit} \to \text{Druck}$ bzw. $f: \text{Zeit} \to \text{Luftbewegung}$
\end{definition}
\begin{definition}[Ton]
Ein \vocab{Ton} entspricht einer Schwingungsfrequenz.
\end{definition}
\begin{observe}
Die Funktion $\sin(2\pi \cdot f \cdot t)$ ist periodisch mit $T_0$ genau dann, wenn $f = k \cdot \frac{1}{T_0}$ für ein $k \in \Z$.
\end{observe}
\begin{definition}[Lineares Modell der MTT]
Jede Funktion mit Periode $T_0$ kann als Summe von Funktionen der Form $a \cdot \sin(2\pi \cdot f \cdot t), a\cdot \cos(2\pi\cdot f\cdot t)$, $f = k \cdot \frac{1}{T_0}, a \in \R, k \in \Z$ dargestellt werden.
Für $k=1$ ergibt sich die \vocab{Grundfrequenz} $\frac{2\pi}{T}$, für $k \ge 2$ reden wir von \vocab[Oberton]{Obertönen}.
\end{definition}
\todo{Obertöne Saiteninstrument (Alle Obertöne), Flöte, Querflöte (Obertöne nur für $k \in 2\N + 1$)}
\begin{table}[htpb]
\centering
\caption{Obertöne}
\label{tab:obertoene}
\begin{tabular}{clcccc}
$k$ & Ton & Frequenz-& Halb- & EDO12 & Reine Intervalle\\
& & verhältnis & töne& &(Cent) \\
\hline
$1$ & C \\
& $\shortdownarrow$ Oktave & $2$ & $10$ & $2,000$ & $1200$\\
$2$ & C \\
& $\shortdownarrow$ Quinte & $\frac{3}{2}$ & $7$ & $1,4989$ & $702$\\
$3$ & G \\
&$\shortdownarrow$ Quarte & $\frac{4}{3}$ & $5$ & $1,3348$ & $498$\\
$4$ & C\\
&$\shortdownarrow$ gr. Terz & $\frac{5}{4}$ & $4$ & $1,2599$ & $386$\\
$5$ & E \\
&$\shortdownarrow$ kl. Terz & $\frac{6}{5}$ & $3$ & $1,1892$ & $316$\\
$6$ & G\\
&$\shortdownarrow$ & $\frac{7}{6}$ & $3$? & & $267$\\
$7$ & B ? \\
&$\shortdownarrow$ & $\frac{8}{7}$ & $2$? & & $231$\\
$8$ & C\\
&$\shortdownarrow$ gr. Sekunde & $\frac{9}{8}$ & $2$ & $1,1225$ & $204$\\
$9$ & D \\
&$\shortdownarrow$ gr. Sekunde & $\frac{10}{9}$ & 2 & $1,1225$& $182$\\
$10$ & E \\
\end{tabular}
\end{table}
\begin{observe}
$\frac{9}{8} = \frac{10}{9}$ ???
\end{observe}
Es ergeben sich außerdem
\begin{table}[htpb]
\centering
\caption{Intervalle}
\label{tab:intervale}
\begin{tabular}{lll}
Intervall & Verhältnis & Reines Intervall (Cent)\\
gr. Sexte & $\frac{5}{3}$ &$884$\\
kl. Sexte & $\frac{8}{5}$ &$814$\\
kl. Septime & $\frac{9}{5} \approx \frac{7}{4}$ & $1018 \approx 969$\\
Tritonus & $\sqrt{2}$
\end{tabular}
\end{table}
\begin{remark}
Es ergibt sich als Frequenzverhältnis (in Bezug auf C)
für gis (über E) $25:16$
und für as $8:5$. Diese Töne sind hier also tatsächlich verschieden.
\end{remark}
\begin{remark}
Auf der Violine spielt man häufig trotzdem das gis höher als das as.
\end{remark}
\todo{Skizze: Versuch der Konstruktion eines Tonvorrates mit sauberen Intervallen}
Buchempfehlung: R. Duffin - ``How equal temperament ruined harmony - and why you should care''.
\todo{Bild Flageoletttöne}
Da das leider nicht genau aufgeht definieren wir als atomares Intervall:
\begin{definition}[Halbton]
\vocab{Halbton} $\coloneqq 2^{\frac{1}{12}}$.
Dieses Stimmungssystem nennt sich \vocab{EDO12} oder auch \vocab{12-TET}.
\end{definition}
Dementsprechend ist ein Intervall mit $n$ Halbtonschritten definiert als $2^{\frac{n}{12}}$.
Um kleinere Tonabstände beschreiben zu können definieren wir ferner:
\begin{definition}[Cent]
\vocab{Cent} $\coloneqq 2^{\frac{1}{1200}}$
\end{definition}
\begin{remark}
Ein Unterschied von $10ct.$ ist hörbar, im direkten Vergelcih konnten wir im Kurs auch Unterschiede von $3ct.$ hören. \todo{Recherchieren}
\url{https://sevish.com/scaleworkshop/}
\end{remark}
% Tag 3
\begin{definition}[Dur]
\vocab{Dur} bezeichnet sowohl eine Tonart, als auch den Akkord, der sich aus den Tönen der 1., 3. und 5. Stufe dieser Tonart ergibt.
%\begin{abc}[name=c-dur]
% X: 1 % start of header
% K: C % scale: C major
% "Text"c2 G4 | (3FED c4 G2 |
%\end{abc}
\todo{C-Dur-Tonleiter}
Ein Dur-Akkord besteht aus einer großen und einer kleinen Terz, d.h. die Töne haben Frequenzverhältnisse von $1, \frac{5}{4}, \frac{5}{4} \cdot \frac{6}{5} = \frac{6}{4}$.
\end{definition}
\begin{definition}[Moll]
\todo{C-Moll-Tonleiter}
Ein Moll-Akkord besteht aus einer kleinen und einer großen Terz, d.h. die Töne haben Frequenzverhältnisse von $1, \frac{6}{5}, \frac{3}{2}$.
\end{definition}
\begin{definition}[Septakkord]
Ein \vocab{Septakkord} fügt zusätzlich noch eine kleine Terz hinzu.
Als Septime ergibt sich ein Frequenzverhältnis von $\frac{9}{5}$, $\frac{7}{4}$ oder $\frac{16}{9}$, je nachdem von wo aus der siebte Ton gesucht wird. Für Dur wirkt dabei $\frac{7}{4}$ (Septime zum Grundton) sinnvoller (?)\footnote{Unter der Annahme, dass der Dur-Dreiklang durch die Obertonreihe motiviert ist.}, für Moll $\frac{9}{5}$.
\end{definition}
\begin{problem}
Wir suchen ein \vocab{equal temperament} / eine \vocab{gleichstufige Stimmung}, die die wichtigsten Intervalle möglichst gut approximiert.
\end{problem}
Die ``Wichtigkeit'' eines Intervalls definieren wir dabei über die Größe des Nenners, d.h. die Intervalle sind in absteigender Wichtigkeit: Oktave, Quinte, Quarte, gr. Terz, \dots
Falls sowohl Oktaven als auch Quinten übereinstimmen sollen, bräuchten wir $a,b \in \N_{>0}$, so dass $2^a = \left( \frac{3}{2} \right)^b$. Solche existieren offenbar nicht.
Reelle Lösungen existieren, mit $\frac{b}{a} = \frac{\log 2}{\log \frac{3}{2}}$. Mit Hilfe von \vocab[Kettenbruch]{Kettenbrüchen} finden wir möglichst gute Näherungen.
\begin{notation}[Kettenbruchzerlegung]
Wir schreiben $[a;b,c,d,\ldots]$, $a \in \Z, b,c,d, \ldots \in \N_{+}$ für
\[
a + \frac{1}{b + \frac{1}{c + \frac{1}{d + \ldots}}}
\]
\end{notation}
Eine Näherung ist besser, je größer die erste weggelassene Zahl ist. Näherungen sich abwechselnd obere und untere Schranken.
\begin{example}
\[
\sqrt{2} = [1; \overline{2}] = 1 + \frac{1}{2 + \frac{1}{2 + \frac{1}{2 + \frac{1}{2 + \ldots}}}}
\]
da $\sqrt{2} -1 = \frac{1}{\sqrt{2} +1} = \frac{1}{2 + (\sqrt{2} -1)}$.
Als Näherung ergibt sich beispielsweise
\[
[1;2,2,2] = 1+ \frac{1}{2+ \frac{1}{2 + \frac{1}{2}}} = \frac{17}{12} = 1,41\overline{6}
\]
\end{example}
Die Kettenbruchentwicklung von $\frac{\log 2}{ \log \frac{3}{2}}$ ist $[1; 1,2,2,3,1,5,2,23, \ldots]$.
Näherungen sind:
\begin{itemize}
\item $[1;1] = 2$
Für die Quinte ergibt sich $2^{\frac{1}{2}} \approx 1,4142\ldots$
\item $[1;1,2] = \frac{5}{3}$ (ein Halbtonschritt Abweichung, Pentatonik)
Quinte: $2^{\frac{5}{3}} \approx 1,5157\ldots$
Die große Terz wird durch eine Quarte approximiert, $2^{\frac{2}{5}} = 1,319\ldots$
\item $[1;1,2,2] = \frac{12}{7}$ (EDO12),
Quinte: $2^{\frac{7}{12}} \approx 1,49840\ldots$
Gr. Terz: $2^{\frac{4}{12}} \approx 1,2599\ldots$
Kl. Septime: $2^{\frac{10}{12}} \approx 1,781\ldots$
\item $[1;1,2,2,3] = \frac{41}{24}$
Quinte: $2^{\frac{24}{41}} \approx 1,50042\ldots$
Gr. Terz: $2^{\frac{13}{41}} \approx 1,2458\ldots$
\item $[1;1,2,2,3,1] = \frac{53}{31}$
Quinte: $2^{\frac{31}{53}} \approx 1,49994\ldots$
Gr. Terz: $2^{\frac{17}{53}} \approx 1,24898\ldots$
Kl. Septime: $2^{\frac{43}{53}} \approx 1,7548\ldots$
\item $[1;1,2,2,3,1,5] = \frac{306}{179}$
Quinte: $2^{\frac{197}{306}} \approx 1,5000050\ldots$
\item $[1;1,2,2,3,1,5,2] = \frac{665}{389}$
\end{itemize}
Das optimiert zunächst nur Oktaven und Quinten. Da Quarten der Rest einer Quinte zur Oktave sind, werden diese ebenfalls gut approximiert.
Videos zu EDO53: \url{https://www.youtube.com/watch?v=ILcgB_kOWzM}, \url{https://www.youtube.com/watch?v=T5OvAjzWF2Y}, \url{https://www.youtube.com/watch?v=xVZy9GUeMqY}
Eine große Terz lässt sich durch Quinten erreichen, indem man 4 quinten nach oben und 2 Oktaven nach unten geht. Als Frequenzverhältnis ergibt sich dann $\left( \frac{3}{2} \right)^4 \cdot \frac{1}{2^2} = \frac{81}{64}$. Die Abweichung $\frac{81}{80}$ zum Frequenzverhältnis $\frac{5}{4}$ wird als \vocab{syntonisches Komma} bezeichnet ($21,5ct.$).
In EDO53 entspricht ein Tonschritt ($22,6ct.$ ) in etwa dem syntonischen Komma.
\begin{remark}[Bohlen-Pierce-Skala]
$3^{\frac{k}{13}}, k \in \Z$. Ein einzelner Schritt liegt zwischen einem Halbton und einem Ganzton. Faktor $3$ und Faktor $5$ werden gut approximiert, aber es gibt keine sinnvolle Oktaven.
``Ich will das jetzt nicht werten, aber ich würde es als experimentell bezeichnen.''
\end{remark}
\begin{remark}
In der Musik aller Kulturen findet sich das Konzept einer Oktave.
\end{remark}

View file

@ -18,15 +18,15 @@
\begin{figure} %\begin{figure}
\centering % \centering
\begin{tikzcd} \begin{tikzcd}
\text{Noten} \arrow{r}{}& \text{Instrumente}\arrow{d}{}\\ \text{Noten} \arrow{r}{}& \text{Instrumente}\arrow{d}{}\\
& \text{Schall}\arrow{d}{} \\ & \text{Schall}\arrow{d}{} \\
\text{Empfindung} \arrow{uu}{\text{komponieren}} & \text{Ohr}\arrow{l}{} \text{Empfindung} \arrow{uu}{\text{komponieren}} & \text{Ohr}\arrow{l}{}
\end{tikzcd} \end{tikzcd}
\label{musikkomdiag} \label{musikkomdiag}
\end{figure} %\end{figure}
\paragraph{Theorie} \paragraph{Theorie}
@ -135,110 +135,3 @@ Einige Aspekte werden in klassischer Musiktheorie nicht behandelt:
Wir wollen im Folgenden Musiktheorie aus Mathematik und möglichst einfachen Axiomen aufzubauen. Wir wollen im Folgenden Musiktheorie aus Mathematik und möglichst einfachen Axiomen aufzubauen.
\subsection{Intervalle}
\begin{definition}[Schall]
\vocab{Schall} ist eine Funktion $f: \text{Zeit} \to \text{Druck}$ bzw. $f: \text{Zeit} \to \text{Luftbewegung}$
\end{definition}
\begin{definition}[Ton]
Ein \vocab{Ton} entspricht einer Schwingungsfrequenz.
\end{definition}
\begin{observe}
Die Funktion $\sin(2\pi \cdot f \cdot t)$ ist periodisch mit $T_0$ genau dann, wenn $f = k \cdot \frac{1}{T_0}$ für ein $k \in \Z$.
\end{observe}
\begin{definition}[Lineares Modell der MTT]
Jede Funktion mit Periode $T_0$ kann als Summe von Funktionen der Form $a \cdot \sin(2\pi \cdot f \cdot t), a\cdot \cos(2\pi\cdot f\cdot t)$, $f = k \cdot \frac{1}{T_0}, a \in \R, k \in \Z$ dargestellt werden.
Für $k=1$ ergibt sich die \vocab{Grundfrequenz} $\frac{2\pi}{T}$, für $k \ge 2$ reden wir von \vocab[Oberton]{Obertönen}.
\end{definition}
\todo{Obertöne Saiteninstrument (Alle Obertöne), Flöte, Querflöte (Obertöne nur für $k \in 2\N + 1$)}
\begin{table}[htpb]
\centering
\caption{Obertöne}
\label{tab:obertoene}
\begin{tabular}{clcccc}
$k$ & Ton & Frequenz-& Halb- & EDO12 & Reine Intervalle\\
& & verhältnis & töne& &(Cent) \\
\hline
$1$ & C \\
& $\shortdownarrow$ Oktave & $2$ & $10$ & $2,000$ & $1200$\\
$2$ & C \\
& $\shortdownarrow$ Quinte & $\frac{3}{2}$ & $7$ & $1,4989$ & $702$\\
$3$ & G \\
&$\shortdownarrow$ Quarte & $\frac{4}{3}$ & $5$ & $1,3348$ & $498$\\
$4$ & C\\
&$\shortdownarrow$ gr. Terz & $\frac{5}{4}$ & $4$ & $1,2599$ & $386$\\
$5$ & E \\
&$\shortdownarrow$ kl. Terz & $\frac{6}{5}$ & $3$ & $1,1892$ & $316$\\
$6$ & G\\
&$\shortdownarrow$ & $\frac{7}{6}$ & $3$? & & $267$\\
$7$ & B ? \\
&$\shortdownarrow$ & $\frac{8}{7}$ & $2$? & & $231$\\
$8$ & C\\
&$\shortdownarrow$ gr. Sekunde & $\frac{9}{8}$ & $2$ & $1,1225$ & $204$\\
$9$ & D \\
&$\shortdownarrow$ gr. Sekunde & $\frac{10}{9}$ & 2 & $1,1225$& $182$\\
$10$ & E \\
\end{tabular}
\end{table}
\begin{observe}
$\frac{9}{8} = \frac{10}{9}$ ???
\end{observe}
Es ergeben sich außerdem
\begin{table}[htpb]
\centering
\caption{Intervalle}
\label{tab:intervale}
\begin{tabular}{lll}
Intervall & Verhältnis & Reines Intervall (Cent)\\
gr. Sexte & $\frac{5}{3}$ &$884$\\
kl. Sexte & $\frac{8}{5}$ &$814$\\
kl. Septime & $\frac{9}{5} \approx \frac{7}{4}$ & $1018 \approx 969$\\
Tritonus & $\sqrt{2}$
\end{tabular}
\end{table}
\begin{remark}
Es ergibt sich als Frequenzverhältnis (in Bezug auf C)
für gis (über E) $25:16$
und für as $8:5$. Diese Töne sind hier also tatsächlich verschieden.
\end{remark}
\todo{Skizze: Versuch der Konstruktion eines Tonvorrates mit sauberen Intervallen}
Buchempfehlung: R. Duffin - ``How equal temperament ruined harmony - and why you should care''.
\todo{Bild Flageoletttöne}
Da das leider nicht genau aufgeht definieren wir als atomares Intervall:
\begin{definition}[Halbton]
\vocab{Halbton} $\coloneqq 2^{\frac{1}{12}}$.
Dieses Stimmungssystem nennt sich \vocab{EDO12} oder auch \vocab{12-TET}.
\end{definition}
Dementsprechend ist ein Intervall mit $n$ Halbtonschritten definiert als $2^{\frac{n}{12}}$.
Um kleinere Tonabstände beschreiben zu können definieren wir ferner:
\begin{definition}[Cent]
\vocab{Cent} $\coloneqq 2^{\frac{1}{1200}}$
\end{definition}
\begin{remark}
Die Wahrnehmungsschwelle liegt bei \todo{Recherchieren}
\end{remark}

View file

@ -5,6 +5,7 @@
\author{} \author{}
\usepackage{musiktheorie} \usepackage{musiktheorie}
%\usepackage{abc/abc}
\begin{document} \begin{document}
@ -17,6 +18,7 @@
\cleardoublepage \cleardoublepage
\input{inputs/uebersicht.tex} \input{inputs/uebersicht.tex}
\input{inputs/intervalle.tex}
\end{document} \end{document}

Binary file not shown.