You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1620 lines
80 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.16">
<meta name="author" content="Laborejo Software Suite">
<title>Patroneo</title>
<style>
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment the following line when using as a custom stylesheet */
/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
html{font-family:sans-serif;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
b,strong{font-weight:bold}
abbr{font-size:.9em}
abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
dfn{font-style:italic}
hr{height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type=checkbox],input[type=radio]{padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,::before,::after{box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre).nobreak{word-wrap:normal}
:not(pre).nowrap{white-space:nowrap}
:not(pre).pre-wrap{white-space:pre-wrap}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details{margin-left:1.25rem}
details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;-webkit-tap-highlight-color:transparent}
details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos{border-right:1px solid;opacity:.35;padding-right:.5em}
pre.pygments .lineno{border-right:1px solid;opacity:.35;display:inline-block;margin-right:.75em}
pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>*>tr>*{border-width:1px}
table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-rows>*>tr>*{border-width:1px 0}
table.frame-all{border-width:1px}
table.frame-ends{border-width:1px 0}
table.frame-sides{border-width:0 1px}
table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist>li>p:first-child{margin-left:-1em}
ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
td.hdlist2{word-wrap:anywhere}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt,summary{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]{border-bottom:1px dotted}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#header,#content,#footnotes,#footer{max-width:none}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
</head>
<body class="article toc2 toc-left">
<div id="header">
<h1>Patroneo</h1>
<div class="details">
<span id="author" class="author">Laborejo Software Suite</span><br>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Inhaltsverzeichnis</div>
<ul class="sectlevel1">
<li><a href="#_benutzung">1. Benutzung</a></li>
<li><a href="#_bedienung">2. Bedienung</a>
<ul class="sectlevel2">
<li><a href="#_schnellstart">2.1. Schnellstart</a></li>
<li><a href="#_grundlagen">2.2. Grundlagen</a></li>
<li><a href="#_tastatursteuerung">2.3. Tastatursteuerung</a></li>
</ul>
</li>
<li><a href="#_beschreibung_der_grafischen_oberfläche_und_ihrer_funktionen">3. Beschreibung der grafischen Oberfläche und ihrer Funktionen</a>
<ul class="sectlevel2">
<li><a href="#_werkzeugleiste">3.1. Werkzeugleiste</a>
<ul class="sectlevel3">
<li><a href="#_swing">3.1.1. Swing</a></li>
</ul>
</li>
<li><a href="#_form_editor">3.2. Form-Editor</a>
<ul class="sectlevel3">
<li><a href="#_taktmodifikation_transposition_und_rhythmusveränderung">3.2.1. Taktmodifikation: Transposition und Rhythmusveränderung</a></li>
<li><a href="#_spurgruppen">3.2.2. Spurgruppen</a></li>
<li><a href="#_taktlängen_einzelner_spuren_verlängern">3.2.3. Taktlängen einzelner Spuren verlängern</a></li>
<li><a href="#_midi_channel">3.2.4. MIDI-Channel</a></li>
</ul>
</li>
<li><a href="#_muster_editor">3.3. Muster-Editor</a>
<ul class="sectlevel3">
<li><a href="#_kontext_menü_im_muster">3.3.1. Kontext Menü im Muster</a></li>
<li><a href="#_länge_und_lautstärke">3.3.2. Länge und Lautstärke</a></li>
<li><a href="#_tonhöhen_skala_und_tonleiter">3.3.3. Tonhöhen, Skala und Tonleiter</a></li>
<li><a href="#_anzahl_der_möglichen_tonhöhen_verändern">3.3.4. Anzahl der möglichen Tonhöhen verändern</a></li>
<li><a href="#_schatten">3.3.5. Schatten</a></li>
</ul>
</li>
<li><a href="#_gruppierung_im_muster">3.4. Gruppierung im Muster</a></li>
<li><a href="#_sonstiges">3.5. Sonstiges</a>
<ul class="sectlevel3">
<li><a href="#_genereller_rhythmusversatz">3.5.1. Genereller Rhythmusversatz</a></li>
<li><a href="#_hardware_akai_apcmini">3.5.2. Hardware: AKAI APCmini</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_installation_und_start">4. Installation und Start</a></li>
<li><a href="#_helfen_und_entwicklung">5. Helfen und Entwicklung</a>
<ul class="sectlevel2">
<li><a href="#_testen_und_programmfehler">5.1. Testen und Programmfehler</a></li>
</ul>
</li>
<li><a href="#_entwicklung">6. Entwicklung</a>
<ul class="sectlevel2">
<li><a href="#_übersetzungen">6.1. Übersetzungen</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Für Programmversion 2.3.0</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_benutzung">1. Benutzung</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Schön, dass Sie sich für Patroneo entschieden hast. Patroneo ist ein leicht zu bedienender
"Sequencer", also ein Programm, dass digitale "Noten" an Softwareinstrumente, wie Synthesizer und
Sampler, schickt.</p>
</div>
<div class="paragraph">
<p>"Patroneo" heißt "Muster" auf Esperanto. Das kommt daher, dass man hier nicht einzelne Noten
hintereinander setzt sondern ganze Takte baut, die man dann beliebig oft an beliebigen Stellen
wiederholen - oder auslassen - kann.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_bedienung">2. Bedienung</h2>
<div class="sectionbody">
<div class="imageblock">
<div class="content">
<a class="image" href="de_overview.png"><img src="de_overview.png" alt="de overview"></a>
</div>
</div>
<div class="paragraph">
<p>Im folgenden wird erklärt, wie Patroneo bedient wird.</p>
</div>
<div class="paragraph">
<p>Das Programm wird fast ausschließlich mit der Maus bedient. Sie benötigen zwingend drei Maustasten
und ein Mausrad. Meistens ist das Mausrad selbst die mittlere Maustaste, und man kann es
herunterdrücken.</p>
</div>
<div class="paragraph">
<p>Wir ermutigen Sie, viel zu experimentieren. Sehr oft ensteht gute Musik wenn Benutzer Programme
nicht nur so benutzen haben, wie es eigentlich angedacht war.</p>
</div>
<div class="sect2">
<h3 id="_schnellstart">2.1. Schnellstart</h3>
<div class="paragraph">
<p>Um die wichtigsten Funktionen und Arbeitsabläufe kennenzulernen ist eine Videoserie aus
kurzen Tutorials erstellt worden. Diese befinden sich nur online und sind leider alle auf Englisch:</p>
</div>
<div class="paragraph">
<p><a href="https://laborejo.org/patroneo/videos">Video Tutorials</a></p>
</div>
<div class="paragraph">
<p>Alternativ gibt es die Videos auf Youtube:</p>
</div>
<div class="paragraph">
<p><a href="https://youtube.com/playlist?list=PLSQAc8dt9jR37eKDhr86VxLkFYQN9HNiO">Video Tutorials Youtube</a></p>
</div>
</div>
<div class="sect2">
<h3 id="_grundlagen">2.2. Grundlagen</h3>
<div class="paragraph">
<p>Patroneo organisiert seine Musik in Spuren, die Takte enthalten. Alle Takte einer Spur spielen das
selbe "Muster", dass durch eine Abfolge von "Schritten" Musik erzeugt.</p>
</div>
<div class="paragraph">
<p>Die Spur ist durch JACK mit einem Instrument verbunden, Patroneo selbst erzeugt also keine Klänge.</p>
</div>
<div class="paragraph">
<p>Drückt man Play läuft das Stück von links nach rechts durch. Immer wenn ein Takt im Formeditor
markiert ist wird das Muster gespielt.</p>
</div>
<div class="paragraph">
<p>Möchte man verschiedene Muster vom gleichen Instrument hören so erstellt man mehrere Spuren für das
gleiche Zielinstrument.</p>
</div>
<div class="paragraph">
<p>Die Auswahl der Töne pro Muster ist frei wählbar. Man kann normale Tonleitern / Skalen nehmen oder
auch beliebige Töne in belieber Reihenfolge setzen. Ändert man die Skala nachträglich, dann klingt
das Muster auch direkt anders, ohne das man Töne neu ein- und ausschalten muss.</p>
</div>
<div class="paragraph">
<p>Das Speichern und Laden ihres Projektes wird durch den New Session Manager (Agordejo) erledigt.
Dort befindet sich ein "Save" Knopf.</p>
</div>
</div>
<div class="sect2">
<h3 id="_tastatursteuerung">2.3. Tastatursteuerung</h3>
<div class="paragraph">
<p>Patroneo kann prinzipiell mit der Maus bedient werden. Die Tastatur ist nur für wenige Funktionen
dringend nötig, etwa um Spurnamen zu ändern oder um Halbtontransposition einzustellen. Allerdings
macht die Tastatur manche Arbeitsabläufe schneller und bequemer.</p>
</div>
<div class="ulist">
<div class="title">Shortcuts</div>
<ul>
<li>
<p>Leertaste: Start und Pause der Wiedergabe.</p>
</li>
<li>
<p>L: aktuelle Taktpositionen in Schleife spielen.</p>
</li>
<li>
<p>Pos1: Wiedergabe an den Anfang des Stückes setzen.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_beschreibung_der_grafischen_oberfläche_und_ihrer_funktionen">3. Beschreibung der grafischen Oberfläche und ihrer Funktionen</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Patroneo besteht aus drei Teilen: Der Werkzeugleiste, dem Form-Editor und dem Takt- oder
Mustereditor. Zwischen Form- und Mustereditor befindet sich ein Verschiebegriff, den man mit
der linken Maustaste anklicken und bei gedrückter Taste hoch oder runter schieben kann um dem einen
oder anderen Bereich mehr Platz zu geben.</p>
</div>
<div class="sect2">
<h3 id="_werkzeugleiste">3.1. Werkzeugleiste</h3>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_toolbar.png"><img src="de_toolbar.png" alt="de toolbar"></a></span></p>
</div>
<div class="paragraph">
<p>Die <strong>Werkzeugleiste</strong> kombiniert verschiedene Befehle mit Eigenschaften des gesamten Stückes.</p>
</div>
<div class="paragraph">
<p><strong>Klon</strong> der ausgewählten Spur fügt eine neue Spur auf Grundlage der momentan ausgewählten hinzu.
Dies ist ein wichtiger und oft benutzer Befehl, der hauptsächlich benutzt wird um Varianten zu
ermöglichen. Die "Klonspur" ist zwar leer, erbt allerdings die Skala der Originals, seine
Durchschnittslautstärke, die Farbe sowie den Namen. Endet der Name auf einem Einzelbuchstaben wie
"A", "g" oder einer Zahl so wird diese automatisch erhöht, wie man am Bild gut sehen kann. Die neue
Spur verbindet sich darüberhinaus automatisch zum gleichen JACK-Instrument.</p>
</div>
<div class="paragraph">
<p><strong>Neue Spur</strong> fügt eine leere Spur hinzu. Diese bekommt einen Zufallsnamen und ist noch nicht in
JACK verbunden. Skala, Notennamen usw. werden von der momentan aktiven Spur übernommen.</p>
</div>
<div class="paragraph">
<p><strong>BPM / Tempo</strong>: Das Tempo kann zunächst durch setzen des Hakens komplett deaktiviert werden. In
diesem Fall übernimmt das "JACK Transport" System die Geschwindigkeit, erkennbar am Schriftzug
"JACK" im deaktivierten Eingabefeld. Somit können parallel laufende Programme komplexe
Tempoverläufe erstellen, was in Patroneo allein nicht möglich ist.</p>
</div>
<div class="paragraph">
<p>Aktiviert man den Haken so gilt das angegebene Tempo als Schläge pro Minute. Ein "Schlag" ist
hierbei der ausgewählte Notenwert der Liste ganz rechts. Dazu später mehr.</p>
</div>
<div class="paragraph">
<p><strong>Takte pro Spur</strong> regelt die Gesamtlänge des Stückes, wobei sich die absolute Sekundenzahl
ändern kann, je nachdem wie das Tempo gewählt wird und wie lang ein Takt sein soll. Reduziert man
die Taktanzahl werden keine Takte gelöscht, sondern nur ignoriert. Setzt man später die Taktzahl
wieder höher bekommt man seine alte Auswahl wieder. Patroneo stoppt niemals Playback von alleine,
insbesondere in einer JACK-Transport Umgebung läuft diese weiter, auch wenn keine Takte mehr
"übrig" sind.</p>
</div>
<div class="paragraph">
<p><strong>Schritte pro Takt, gruppiert in je &#8230;&#8203; und jede Gruppe ergibt eine &#8230;&#8203;</strong> Note. Hier kann
eingestellt werden wie lang die Muster sind und welche rhythmische Aufspaltung sie haben. Dies ist
der komplizierteste Teil in Patroneo und wird daher erst später in dieser Bedienungsanleitung
besprochen. Fürs erste empfiehlt es sich das "gruppiert"-Feld zu ignorieren. Schritte pro Takt ist
einfach die Anzahl an Tönen, die man ein- und ausschalten kann. Die Auswahlliste stellt ein wie
lang jeder dieser Schritte ist.</p>
</div>
<div class="paragraph">
<p><strong>Wiedergabe</strong> sind drei Knöpfe zur Wiedergabe. Von links nach rechts:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Play / Pause. Drücken um die Musik abzuspielen oder an der momentanen Stelle anzuhalten. Man kann auch die Leertaste drücken.</p>
</li>
<li>
<p>Schleife (Loop) ein- und ausschalten. Der momentan abgespielte Takt (in allen Spuren) wird stetig wiederholt. Diese Funktion eignet sich um an einer bestimmten Stelle zu arbeiten indem man seine Veränderungen schnell zu hören bekommt. Die Schleife wird aufgelöst wenn man erneut auf den Knopf drückt oder in der Zeitleiste herumspringt.</p>
</li>
<li>
<p>An den Anfang: Springt wieder an den Anfang, egal ob die Musik gerade läuft oder nicht.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Die Dauer der Schleife in Takten kann neben dem Schleifen-Knopf eingestellt werden.
Zur Erinnerung: Die Schleife ist eine Funktion um Ideen auszuprobieren, während man komponiert.
Sie ist sowohl technisch, als auch von der Benutzerführung her, nicht dafür geeignet während eines Liveauftritts
oder während einer Aufnahme spontan verändert zu werden.</p>
</div>
<div class="sect3">
<h4 id="_swing">3.1.1. Swing</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_swing.png"><img src="de_swing.png" alt="de swing"></a></span></p>
</div>
<div class="paragraph">
<p><strong>Swing</strong> (auch Shuffle genannt) kann durch einen Schieberegler in Prozent eingestellt werden. Dieser
befindet sich ganz rechts in der Werkzeugleiste. Der Regler wird erst sichtbar wenn die Gruppe
(s.o.) auf entweder 2 oder 4 gesetzt wurde. Swing ist auch nur in diesen Gruppierungen
aktiv.
Der Startwert ist 0% und bedeutet: Kein Swing; in einem Notenpaar sind beide gleich lang.
Durch Veränderung des Wertes kann man nur die erste Note eines jeden Paares verlängern und die
zweite verkürzen. Welcher Anteil gefällt sollte durch das Anhören entschieden werden.</p>
</div>
<div class="paragraph">
<p>Der Swing-Anteil hat eine stark unterschiedliche Wirkung, je nachdem ob eine Gruppierung von 2 oder 4
ausgewählt wurde. So ist bei einer 2er Gruppierung 40% ein moderater Wert, wie man ihn etwa im Jazz
erlebt, während bei der 4er Gruppierung (bei gleichem BPM/Tempo) bereits 15% deutlich hörbar sind.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_form_editor">3.2. Form-Editor</h3>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_form_editor.png"><img src="de_form_editor.png" alt="de form editor"></a></span></p>
</div>
<div class="paragraph">
<p>Im <strong>Form-Editor</strong> erstellt man die Stuktur eines Stückes. Dazu schaltet man die Takte in jeder
Spur beliebig ein und aus. Man kann sich z.B. ein Schlagzeug vorstellen, dass drei Takte gleich
spielt und jeden vierten Takt einen "Break" macht. In Patroneo braucht man dazu zwei Spuren. Dieses
"3+1" Muster kann man auf dem Bild z.B. im dritten Abschnitt (Takt 17 bis 24) in der orangen
Bassspur sehen.</p>
</div>
<div class="paragraph">
<p>Auch ganze Teile (z.B. Strophe und Refrain) werden durch verschiedene Spuren abgedeckt. Um das
Erschaffen von verwandten Spuren so bequem wie möglich zu machen existiert der "Klon" Befehl.</p>
</div>
<div class="paragraph">
<p>Es ist möglich im Bereich der Takte zu zoomen. Hierzu hält man die <strong>STRG</strong> Taste gedrückt und dreht
das Mausrad hoch oder runter. Bitte darauf achten, dass der Mauszeiger tatsächlich über den Takten
steht, und nicht etwa bei den Spurnamen oder auf der Zeitleiste.</p>
</div>
<div class="paragraph">
<p><strong>Zeitleiste</strong>: ein Klick mit der linken Maustaste setzt die Wiedergabeposition, auch im
laufenden Betrieb. Außerdem kann man hier die Taktgruppen (nicht zu verwechseln mit Gruppierung im
Muster) sehen und einstellen. Hält man sich mit dem Mauszeiger im Bereich der
Zeitleiste auf kann man die Gruppen mit dem Mausrad verkleinern oder vergrößern. Die Taktgruppen
haben nicht nur organisatorische Funktion sondern werden auch als Maßeinheit benutzt, wenn man
ganze Taktbereiche löschen oder hinzufügen möchte.</p>
</div>
<div class="paragraph">
<p><strong>Spurnamen</strong>. Hier kann man Spuren verschieben, umbennen, ihnen eine andere Farbe geben und mehr:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Ein einfacher Klick mit der linken Maustaste auf einen Namen wählt eine Spur aus, ohne etwas zu verändern. Dies ist die beste Möglichkeit um eine Spur einfach nur anzusehen. (Ein Klick auf den Taktbereich verändert sofort einen Takt!)</p>
</li>
<li>
<p>Der Doppelpfeil ganz links kann benutzt werden um Spuren hoch und runter zu schieben, um sie zu organisieren. Es hat keine Auswirkung auf den Klang oder die JACK Verbindung. Zum Verschieben mit der linken Maustaste auf den Pfeil klicken, gedrückt halten und die Maus hoch und runter bewegen.</p>
</li>
<li>
<p>Das farbige Quadrat zeigt die derzeitige Farbe. Ein linker Mausklick öffnet die Farbauswahl.</p>
</li>
<li>
<p>Spurnamen können jederzeit geändert werden indem man einen Doppelklick mit der linken Maustaste auf sie macht. Die Enter-Taste oder ein Mausklick in einen anderen Bereich des Programmes schließen das Umbennen ab. Die JACK Verbindung bleibt beim Umbenennen erhalten. Es ist eine gute Angewohnheit Spuren auf einem Einzelbuchstaben oder eine Zahl enden zu lassen. Diese werden beim "Klonen" benutzt um eine Variante des Namens zu bilden. Siehe dazu unser Bild oben.</p>
</li>
<li>
<p>Ein Klick mit der rechten Maustaste auf einen Namen öffnet das Kontextmenü einer Spur. Hier kann man</p>
<div class="ulist">
<ul>
<li>
<p>Alle Takte ein- oder ausschalten (gilt nur für die sichtbaren Takte)</p>
</li>
<li>
<p>Die sichtbaren Takte umkehren oder invertieren: Aus wird zu An und umgekehrt.</p>
</li>
<li>
<p>Die Spur klonen (gleiche Funktion wie in der Werkzeugleiste)</p>
</li>
<li>
<p>Die Spur endgültig und unwiederbringlich löschen</p>
</li>
<li>
<p>Die Taktabfolge einer anderen Spur auf die ausgewählte projizieren. Bereits gesetzte Takte bleiben hierbei erhalten. Benutzt man diese Funktion von einer leeren Spur aus erhält man praktisch "Spur kopieren".</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Nun endlich die <strong>Spur</strong> selbst. Ein Linksklick auf einen Takt schaltet diesen ein oder wieder
aus. Mehrere Takte in Folge kann man ein- und ausschalten indem man die linke Maustaste nach dem
Klicken gedrückt hält und die Maus nach links oder rechts bewegt. Ein Rechtsklick auf einen
bestimmten Takt öffnet ein Kontextmenü: Neue Takte in allen Spuren(!) an dieser Position einfügen
oder Takte aus allen Spuren löschen. Die Anzahl der Takte ergibt sich aus der derzeitigen
Taktgruppeneinstellung aus der Zeitleiste.</p>
</div>
<div class="paragraph">
<p>Diese Funktionen sind besonders nachvollziehbar wenn man sie auf den jeweils ersten Takt einer
Gruppe anwendet (nach dem weißen Strich). Man kann so neue "Teile" einfügen oder einen gesamten
Teil löschen.</p>
</div>
<div class="paragraph">
<p>Eine gute Methode ist es auch die Gruppengröße für diese Funktionen kurz zu verändern und
anschließend direkt wieder zurückzusetzen.</p>
</div>
<div class="sect3">
<h4 id="_taktmodifikation_transposition_und_rhythmusveränderung">3.2.1. Taktmodifikation: Transposition und Rhythmusveränderung</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_modifications.png"><img src="de_modifications.png" alt="de modifications"></a></span></p>
</div>
<div class="paragraph">
<p>Die folgenden Funktionen können jederzeit im Bearbeiten-Menü nachgeschlagen werden, können aber nicht
direkt von dort aufgerufen werden, sondern erfordern den Einsatz von Tastatur und Maus gleichzeitig
während man mit dem Mauszeiger auf einen Takt im Formeditor (obere Hälfte des Bildschirms) zeigt.</p>
</div>
<div class="paragraph">
<p>Für jede der folgenden vier Möglichkeiten gibt es eine eigene Taste um einen Wert (z.B. Halbtöne) zu
erhöhen. Zusammen mit der Umschalttaste wird der Wert erniedrigt.</p>
</div>
<div class="paragraph">
<p>In den Takten selbst zeigt sich dann ein kleiner Schriftzug, der den momentanen Werte angibt.
Es ist grafisch nur Platz für 3 von 4 Modifikationen, was aber in der Praxis keine Einschränkung
ist.</p>
</div>
<div class="paragraph">
<p>Die Modifikationen gelten immer für einen individuellen Takt und sind im Muster (unterer Bereich
des Bildschirms) nicht zu sehen. Schaltet man den Takt aus (und wieder ein) ist die Modifikation
gelöscht.</p>
</div>
<div class="sect4">
<h5 id="_halbtontransposition">Halbtontransposition</h5>
<div class="paragraph">
<p>Halbtontransposition (H / Umschalt+H) verändert alle Noten in diesem individuellen Takt um z.B.
+5h, also fünf Halbtöne aufwärts: aus C wird F, aus MIDI-Note 60 wird 65. -7h ist dementspreched
eine Verschiebung um eine Quinte nach unten.</p>
</div>
<div class="paragraph">
<p>Es wird zuerst die Skalentransposition und anschließend die Halbtontransposition berechnet.</p>
</div>
</div>
<div class="sect4">
<h5 id="_skalentransposition">Skalentransposition</h5>
<div class="paragraph">
<p>Skalentransposition (S / Umschalt+S) erhöht, oder erniedrigt, alles auf die Töne, die in der
jeweiligen Skala als nächstes folgen.</p>
</div>
<div class="paragraph">
<p>Man kann sich das so vorstellen, dass die Schritte im Muster hinter den Kulissen in den Reihen hoch
oder runter geschoben werden. Welcher Ton auch immer in dieser Reihe eingestellt ist wird gespielt.
Bei einer normalen Tonleiter ist das musikalisch leicht nachvollziehbar: Die Töne werden in der
Tonleiter hoch- oder runtergeschoben.</p>
</div>
<div class="paragraph">
<p>Wenn die Skala allerdings frei eingestellt wurde ergeben sich unintuitive Möglichkeiten; "Hoch und
Runter" in Bezug auf Tonhöhen verlieren dann evtl. ihre Bedeutung. Denkbar ist, dass man zwei
verzahnte Tonleiter im Muster benutzt und durch Skalen-Transposition +1 zwischen diesen hin und
herschaltet. Oder gar völlig verschiedene Töne benutzt, so dass nur der Rhythmus gleich bleibt.</p>
</div>
<div class="paragraph">
<p>Es wird zuerst die Skalentransposition und anschließend die Halbtontransposition berechnet.</p>
</div>
</div>
<div class="sect4">
<h5 id="_schrittverzögerung">Schrittverzögerung</h5>
<div class="paragraph">
<p>Schrittverzögerung (D / Umschalt+D) lässt alle Töne des Taktes früher oder später erklingen, als
sie im Muster selbst angelegt sind. Die rhythmische Auswirkung ergibt sich zusammen mit der Taktart
und Untergruppierung der Spur.
Ist die Schrittverzögerung auf "2" eingestellt wird ein Ton in Spalte 3 erst in Spalte 5 erklingen.
Negative Werte ziehen Töne dementsprechend nach vorne.</p>
</div>
<div class="paragraph">
<p>Töne, die dadurch entweder früher als 0 erklingen würden oder hinter das Ende des Taktes verschoben
würden werden zunächst ignoriert. Schaltet man aber im Kontextmenü (Rechtsklick) der Spur
"Schrittverzögerung Wrap-Around" ein, werden diese Töne ans Anfang oder Ende des Taktes verschoben,
wie auf einer Walze, an deren Ende ja auch wieder Anfang folgt.</p>
</div>
<div class="paragraph">
<p>Es wird zuerst die Schrittverzögerung und anschließend der Augmentierungs-Faktor berechnet.</p>
</div>
</div>
<div class="sect4">
<h5 id="_augmentierungs_faktor">Augmentierungs-Faktor</h5>
<div class="paragraph">
<p>Der Augmentierungs-Faktor (A / Umschalt+A) verdoppelt (x2, x4, x8, x16 …) oder halbiert (viertelt,
achtelt …) alle Tonlängen des Taktes. Folgetöne werden dadurch früher oder später gespielt.
Augmentieren bezeichnet das verlängern, Diminuieren das verkürzen aller Notenwerte um einen Faktor.</p>
</div>
<div class="paragraph">
<p>Töne, die dadurch entweder früher als 0 erklingen würden oder hinter das Ende des Taktes verschoben
würden werden zunächst ignoriert. Schaltet man aber im Kontextmenü (Rechtsklick) der Spur
"Diminuierte Muster in sich wiederholen" ein wird ein halbierter Takt zweimal schnell
hintereinander gespielt, ein geviertelter Takt viermal schnell hintereinander usw. Auf augmentierte
Takte hat diese Einstellung keine Auswirkung.</p>
</div>
<div class="paragraph">
<p>Es wird zuerst die Schrittverzögerung und anschließend der Augmentierungs-Faktor berechnet.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_spurgruppen">3.2.2. Spurgruppen</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_trackgroups.png"><img src="de_trackgroups.png" alt="de trackgroups"></a></span></p>
</div>
<div class="paragraph">
<p>Spuren können in Gruppen zusammengefasst werden. Das ist nicht zu verwechseln mit den
Rhythmusgruppen des Notenmusters.</p>
</div>
<div class="paragraph">
<p>Gruppen haben zwei Funktionen: Sie erhöhen die Übersicht und fassen JACK-Midiports zusammen
(Alle Spuren in einer Gruppen senden über den gleichen Port)</p>
</div>
<div class="paragraph">
<p>Üblicherweise werden Gruppen benutzt um einzelne Spuren zu logischen "Instrumenten" zusammenzufassen.
Es ist sehr empfehlenswert Gruppen zu benutzen, deswegen ist das leere Patroneo-Projekt schon so
eingerichtet.</p>
</div>
<div class="paragraph">
<p>Ein Doppelklick auf den Namen der Gruppe "öffnet" und "schließt" diese, wobei sich das nicht auf
die Musik auswirkt, sondern rein visuell ist.</p>
</div>
<div class="paragraph">
<p>Gruppen können verschoben werden durch das Pfeil-Symbol ganz links (Linke Maustaste gedrückt halten
und nach oben oder unten ziehen), wie auch schon die einzelnen Spuren.
Die Reihenfolge von Spuren innerhalb der Gruppe ist ebenfalls beliebig.</p>
</div>
<div class="paragraph">
<p>Gruppen und Einzelspuren können beliebig in ihrer Reihenfolge vermischt werden.</p>
</div>
<div class="paragraph">
<p>Alle Optionen und Funktionen zu Spurgruppen können über das Kontextmenü einer Spur (Rechtsklick)
aufgerufen werden:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Spuren können jederzeit zu vorhandenen Gruppen hinzugefügt, verschoben oder herausgenommen werden.</p>
</li>
<li>
<p>Eine Spur kann in eine neu angelegte Gruppe verschoben werden, der man sofort einen Namen geben kann.</p>
</li>
<li>
<p>Wird eine Spur aus einer Gruppe entfernt steht sie wieder für sich alleine.</p>
</li>
<li>
<p>Wird eine Spur geklont befindet sie sich in der selben Gruppe wie das original.</p>
</li>
<li>
<p>Neue, leere, Spuren (die mit Zufallsnummern als Namen) sind zunächst keiner Gruppe zugewiesen.</p>
</li>
<li>
<p>Gruppen können nicht umbenannt werden.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_taktlängen_einzelner_spuren_verlängern">3.2.3. Taktlängen einzelner Spuren verlängern</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_pattern_multiplier.png"><img src="de_pattern_multiplier.png" alt="de pattern multiplier"></a></span></p>
</div>
<div class="paragraph">
<p>Zunächst sind in Patroneo alle Takte aller Spuren gleich lang, nämlich so wie man die Schritte pro
Muster eingestellt hat (Startwert: 8).</p>
</div>
<div class="paragraph">
<p>Links neben dem Spurnamen befindet sich ein Zahlenfeld für den "Takt-Multiplikator".
Der Startwert ist "1x". Erhöht man hier so wird ein Takt dieser Spur von nun an x mal länger.
Das Taktraster ändert sich dementsprechend und ein Klick aktiviert nun den längeren Takt.</p>
</div>
<div class="paragraph">
<p>Das Muster im unteren Bildschirmbereich wird dementsprechend länger, so dass man mehr Platz zum
komponieren hat.</p>
</div>
<div class="paragraph">
<p>Das Platzieren eines langen Taktes folgt dem alten Raster. Man kann nur alle x Takte (Vielfache des
eingestellten Wert) einen Takt einschalten.</p>
</div>
<div class="paragraph">
<p>Eine Halbierung der Taktlängen oder krumme Multiplikatoren (1,4) sind nicht möglich (nur ganze Zahlen)</p>
</div>
</div>
<div class="sect3">
<h4 id="_midi_channel">3.2.4. MIDI-Channel</h4>
<div class="paragraph">
<p>Der MIDI-Kanal, auf dem eine Spur sendet, kann über das Kontextmenü einer Spur (Rechtsklick)
eingestellt werden. Der Startwert ist Channel 1. Es geht nur jeweils ein Kanal pro Spur
gleichzeitig. Für anspruchsvollere Szenarios müssen externe JACK-Programme benutzt werden.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_muster_editor">3.3. Muster-Editor</h3>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_pattern_editor.png"><img src="de_pattern_editor.png" alt="de pattern editor"></a></span></p>
</div>
<div class="paragraph">
<p>Der <strong>Muster-Editor</strong> ermöglicht das eigentliche Komponieren. Dazu setzt man die Töne, auch
"Schritte" genannt, um einen Takt zu bilden. Das Muster ist genau so lang wie ein Takt und wird von
links nach rechts abgespielt. Man hat dabei einige Möglichkeiten zur klanglichen Gestaltung, die
nun erklärt werden.</p>
</div>
<div class="paragraph">
<p>Das Muster ist immer so lang wie man in der Werkzeugleiste eingestellt hat. Es
werden niemals gesetzte Schritte gelöscht! Macht man die Takte kürzer werden Töne "zu weit rechts"
lediglich ignoriert. Sie sind wieder zu sehen sobald man die Takte wieder länger macht.</p>
</div>
<div class="paragraph">
<p>Ist das Muster größer als der Bildschirm anzuzeigen vermag kann man entweder die Scrollleisten
benutzen oder zoomen. Hierzu hält man die <strong>STRG</strong> Taste gedrückt und dreht das Mausrad hoch oder
runter.</p>
</div>
<div class="paragraph">
<p>Zu oberst sieht man die momentan <strong>Aktivierte Spur</strong>, bzw. das zur Spur gehörige Muster.</p>
</div>
<div class="paragraph">
<p>Das Muster selbst ist in Reihen und Spalten angelegt. Die Reihen symbolisieren die (einstellbaren)
Tonhöhen, die Spalten zeigen deren rhythmische Abfolge und Position im Takt.</p>
</div>
<div class="sect3">
<h4 id="_kontext_menü_im_muster">3.3.1. Kontext Menü im Muster</h4>
<div class="paragraph">
<p>Ein Rechtsklick auf einen Schritt öffnet ein Kontext-Menü, das folgende exklusive Funktionen
bereitstellt. Bei allen Funktionen, die umkehren bzw. invertieren ("An" wird "Aus" und umgekehrt)
ist zu beachten, dass alle Lautstärke-Informationen (s.u.) verloren gehen.</p>
</div>
<div class="paragraph">
<p>"Reihen" bedeutet alle Schritte der gleichen Tonhöhe. Also von links nach rechts gesehen.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Reihe umkehren (eine leere Reihe wird komplett gefüllt)</p>
</li>
<li>
<p>Reihe löschen</p>
</li>
<li>
<p>Reihe mit Wiederholung bis hier befüllen (s.u.)</p>
</li>
<li>
<p>Alle Schritte umkehren (das gesamte Muster)</p>
</li>
<li>
<p>Alle Schritte an</p>
</li>
<li>
<p>Alle Schritte aus</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Die Funktion "Reihe mit Widerholung bis hier befüllen" eröffnet viele kreative Möglichkeiten: Alle
Schritte vom Anfang der Reihe bis zum Ausgewählten (inkl.) werden als "Untermuster" genommen und
damit der Rest der Reihe aufgefüllt. Alle vorhandenen Schritte werden dabei, mit ihren Lautstärken,
gelöscht.</p>
</div>
<div class="paragraph">
<p>Möchte man z.B. jeden vierten Schritt eine Note aktiviert man den ersten Schritt der Reihe, lässt
dann drei frei und klickt auf den vierten Schritt als Kontextmenü und wählt die Befüllen-Funktion
aus. Die gesamte Reihe wird nun ein wiederkehrendes Muster von "X o o o X o o o&#8230;&#8203;" sein.</p>
</div>
</div>
<div class="sect3">
<h4 id="_länge_und_lautstärke">3.3.2. Länge und Lautstärke</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_velocities.png"><img src="de_velocities.png" alt="de velocities"></a></span></p>
</div>
<div class="paragraph">
<p>Ein <strong>Schritt</strong> ist ein graues bzw. farbiges Kästchen. Grau bedeutet Pause, farbig bedeutet
<strong>Klingender Ton</strong>. Ein klick mit der linken Maustaste schaltet die Schritte an und aus.</p>
</div>
<div class="paragraph">
<p>Alle Schritte sind grundsätzlich gleich lang. <strong>Besondere Tonlängen</strong> sind aber auch möglich:
Hält man die linke Maustaste gedrückt, nachdem man einen Schritt aktiviert hat kann man mit einer
Bewegung nach links oder rechts den Ton verkürzen oder verlängern. Es muss mindestens die Hälfte
der Länge sein. Ein Ton ist höchstens so lang wie der Takt selbst.</p>
</div>
<div class="paragraph">
<p>Man kann soviele Schritte hintereinander oder gleichzeitig einschalten wie man möchte. Somit lassen
sich auch <strong>Akkorde</strong> bilden.</p>
</div>
<div class="paragraph">
<p>Schritte können unterschiedliche <strong>Lautstärken</strong> haben. Dazu benutzt Patroneo die sogenannte Midi
Velocity. Hält man den Mauszeiger über einen aktivierten Schritt kann man durch Drehung des
Mausrades diesen Ton leiser oder lauter machen. Die Lautstärken werden als Zahlen zwischen 0 und
127 angezeigt. Möchte man alle Lautstärken sehen hält man den Mauszeiger über einen der beiden
Lautstärke-Knöpfe im Menü der Mitte des Bildschirms. Es gibt auch eine Einstellung im
"Ansicht"-Menü um die Zahlen permanent anzuzeigen. Zusätzlich sieht ein Schritt umso durchsichtiger
aus je leiser er ist. Schaltet man den Schritt an und aus wird die Lautstärke wieder auf den
Normalwert gesetzt. Dieser ergibt sich aus der Durchschnittslautstärke aller Töne dieses Musters.</p>
</div>
<div class="paragraph">
<p>Um alle Töne eines Musters leiser oder lauter zu machen kann man die <strong>Velocity</strong> Knöpfe
benutzen. Klickt man diese an ändert sich die Lautstärke um je 1. Hält man allerdings den
Mauszeiger über einen Knopf und dreht das Mausrad ändert sich die Velocity um je 10! Dabei ist es
egal über welchem Velocity Knopf (plus oder minus) man schwebt.</p>
</div>
<div class="paragraph">
<p>Um alle Töne einer Reihe leiser oder lauter zu machen hält man die Alt-Taste (nicht AltGR !)
gedrückt und benutzt das Mausrad auf der jeweiligen Reihe.</p>
</div>
</div>
<div class="sect3">
<h4 id="_tonhöhen_skala_und_tonleiter">3.3.3. Tonhöhen, Skala und Tonleiter</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_pitches.png"><img src="de_pitches.png" alt="de pitches"></a></span></p>
</div>
<div class="paragraph">
<p>Klicken Sie mit der mittleren Maustaste auf einen Schritt um den Ton zu hören, den dieser abspielt.
Hiermit können Sie schonmal "vorhören", bevor Sie sich entscheidest einen Ton zu setzen. Tipp: Halten
Sie die mittlere Maustaste gedrückt und fahren mit der Maus über die Schritte auf und ab.</p>
</div>
<div class="paragraph">
<p>Welche tatsächliche Tonhöhe abgespielt wird ("Midi Key") entscheidet die <strong>Skala</strong>, teilweise
auch Tonleiter genannt. Die meisten sind traditionelle Tonleitern: Sieben verschiedene Töne und
oben drauf der oktavierte Grundton.</p>
</div>
<div class="paragraph">
<p>Solche normalen <strong>Tonleitern</strong> kann man direkt auswählen. So z.B. etwa Dur, Moll, verschiedene
sogenannte "Kirchentonleitern", aber auch die Blues Töne oder chromatische Reihen (z.B. um
Schlagzeug-Software anzusteuern).</p>
</div>
<div class="paragraph">
<p>Wählt man aus der Liste eine Tonleiter aus so wird diese auf der untersten Reihe gebildet. In der
Regel ist dies auch der tiefste Ton. Auf unserem Bild ist dies Ton 60 / C4, links unten. Man muss
also zuerst den Grundton direkt auswählen und anschließend eine <strong>Tonleiter</strong> auswählen.</p>
</div>
<div class="paragraph">
<p>Um sowohl den Grundton als auch die gesamte Skala nachträglch in ihrer Tonhöhe zu verändern gibt es
vier Knöpfe:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Halbton</strong> Plus oder Minus verschiebt die ganze Skala nach oben oder unten um je einen Halbton. Dies ist nicht zu verwechseln mit der nur zeitweisen Transposition aus dem Spureditor. Man spricht hier auch von destruktiver Veränderung, da man die Werte selbst dauerhaft ändert.</p>
</li>
<li>
<p><strong>Oktave</strong> Plus oder Minus verschiebt direkt um eine ganze Oktave. Man könnte auch 12 mal auf den Halbtonknopf drücken. Kann man aber auch lassen.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Wie in der Skalentransposition bereits beschrieben ist es aber auch möglich selbst
jeden beliebigen Wert zwischen 0 und 127 in die <strong>Felder der Skala</strong> einzutragen. Die Töne müssen
weder musikalisch sinnvolle Abstände haben, noch müssen sie aufsteigend oder absteigend sortiert
sein.</p>
</div>
</div>
<div class="sect3">
<h4 id="_anzahl_der_möglichen_tonhöhen_verändern">3.3.4. Anzahl der möglichen Tonhöhen verändern</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_pattern_height.png"><img src="de_pattern_height.png" alt="de pattern height"></a></span></p>
</div>
<div class="paragraph">
<p>In der Werkzeugleiste in der Mitte, bei den Transpositions- und Tonleiteroptionen befindet sich
eine Einstellmöglichkeiten um die Anzahl der möglichen Tonhöhen zu verändern.
Der Startwert ist "8 Noten". Mögliche Werte sind 1 bis 127, dabei handelt es sich um Extremwerte.
Normal, und getestet, ist 1 bis ca. 24 (zwei chromatische Oktaven).</p>
</div>
<div class="paragraph">
<p>Die Veränderung der Anzahl gilt nur für das momentan ausgewählte Muster. Unterschiedliche Muster
können unterschiedliche Töne haben.</p>
</div>
<div class="paragraph">
<p>Die Töne werden am unteren Ende hinzugefügt bzw. weggenommen. Bereits vorhandene aktiviert Noten
bleiben erhalten, auch wenn sie "unsichtbar" werden, da es durch eine Anzahlreduzierung keinen
Platz mehr für sie gibt.</p>
</div>
</div>
<div class="sect3">
<h4 id="_schatten">3.3.5. Schatten</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_shadows.png"><img src="de_shadows.png" alt="de shadows"></a></span></p>
</div>
<div class="paragraph">
<p>Oft möchte man zu einer existierenden Spur noch weitere Töne in einem anderen Muster setzen. Eine
zweite Stimme, Frage/Antwort-Technik etc. Als Hilfe gibt es die Möglichkeit sich andere Spuren als
<strong>Schatten</strong> anzeigen zu lassen. Dazu einfach mit der mittleren Maustaste auf die Spur klicken,
die man sehen möchte. Das geht nur im Taktbereich, nicht auf den Spurnamen oder auf der
Zeitleiste.</p>
</div>
<div class="paragraph">
<p>Sie können so viele Schatten anzeigen, bist Sie die Übersicht verlieren. Alle Schatten verschwinden
sobald die ausgewählte Spur wechselt.</p>
</div>
<div class="paragraph">
<p>Schatten sind nur eine Hilfestellung und nicht wörtlich für die Tonhöhe zu nehmen: Sucht man sich
einen Track als Schatten aus, der eine andere Skala hat (was auch Transposition mit einschließt),
dann werden falsche Töne angezeigt. Schatten sind tatsächlich sehr simpel: Sie zeigen keine
Tonhöhen sondern nur die markierten Kästchen an, egal was diese als Töne bedeuten.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_gruppierung_im_muster">3.4. Gruppierung im Muster</h3>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_timesig.png"><img src="de_timesig.png" alt="de timesig"></a></span></p>
</div>
<div class="paragraph">
<p>Die Gruppierung gehört zur Taktart.</p>
</div>
<div class="paragraph">
<p>Wie bereits oben beschrieben stellt <strong>Schritte pro Takt</strong> die Länge des Musters ein. Patroneo startet
mit 8 Schritten pro Takt bei einem neuen Projekt (s. Bild). Ganz rechts ist eine Auswahlliste, die
bei einem neuen Projekt auf "Viertel" steht. Man startet also mit einem traditionellen 8/4 Takt.</p>
</div>
<div class="paragraph">
<p>Durch das Feld <strong>gruppiert in je</strong> kann man nun die Schritte in Gruppen zusammenfassen, wobei jede
Gruppe so lang ist wie in der Auswahlliste angegeben. Damit kann man seine Taktart weiter
unterteilen. Der "Beat", also das Tempo, orientiert sich dabei an den Hauptschlägen, der jeweils
erste Schritt einer Gruppe.</p>
</div>
<div class="ulist">
<div class="title">Beispiele</div>
<ul>
<li>
<p>Ein 4/4 Takt mit Achtelnoten als kleinste Rhythmuseinheit</p>
<div class="ulist">
<ul>
<li>
<p>8 Schritte pro Takt / Gruppiert in je 2 / Jede Gruppe eine Viertel</p>
</li>
</ul>
</div>
</li>
<li>
<p>Ein 4/4 mit Triolen als kleinste Rhythmuseinheit ("Swing")</p>
<div class="ulist">
<ul>
<li>
<p>9 Schritte / Gruppiert zu 3 / Gruppe ergibt Viertel</p>
</li>
</ul>
</div>
</li>
<li>
<p>Ein 12/8 Takt</p>
<div class="ulist">
<ul>
<li>
<p>12 Schritte / Gruppiert zu 1 / Gruppe ergibt Achtel</p>
</li>
</ul>
</div>
</li>
<li>
<p>Ein 8/4 Takt mit Sechzehntelnoten</p>
<div class="ulist">
<ul>
<li>
<p>32 Schritte / Gruppiert zu 4 / Gruppe ergibt Viertel</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Normalesweise stellt man die Taktart relativ am Anfang eines neuen Kompositionsprozesses ein. Es
kommt jedoch immer mal wieder vor, dass man kleinere Rhythmuswerte braucht, als man anfangs dachte.
Wenn man einfach den Wert der Gruppierung erhöht erhält man zwar mehr Unterteilungen, die Anzahl
der Schritte bleibt jedoch gleich. Ebenso bleiben die Noten genau in der "Spalte" stehen, in der
sie vorher standen. In anderen Worten: die Musik wird anders klingen. Insgesamt wird auch der Takt
kürzer, da die gleiche Anzahl an Schritten nun mit kürzeren Notenwerten belegt wird.</p>
</div>
<div class="paragraph">
<p><span class="image"><a class="image" href="de_convert_grouping.png"><img src="de_convert_grouping.png" alt="de convert grouping"></a></span></p>
</div>
<div class="paragraph">
<p>Patroneo bietet deswegen die Funktion <strong>Gruppierung Umwandeln</strong> (im Bearbeiten Menü), um die
bestehende Taktstruktur zu verändern und bereits gesetzte Schritte so zu skalieren, dass die Musik
gleich klingt.</p>
</div>
<div class="paragraph">
<p>Klickt man auf den Knopf in der Werkzeugleiste öffnet sich ein kleines Dialogfenster, in dem man
die gewünschte Gruppierung eingeben kann. Außerdem ist es möglich einzustellen, was passieren soll,
wenn das Umwandeln aus musikalischen Gründen nicht komplett funktionieren würde (s.u.).</p>
</div>
<div class="paragraph">
<p>Oft ist ein Umwandeln problemlos möglich:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Wird die Gruppierung von <code>1</code> auf einen höheren Wert gesetzt funktioniert es immer</p>
</li>
<li>
<p>Wird die Gruppierung von <code>2</code> auf <code>4</code> gesetzt funktioniert es immer</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Bei allen anderen Umgruppierungen kommt es darauf an, ob die vorhandenen Töne nach dem Umwandeln
zwischen dem neuen Raster liegen oder nicht. Der erstere Fall ist nicht möglich und Sie müssen sich
entscheiden:</p>
</div>
<div class="ulist">
<div class="title">Reaktion auf Fehler. Falls unmöglich:</div>
<ul>
<li>
<p>Nichts machen (Voreinstellung)</p>
<div class="ulist">
<ul>
<li>
<p>Der Vorgang wird abgebrochen, alles bleibt wie vorher.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Falsche Schritte löschen</p>
<div class="ulist">
<ul>
<li>
<p>Alles was zwischen dem Raster herauskommen würde wird gelöscht bzw. verworfen.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Falsche Schritte mit einbinden</p>
<div class="ulist">
<ul>
<li>
<p>Unmögliche Positionen werden auf die nächstmögliche Position geschoben. Dies führt in jedem Fall dazu, dass die Musik nun anders klingt. Meist werden dadurch mehrere Noten übereinander geschoben und bilden Akkorde.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Mit ein wenig Erfahrung wird man abschätzen können, was man braucht.</p>
</div>
</div>
<div class="sect2">
<h3 id="_sonstiges">3.5. Sonstiges</h3>
<div class="sect3">
<h4 id="_genereller_rhythmusversatz">3.5.1. Genereller Rhythmusversatz</h4>
<div class="paragraph">
<p>Im Bearbeiten-Menü befindet sich der "Generelle Rhythmusversatz". In modularer Musikproduktion mit
mehreren Programmen, durch JACK-Transport synchronisiert, kann Patroneo hiermit auf der Timeline
komplett nach hinten versetzt werden (oder sogar nach vorne).</p>
</div>
<div class="paragraph">
<p>Zum Beispiel ist eine Performance denkbar und der Patroneo-Song soll erst bei 52:00 starten. Oder
man möchte in einem anderen Programm ein takt- und metrumsloses Intro machen, das genau XY
Miditicks andauert.</p>
</div>
<div class="paragraph">
<p>Dieser Befehl richtet sich ausdrücklich an fortgeschrittene Benutzer und ist ausführlich im
Programm selbst dokumentiert, sobald man den Menübefehl aufruft.</p>
</div>
</div>
<div class="sect3">
<h4 id="_hardware_akai_apcmini">3.5.2. Hardware: AKAI APCmini</h4>
<div class="paragraph">
<p><span class="image"><a class="image" href="akai_apc_mini.png"><img src="akai_apc_mini.png" alt="akai apc mini"></a></span></p>
</div>
<div class="paragraph">
<p>Das AKAI APCmini kann als Eingabehilfe benutzt werden. Patroneo hat dafür je einen JACK-Midi
Eingangs- und Ausgangsport: Einmal für die eigentliche Eingabe und dann zurück zum Gerät, um dessen
LEDs zu steuern.</p>
</div>
<div class="paragraph">
<p>Eine Bedienungsanleitung existiert nur in Videoform, und auf Englisch, und befindet sich in der
Videotutorialseries (siehe Einleitung, unter "Schnellstart").</p>
</div>
<div class="paragraph">
<p>Es mag ihnen vielleicht seltsam vorkommen, dass das nur für ein spezifisches Gerät angeboten wird.
Vielleicht fragen Sie sich sogar, ob sie dieses Gerät jetzt selbst kaufen sollten?</p>
</div>
<div class="paragraph">
<p>Nein, kaufen Sie es nicht. Die Arbeit am Computer selbst ist schneller und bequemer.</p>
</div>
<div class="paragraph">
<p>Der Autor hat es als Experiment ausprobiert. Das APCmini war dabei das günstigste Gerät (69€. Stand
2021) dieser Art mit mindestens 8 mal 8 Knöpfen (Standardlayout des Patroneo-Musters). Es ist nicht
geplant weitere Geräte dieser Art zu kaufen, von daher wird es auch keinen Softwaresupport geben.</p>
</div>
<div class="paragraph">
<p>In Patroneo kann man mit dem APCmini nur die Mustereingabe durchführen. Alles was mit Spuren zu tun
hat, sowie Taktmodifikation, Transposition, der Auswahl der Skala, Taktart und Gruppierung
etc. muss weiterhin am Computer gemacht werden. Und selbst dann ist die Handhabung von
Lautstärke/Velocity umständlicher und Tonlängen können nicht so fein einjustiert werden.</p>
</div>
<div class="paragraph">
<p>Einmal fertig programmiert war es dann aber auch zu schade die Funktionalität außen vor zu lassen. Es
ist immerhin die einzige Fernsteuerung Patroneos von außen, die vielleicht irgendwann für andere
kreative Zwecke "missbraucht" werden kann.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_installation_und_start">4. Installation und Start</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Patroneo ist exklusiv für Linux. Am besten installieren Sie Patroneo über deinen Paketmanager.
Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre
Linuxdistribution Patroneo bereitzustellen.</p>
</div>
<div class="paragraph">
<p>Falls in den Paketquellen vorhanden bitte direkt bei "patroneo in Agordejo (New Session Manager)" weiterlesen.
Falls nicht kann man Patroneo auch selbst "bauen".</p>
</div>
<div class="ulist">
<div class="title">Abhängigkeiten</div>
<ul>
<li>
<p>Eine Liste der Abhängigkeit befindet sich in der README.md</p>
</li>
<li>
<p>Kompilieren und Installieren geht entweder mit einem Releasedownload oder mit der Git-Version:</p>
<div class="ulist">
<ul>
<li>
<p>Laden Sie von <a href="https://www.laborejo.org/downloads" class="bare">https://www.laborejo.org/downloads</a> die aktuelle Version herunter und entpacken Sie sie.</p>
</li>
<li>
<p><code>git clone <a href="https://git.laborejo.org/lss/patroneo.git" class="bare">https://git.laborejo.org/lss/patroneo.git</a></code></p>
</li>
</ul>
</div>
</li>
<li>
<p>Wechseln Sie in das neue Verzeichnis und benutzen diese Befehle:</p>
<div class="ulist">
<ul>
<li>
<p><code>./configure --prefix=/usr</code></p>
</li>
<li>
<p>Das Standardprefix is /usr/local</p>
</li>
</ul>
</div>
</li>
<li>
<p><code>make</code></p>
</li>
<li>
<p><code>sudo make install</code></p>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">patroneo im Agordejo (New Session Manager, NSM) starten</div>
<ul>
<li>
<p>Starten Sie <code>agordejo</code></p>
</li>
<li>
<p>Erstellen Sie eine neue Session, geben Sie einen Namen für das Musikstück ein.</p>
</li>
<li>
<p>Benutzen Sie den Launcher um <code>patroneo</code> hinzuzufügen.</p>
</li>
<li>
<p>Fügen Sie beliebige kompatible Programme hinzu, z.B. Synthesizer.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In der Datei README.md befinden sich weitere Möglichkeiten patroneo zu starten. Diese sind zum
Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_helfen_und_entwicklung">5. Helfen und Entwicklung</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Sie können Patroneo auf viele Arten und Weisen helfen: Testen und Fehler melden, übersetzen, marketing,
anderen Nutzern helfen und schließlich programmieren.</p>
</div>
<div class="sect2">
<h3 id="_testen_und_programmfehler">5.1. Testen und Programmfehler</h3>
<div class="paragraph">
<p>Falls Sie einen Fehler im Programm entdecken (oder es zu langsam läuft) melden Sie diese bitte auf
eine Art und Weise, die ihnen am besten passt.</p>
</div>
<div class="ulist">
<div class="title">Kontaktmöglichkeiten</div>
<ul>
<li>
<p>Bugs und Probleme melden: <a href="https://www.laborejo.org/bugs" class="bare">https://www.laborejo.org/bugs</a></p>
</li>
<li>
<p>Webseite: <a href="https://www.laborejo.org" class="bare">https://www.laborejo.org</a></p>
</li>
<li>
<p>E-Mail: <a href="mailto:info@laborejo.org">info@laborejo.org</a></p>
</li>
<li>
<p>Wenn Sie die Gelegenheiten sehen und wissen, dass ein Entwickler es lesen wird sind auch Foren, Socialmedia etc. möglich.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_entwicklung">6. Entwicklung</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Falls Sie an der Entwicklung interessiert sind, melden Sie sich am besten direkt bei uns (s.o.)
Kurzversion: clone git, programmieren, einen git-patch erstellen oder uns eine git URL zukommen lassen.</p>
</div>
<div class="sect2">
<h3 id="_übersetzungen">6.1. Übersetzungen</h3>
<div class="paragraph">
<p>Patroneo ist mit Hilfe der Qt-Toolchain sehr einfach zu übersetzen, ohne, dass man dafür Programmieren muss.
Die einfachste Variante ist es einfach die Entwickler anzusprechen und sie werden die neue Sprache einrichten.</p>
</div>
<div class="paragraph">
<p>Hier ist dennoch die komplette Anleitung, um eine Übersetzung komplett alleine anzufertigen und in
das Programm einzubinden. Das Programm ist in zwei Teile aufgeteilt: Ein gemeinsames "Template"
(für alle Laborejo Software Suit Programme) sowie das eigentliche Programm.</p>
</div>
<div class="paragraph">
<p>Der Übersetzungsprozess ist der gleiche für beide Teile, man muss ihn jedoch in unterschiedlichen
Verzeichnissen durchführen:
<code>template/qtgui</code> und nur <code>/qtgui</code>, relativ zum Stammverzeichnis, wo sich die ausführbare Datei
patroneo befindet.</p>
</div>
<div class="paragraph">
<p>Jedes "template/qtgui" hier kann durch nur "qtgui" ersetzt werden um den zweiten Teil zu übersetzen.</p>
</div>
<div class="paragraph">
<p>So fügt man eine neue Sprache hinzu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Öffnen Sie ein Terminal und navigieren zu template/qtgui/resources/translations</p>
</li>
<li>
<p>Bearbeiten Sie die Datei <code>config.pro</code> in einem Texteditor.</p>
<div class="ulist">
<ul>
<li>
<p>Hängem Sie in der letzten Zeile den Namen der neuen Sprache an, in der Form <code>XY.ts</code>, wobei XY der Sprachcode ist.</p>
</li>
<li>
<p>Achten Sie bitte darauf ein Leerzeichen zwischen den einzelnen Sprachen zu lassen</p>
</li>
</ul>
</div>
</li>
<li>
<p>Führen Sie <code>sh update.sh</code> im selben Verzeichnis aus.</p>
<div class="ulist">
<ul>
<li>
<p>Das Programm hat nun eine neue <code>.ts</code>-Datei im Verzeichnis erstellt.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Starten Sie Qt Linguist mit <code>linguist-qt5</code> (kann evtl. anders heißen) und öffnen von dort die neu generierte Datei.</p>
</li>
<li>
<p>Wählen Sie die "Target Language", also Zielsprache, aus und benutzen das Programm um eine Übersetzung anzufertigen.</p>
</li>
<li>
<p>Senden Sie uns bitte die .ts Datei, z.B. per E-Mail an <a href="mailto:info@laborejo.org">info@laborejo.org</a> (s.u bei Bugs und Programmfehler für mehr Kontaktmöglichkeiten)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Die Übersetzung können Sie auch selbst, zum Testen, einbinden. Dafür sind rudimentäre
Python Kentnisse nötig.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Im Qt Linguist "Datei" Menü ist eine "Release" Option. Das erstellt eine <code>.qm</code> Datei im gleichen Verzeichnis wie die <code>.ts</code> Datei.</p>
</li>
<li>
<p>Bearbeiten Sie <code>template/qtgui/resources/resources.qrc</code> und kopieren die Zeile <code>&lt;file&gt;translations/de.qm&lt;/file&gt;</code> . Dabei das Länderkürzel zum Neuen ändern.</p>
</li>
<li>
<p>Führen Sie <code>sh buildresources.sh</code> aus</p>
</li>
<li>
<p>Bearbeiten Sie <code>engine/config.py</code>: Die neue Sprache hinzufügen. z.B. <code>{"German":"de.qm", "Esperanto:"eo.qm"}</code></p>
<div class="ulist">
<ul>
<li>
<p>Um den Sprachstring herauszufinden öffnen Sie den <code>python3</code>-Interpreter im Terminal und führen aus:</p>
</li>
<li>
<p><code>from PyQt5 import QtCore;QtCore.QLocale().languageToString(QtCore.QLocale().language())</code></p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Um die neue Übersetzung zu testen starten Sie das Programm, falls ihr System bereits auf diese
Sprache eingstellt ist.
Ansonsten starten Sie patroneo mit diesem Befehl, Sprachcode ändern, vom Terminal aus:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>LANGUAGE=de_DE.UTF-8 ./patroneo -V</code></p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2021-12-24 13:53:40 +0100
</div>
</div>
</body>
</html>