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.
1511 lines
73 KiB
1511 lines
73 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.12">
|
|
<meta name="author" content="Laborejo Software Suite">
|
|
<title>Vico</title>
|
|
<style>
|
|
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
|
|
/* Uncomment @import statement to use as 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";*/
|
|
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
|
|
audio,video{display:inline-block}
|
|
audio:not([controls]){display:none;height:0}
|
|
html{font-family:sans-serif;-ms-text-size-adjust:100%;-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}
|
|
abbr[title]{border-bottom:1px dotted}
|
|
b,strong{font-weight:bold}
|
|
dfn{font-style:italic}
|
|
hr{-moz-box-sizing:content-box;box-sizing:content-box;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}
|
|
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"]{box-sizing:border-box;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{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;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;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;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{font-family:inherit;font-weight:400;font-size:1em;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;height:0}
|
|
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{font-size:1em;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;font-size:1em}
|
|
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}
|
|
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
|
|
abbr{text-transform:none}
|
|
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
|
|
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
|
|
blockquote cite::before{content:"\2014 \0020"}
|
|
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
|
|
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:solid 1px #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;-webkit-border-radius:4px;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;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;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-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;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:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;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-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;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:rgba(255,255,255,.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>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
|
|
.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)}
|
|
table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
|
|
.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-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
|
|
.exampleblock>.content>:first-child{margin-top:0}
|
|
.exampleblock>.content>:last-child{margin-bottom:0}
|
|
.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;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{-webkit-border-radius:4px;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;-webkit-border-radius:4px;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 currentColor;opacity:.35;padding-right:.5em}
|
|
pre.pygments .lineno{border-right:1px solid currentColor;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;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;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{margin-left:.625em}
|
|
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:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;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:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;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);-webkit-border-radius:50%;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{letter-spacing:-.01em}
|
|
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
|
|
p,blockquote,dt,td.content,span.alt{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;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
|
|
.print-only{display:none!important}
|
|
@page{margin:1.25cm .75cm}
|
|
@media print{*{-webkit-box-shadow:none!important;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]::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 print,amzn-kf8{#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>Vico</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="#_bedienung">1. Bedienung</a>
|
|
<ul class="sectlevel2">
|
|
<li><a href="#_anwendungszweck_und_zielgruppe">1.1. Anwendungszweck und Zielgruppe</a></li>
|
|
<li><a href="#_grundlagen">1.2. Grundlagen</a></li>
|
|
<li><a href="#_midi_unterstützung">1.3. MIDI-Unterstützung</a></li>
|
|
<li><a href="#_maus_und_tastaturkürzel">1.4. Maus und Tastaturkürzel</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#_beschreibung_der_grafischen_oberfläche_und_ihrer_funktionen">2. Beschreibung der grafischen Oberfläche und ihrer Funktionen</a></li>
|
|
<li><a href="#_klavier_am_linken_rand">3. Klavier am linken Rand</a></li>
|
|
<li><a href="#_hauptansicht">4. Hauptansicht</a>
|
|
<ul class="sectlevel2">
|
|
<li><a href="#_bewegen_und_navigation">4.1. Bewegen und Navigation</a></li>
|
|
<li><a href="#_zoom_und_skalierung">4.2. Zoom und Skalierung</a></li>
|
|
<li><a href="#_ebenen">4.3. Ebenen</a>
|
|
<ul class="sectlevel3">
|
|
<li><a href="#_schatten">4.3.1. Schatten</a></li>
|
|
<li><a href="#_farben">4.3.2. Farben</a></li>
|
|
<li><a href="#_midi_kanal">4.3.3. Midi-Kanal</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#_live_aufnahmen">5. Live Aufnahmen</a>
|
|
<ul class="sectlevel2">
|
|
<li><a href="#_ebenen_filter">5.1. Ebenen-Filter</a></li>
|
|
<li><a href="#_jack_transport_und_timebase_taktstriche">5.2. JACK Transport und Timebase: Taktstriche</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#_noten_und_events">6. Noten und Events</a>
|
|
<ul class="sectlevel2">
|
|
<li><a href="#_events_löschen">6.1. Events löschen</a></li>
|
|
<li><a href="#_noten">6.2. Noten</a></li>
|
|
<li><a href="#_weitere_events">6.3. Weitere Events</a>
|
|
<ul class="sectlevel3">
|
|
<li><a href="#_control_changes_0xb0">6.3.1. Control Changes (0xB0)</a></li>
|
|
<li><a href="#_program_change_0xc0">6.3.2. Program Change (0xC0)</a></li>
|
|
<li><a href="#_channel_pressure_monophonic_aftertouch_0xd0">6.3.3. Channel Pressure / "Monophonic Aftertouch" (0xD0)</a></li>
|
|
<li><a href="#_pitch_bend_0xe0_nur_7bit_msb">6.3.4. Pitch Bend (0xE0 - nur 7bit MSB)</a></li>
|
|
<li><a href="#_polyphonic_aftertouch_0xa0">6.3.5. Polyphonic Aftertouch (0xA0)</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#_events_bearbeiten_und_verschieben">7. Events bearbeiten und verschieben</a>
|
|
<ul class="sectlevel2">
|
|
<li><a href="#_textanmerkung">7.1. Textanmerkung</a></li>
|
|
<li><a href="#_auswahl">7.2. Auswahl</a>
|
|
<ul class="sectlevel3">
|
|
<li><a href="#_auswahl_umkehren">7.2.1. Auswahl umkehren</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#_event_position_verändern">7.3. Event-Position verändern</a></li>
|
|
<li><a href="#_notenlängen_verändern">7.4. Notenlängen verändern</a></li>
|
|
<li><a href="#_raster_und_positionen_einrasten">7.5. Raster und Positionen einrasten</a></li>
|
|
<li><a href="#_notenlautstärke_velocity_verändern">7.6. Notenlautstärke / Velocity verändern</a></li>
|
|
<li><a href="#_kopieren_ausschneiden_einfügen">7.7. Kopieren, Ausschneiden, Einfügen</a></li>
|
|
<li><a href="#_änderungen_rückgängig_machen_undo_redo">7.8. Änderungen rückgängig machen / Undo & Redo</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#_velocityansicht">8. Velocityansicht</a></li>
|
|
<li><a href="#_verschiedenes_für_fortgeschrittene_benutzer">9. Verschiedenes für fortgeschrittene Benutzer</a>
|
|
<ul class="sectlevel2">
|
|
<li><a href="#_parameter_und_einstellungen_am_anfang_des_stückes">9.1. Parameter und Einstellungen am Anfang des Stückes</a></li>
|
|
<li><a href="#_midi_parameter_mit_hoher_auflösung_msb_und_lsb">9.2. MIDI Parameter mit hoher Auflösung (MSB und LSB)</a></li>
|
|
<li><a href="#_überlappende_noten">9.3. Überlappende Noten</a></li>
|
|
<li><a href="#_control_changes_sind_falsch_herum_in_vico">9.4. "Control Changes sind falsch herum in Vico!"</a></li>
|
|
<li><a href="#_rundungsfehler_meine_noten_sind_an_der_falschen_stelle">9.5. Rundungsfehler: Meine Noten sind an der Falschen Stelle</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#_installation_und_start">10. Installation und Start</a></li>
|
|
<li><a href="#_helfen_und_entwicklung">11. Helfen und Entwicklung</a>
|
|
<ul class="sectlevel2">
|
|
<li><a href="#_testen_und_programmfehler">11.1. Testen und Programmfehler</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#_entwicklung">12. Entwicklung</a>
|
|
<ul class="sectlevel2">
|
|
<li><a href="#_übersetzungen">12.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 1.2.2</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_bedienung">1. Bedienung</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Schön, dass Sie sich für Vico entschieden hast. Es handelt sich um einen minimalistischen
|
|
Midi-Sequencer, der parallel zu anderer Software eingesetzt werden soll.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>"Vico" (mit c als 'z'/'ts' wie in Zirkel) heißt Reihenfolge auf Esperanto, da es sich um einen
|
|
"Sequencer" handelt.</p>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_anwendungszweck_und_zielgruppe">1.1. Anwendungszweck und Zielgruppe</h3>
|
|
<div class="paragraph">
|
|
<p>In einer loop- oder patternbasierten Umgebung möchte man oft einen 'freien' Track habe, um etwa ein
|
|
Instrumentalsolo umzusetzen.
|
|
Manchmal möchte man auch nur schnell eine Skizze oder Idee aufnehmen und dazu nicht gleich ein
|
|
ganzes DAW-Projekt öffnen oder erstellen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Vico erfüllt diese Bedingungen indem es genau eine Aufnahmequelle mit einer Ausgabe verbindet und
|
|
dazwischen aufnehmen und bearbeiten kann. Oder anders gesagt: man bekommt nur einen Track, gedacht
|
|
für ein Instrument (dafür aber mit nützlichen Ebenen)</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Vico ist in erster Linie für Benutzer von Patroneo geschrieben worden, hat dazu aber keine engere
|
|
technische Bindung. Patroneo ist ein Programm geprägt von strengen Wiederholungen und ständiger
|
|
Wiederverwendung von sehr kurzen Mustern. Damit kann man schnell ganze Arrangements für Schlagzeug,
|
|
Bass und Begleitakkorde aufbauen, aber eine schöne, lange Melodie ist extrem umständlich. Daher
|
|
hier das Programm für genau diesen Zweck.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Alle Programme, die als JACK-Transport-Master oder JACK-Timebase-Master laufen können Vico
|
|
fernsteuern.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_grundlagen">1.2. Grundlagen</h3>
|
|
<div class="paragraph">
|
|
<p>Vico erzeugt selbst keine Klänge und bietet nur einen einzigen Ausgang für JACK-Midi und ordnet alle
|
|
Events auf bis zu zehn Ebenen, ähnlich wie in Grafikprogrammen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Es gibt einen Eingang für JACK-Midi, an dem man MIDI-Instrumente oder andere Programme anschließen
|
|
kann.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Beim Start sieht man einen leeren Track. Der Playhead befindet sich immer an der Stelle, an der
|
|
JACK Transport sich befindet.
|
|
Die Taktstriche werden ebenfalls im Metrum des JACK Masters gezeigt. Falls nicht vorhanden gibt es
|
|
keine.
|
|
Ein roter Playhead zeigt an, dass man sich im Aufnahmemodus befindet; Läuft Transport wird
|
|
aufgenommen, etwa von einen Midikeyboard.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Mit Maus und Tastatur können außerdem alle Events von Hand gesetzt und nachträglich verändert
|
|
werden (s.u.). Bis auf Velocity werden alle Events im Haupttrack dargestellt.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Zur Vereinfachung kann man ein Rhythmusraster ein- und ausschalten sowie einstellen in welchem
|
|
Raster Events erzeugt oder verschoben werden sollen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Alles Bearbeiten erfordert das Erstellen einer Auswahl ("Selection") indem man mit Umschalten und
|
|
der linken Maustaste einen Rahmen zieht. Ein Klick mit der rechten Maustaste beendet die Auswahl.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Starten, speichern, laden und schließen ihres Projektes wird am besten durch den New Session
|
|
Manager (Agordejo) erledigt.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_midi_unterstützung">1.3. MIDI-Unterstützung</h3>
|
|
<div class="paragraph">
|
|
<p>Vico unterstützt alle MIDI Channel-Nachrichten:</p>
|
|
</div>
|
|
<div class="ulist">
|
|
<ul>
|
|
<li>
|
|
<p>Noten (ON 0x80 und OFF 0x90 sind als Rechtecknote zusammengefasst)</p>
|
|
</li>
|
|
<li>
|
|
<p>Control Changes (0xB0)</p>
|
|
</li>
|
|
<li>
|
|
<p>Program Change (0xC0)</p>
|
|
</li>
|
|
<li>
|
|
<p>Channel Pressure / "Monophonic Aftertouch" (0xD0)</p>
|
|
</li>
|
|
<li>
|
|
<p>Pitch Bend (0xE0 - nur 7bit MSB)</p>
|
|
</li>
|
|
<li>
|
|
<p>Polyphonic Aftertouch (0xA0)</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Alle Nachrichten können entweder live aufgenommen werden oder mit der Hand eingetragen werden.
|
|
Nachbearbeitung ist für alle Channel-Nachrichten möglich.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Der Midikanal wird bei der Aufnahme verworfen. Statt dessen hat jede Ebene die Möglichkeit einen
|
|
Kanal einzustellen, auf dem gesendet wird.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Alle nichtmusikalischen Events (0xF…​) werden ignoriert, inkl. aller Nachrichten zu MIDI-Transport
|
|
(nicht JACK-Transport), Tune-Request usw. Gleiches gilt für SystemExclusive Events.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_maus_und_tastaturkürzel">1.4. Maus und Tastaturkürzel</h3>
|
|
<div class="paragraph">
|
|
<p>Alle Tastaturkürzel ("Shortcuts") sind in den Menüs zu finden, es gibt keine "geheimen" Tasten.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Im Gegensatz dazu sind Mausbefehle überhaupt nicht in der grafischen Oberfläche einzusehen und
|
|
müssen hier gelernt werden:</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>(LM = Linke Maustaste, RM = Rechte Maustaste, Rad = Mausrad bewegen, MM = Mittlere Maustaste, meistens das Rad selbst drücken)</p>
|
|
</div>
|
|
<div class="ulist">
|
|
<ul>
|
|
<li>
|
|
<p>Umschalten + LM gedrückt halten, Maus bewegen: Zieht einen Rahmen um Events auszuwählen.</p>
|
|
</li>
|
|
<li>
|
|
<p>RM auf den Hintergrund: Löst die Auswahl wieder auf.</p>
|
|
</li>
|
|
<li>
|
|
<p>LM auf ein ausgewähltes Event, dann Maus bewegen: Verschiebt die ausgewählten Events nach oben/unten oder links/rechts</p>
|
|
</li>
|
|
<li>
|
|
<p>Steuerung (Strg) dabei gedrückt halten: Bewegt nur nach links / rechts</p>
|
|
</li>
|
|
<li>
|
|
<p>Alt dabei gedrückt halten: Bewegt nur nach oben / unten</p>
|
|
</li>
|
|
<li>
|
|
<p>MM: Spielt die Note unter dem Mauszeiger ab. Es muss keine tatsächliche Note dort sein, die Position alleine reicht. Dies geht auch auf dem Klavier am linken Rand.</p>
|
|
</li>
|
|
<li>
|
|
<p>RM auf ein Event: Öffnet ein Menü mit weiteren Funktionen.</p>
|
|
</li>
|
|
<li>
|
|
<p>Rad: Scrollt den Notenbereich hoch und runter</p>
|
|
</li>
|
|
<li>
|
|
<p>Rad, dabei Alt gedrückt halten: Scrollt den Notenbereich links und rechts</p>
|
|
</li>
|
|
<li>
|
|
<p>Rad auf Velocities im unteren Bereich: Ändert die Lautstärke der einzelnen Note, unabhängig der momentanen Auswahl</p>
|
|
</li>
|
|
<li>
|
|
<p>Strg + Leertaste: Startet Playback an der Mauszeigerposition</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_beschreibung_der_grafischen_oberfläche_und_ihrer_funktionen">2. Beschreibung der grafischen Oberfläche und ihrer Funktionen</h2>
|
|
<div class="sectionbody">
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<a class="image" href="overview-german.png"><img src="overview-german.png" alt="Screenshot mit Beschriftung"></a>
|
|
</div>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Alle Punkte, und mehr, werden weiter unten ausführlich besprochen.</p>
|
|
</div>
|
|
<div class="ulist">
|
|
<ul>
|
|
<li>
|
|
<p><strong>[A]</strong> Menüleiste</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>[B]</strong> Hauptansicht (Noten und Events)</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>[C]</strong> Klavier am linken Rand</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>[D]</strong> Velocityansicht</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>[E]</strong> Einige Noten</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>[F]</strong> Ein weiteres Event, als Beispiel</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>[G]</strong> Statusleiste mit aktueller Ebene und Ebenen-MIDI-Kanal</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Im Normalfall, wenn Vico im New-Session-Manager läuft, gibt keine interne Möglichkeit das Programm
|
|
zu <strong>beenden</strong>. Benutzt man die Funktion seinen Fenstermanagers wie [X], Alt+F4 etc. wird die
|
|
grafische Oberfläche lediglich versteckt.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Um Vico wirklich zu schließen kann man in Agordejo (New Session Manager) stoppen. Hier
|
|
kann man auch die Sichtbarkeit wieder herstellen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Die momentane Sichtbarkeitseinstellung wird gespeichert.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_klavier_am_linken_rand">3. Klavier am linken Rand</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Am linken Rand des Programmfensters befindet sich eine gedrehte Klaviatur. Sie dient ausschließlich
|
|
als Orientierungshilfe.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Die Zahlen zwischen 0 und 127 in den Tasten sind MIDI-Tonhöhen. 60 ist in diesem System das mittlere
|
|
C.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Hält man die mittlere Maustaste gedrückt und fährt über die Tastatur erklingt der Ton über das
|
|
verbundene Instrument.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_hauptansicht">4. Hauptansicht</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Die Hauptansicht nutzt Rhythmus als lineare Ausdehnung (technisch: Midi-Ticks).
|
|
Das bedeutet, dass eine Note mit gleicher Dauer immer gleich lang aussieht.
|
|
Verändert sich das Tempo (BPM) dann bewegt sich der Playhead schneller oder langsamer.
|
|
Im Umkehrschluss bedeutet das, dass es keine Zeitleiste geben kann, an der man sieht bei welcher
|
|
Sekunde ein Event stattfindet.</p>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_bewegen_und_navigation">4.1. Bewegen und Navigation</h3>
|
|
<div class="paragraph">
|
|
<p>Mit dem Mausrad scrollt man die Hauptansicht nach oben und unten. Mit gedrückter Alt-Taste scrollt
|
|
man stattdessen nach vorne oder hinten (links / rechts)</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Das "Navigation"-Menü bietet weitere Möglichkeiten.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_zoom_und_skalierung">4.2. Zoom und Skalierung</h3>
|
|
<div class="paragraph">
|
|
<p>Hält man Strg gedrückt und dreht das Mausrad wird die Ansicht größer oder kleiner.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Hält man zusätzlich noch Umschalten gedrück wird nur die Zeitachse skaliert. Noten werden
|
|
zusammengedrückt oder auseinandergezogen, so dass man entweder mehr auf einmal sehen kann oder
|
|
genauere Anfangs- und Endpositionen setzen kann.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Zoom und Skalierung ist rein grafisch und hat keinerlei Auswirkung auf die Musik selbst.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_ebenen">4.3. Ebenen</h3>
|
|
<div class="paragraph">
|
|
<p>Noten werden nicht in Tracks, sondern in Ebenen organisiert. Es gibt derer zehn.
|
|
Im "Ebenen"-Menü, oder mit den Funktionstasten F1 bis F10, kann die momentane Ebene ausgewählt werden.</p>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_schatten">4.3.1. Schatten</h4>
|
|
<div class="paragraph">
|
|
<p>Ebenen liegen hintereinander und verdecken sich gegenseitig. Man kann allerdings sogenannte Schatten
|
|
aktivieren,
|
|
die eine andere Ebene auf die momentane projizieren. Schatten können nicht bearbeitet werden.
|
|
Alle Schatten verschwinden,sobald man die aktive Ebene verändert.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Umschalten+Funktionstaste, z.B. F3, zeigt die dritte Ebene als Schatten. F12 zeigt alle als Schatten.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_farben">4.3.2. Farben</h4>
|
|
<div class="paragraph">
|
|
<p>Jede Ebene kann eine Farbe haben, diese ist im Ebenenmenü auswählbar. Hauptsächlich sind Noten und
|
|
Events in dieser Farbe. Der Mauszeiger ist immer in der gegenteiligen Farbe.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_midi_kanal">4.3.3. Midi-Kanal</h4>
|
|
<div class="paragraph">
|
|
<p>Kanäle sind keine Eigenschaften der Events. Jede Ebene hat einen eigenen Midikanal,
|
|
zwischen 1 und 16, auf dem gesendet wird. Bei einem neuen Projekt ist das immer Kanal 1.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Bei der Aufnahme wird zwar auf allen eigehenden Midikanälen zugehört, allerdings wird der Kanal
|
|
sofort verworfen und auf den jeweiligen Ebenenkanal geändert.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_live_aufnahmen">5. Live Aufnahmen</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Vico hat einen MIDI-in Jackport, an dem man beliebige Programme oder Hardwareinstrumente anschließen
|
|
kann.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Der Eingangsport leitet, unabhängig von der Verarbeitung in Vico selbst (Aufnahme oder nicht), alles
|
|
sofort an den Ausgangsport durch, allerdings mit dem Kanal der jeweils aktuellen Ebene. Die
|
|
Weiterleitung geschieht in Echtzeit (Realtime).</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Um etwas aufzunehmen muss der Aufnahmemodus aktiviert sein (Bearbeiten→"Aufnahmemodus
|
|
umschalten"). Dies ist bei Programmstart bereits der Fall. Ein roter Playhead zeigt
|
|
Aufnahmebereitschaft, ein schwarzer ist reines Abspielen. Zusätzlich muss Transport laufen. Ist
|
|
beides nicht der Fall reagiert Vico, z.B. auf Noten, indem es die Tonhöhe farbig markiert.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Da Vico immer der JACK Timebase folgt (s.u.) geschieht die Aufnahme auch an dieser Position.
|
|
Man kann also in einem anderen Programm genau an die Stelle springen zu der man etwa ein Solo
|
|
aufnehmen möchte und in diesem Programm auch auf Play drücken. Im Prinzip kann Vico wie ein im
|
|
Hintergrund laufendes Programm benutzt werden (was mit NSMs GUI-verstecken auch tatsächlich geht).</p>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_ebenen_filter">5.1. Ebenen-Filter</h3>
|
|
<div class="paragraph">
|
|
<p>Es passiert schnell, dass man eine Fülle von Events aufzeichnet, die das weitere Bearbeiten extrem
|
|
erschweren können. Man stelle sich vor, dass zu einer Melodie auch noch MIDI Aftertouch auf jeder
|
|
Note aufgezeichnet wird und darüber hinaus das Modwheel (CC) benutzt wird. Schon ist der ganze
|
|
Bildschirm voller Symbole.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Im Menü "Filter" befinden sich mehrere Möglichkeiten um Events auf Ebenen umzusortieren.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Die einfachste Anwendung ist einen Filter für alle Ebenen zu benutzen und dort lediglich den
|
|
Event-Typ einzustellen, z.B. Aftertouch. Nun werden alle Aftertouch-Events auf die aktuelle Ebene
|
|
verschoben.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Darüber hinaus kann man die Zielebene natürlich selbst einstellen. Auch ist es möglich die jeweiligen
|
|
MIDI Bytes als Ober- und Untergrenze zu definieren.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Beispiel: Event-Typ "Note" mit Byte1 Minimum 0 und Maximum 59 verschiebt alle tiefen Noten, z.B.
|
|
die Begleitung eines Klavierstückes, auf die Zielebene aber lässt alle hohen Noten stehen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Die weiteren Menübefehle in "Filter" bieten Variation, funktionieren aber nach dem gleichen Muster.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_jack_transport_und_timebase_taktstriche">5.2. JACK Transport und Timebase: Taktstriche</h3>
|
|
<div class="paragraph">
|
|
<p>Vico wurde mit dem erklärten Ziel konstruiert, untergeordnet in einer Session zu laufen.
|
|
Startet man es alleine kann man natürlich aufnehmen und alle Funktionen benutzen, aber man sieht
|
|
keine Taktstriche und es ist ein bischen schwieriger die richtige Stelle zu finden.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Gibt es hingegen ein Programm, dass als JACK Timebase "Master" fungiert folgt Vico dessen Taktart
|
|
und Position.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Mit "Bearbeiten"→"Zeige Rhythmus Raster" (Taste L) kann man Taktstriche auch komplett ausschalten.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Vico hat keine festgesetzte Länge. Die Hauptansicht hat praktisch unendliche Länge, und man arbeitet
|
|
stets an der Stelle, an der sich alle anderen Programme auch befinden.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Sobald Transport läuft springt die Hauptansicht zum Playhead, es sei denn
|
|
Bearbeiten→"Playhead stets zentrieren" ist ausgeschaltet.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Starten und Stoppen des Transports ist von jedem laufenden JACK-Programm möglich, inkl. Vico selbst.
|
|
(Leertaste)</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_noten_und_events">6. Noten und Events</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Möchte man Noten und Events mit Maus und Tastatur einfügen, und nicht per MIDI Instrument aufnehmen,
|
|
stehen in den Menüs "Eingabe" und "Raster" zahlreiche Möglichkeiten zur Verfügung.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Alle Events werden immer auf dem Midi-Kanal ihrer Ebene gesendet.</p>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_events_löschen">6.1. Events löschen</h3>
|
|
<div class="paragraph">
|
|
<p>Momentan ausgewählte Events (s.u.), inkl. Noten, können mit der Entfernen Taste gelöscht werden.
|
|
Alternativ kann man im "Bearbeiten"-Menü löschen.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_noten">6.2. Noten</h3>
|
|
<div class="paragraph">
|
|
<p>Bei Programmstart ist der Mauszeiger ein kleines Rechteck mit einem Text zur Tonhöhe. Dies ist der
|
|
Modus zum eingeben von Noten mit beliebiger Länge. Durch gedrückt halten und ziehen der linken
|
|
Maustaste können Noten gezeichnet werden. Man muss zuerst den Mauszeiger auf die richtige Tonhöhe
|
|
bringen, dann anfangen zu zeichnen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Im Eingabemenü stehen feste Tondauern zur Verfügung. Diese können durch die Zahlentasten ausgewählt
|
|
werden. Nach Taste "1" fügt ein Klick mit der linken Maustaste eine Ganze Note ein, mit "2" eine
|
|
Halbe Note usw. "0" wählt wieder den freien Modus aus.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Punktierte Notenlängen können hier für alle festen Dauern an und ausgeschaltet werden.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Eingefügte Noten haben eine Durchschnitts-Velocity (Median) aus allen bisherigen Noten.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_weitere_events">6.3. Weitere Events</h3>
|
|
<div class="paragraph">
|
|
<p>Alle anderen Events können ebenfalls mit der Maus eingefügt werden. Das ist aufgrund großer
|
|
Datenmengen evtl. nicht sehr bequem oder schnell, aber immerhin möglich. Eine Liveaufnahme ist
|
|
wahrscheinlich vorzuziehen.</p>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_control_changes_0xb0">6.3.1. Control Changes (0xB0)</h4>
|
|
<div class="paragraph">
|
|
<p>Zunächst muss man in einem Submenü den CC Typ auswählen, etwa "Volume (CC7)".
|
|
Die Höhe in der Hauptansicht bestimmt nun die Intensität von 0 bis 127.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Möchte man Control Changes eines anderen Typs setzen muss man den Menüeintrag erneut auswählen
|
|
(oder das Tastenkürzel drücken).</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Control Changes können nicht nachträglich ihren Typ ändern, z.B. von Modwheel zu Volume. Man müsste
|
|
sie löschen und neu erstellen.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_program_change_0xc0">6.3.2. Program Change (0xC0)</h4>
|
|
<div class="paragraph">
|
|
<p>Um das Programm zu wechseln, um ein anderes Instrument auszuwählen, muss man lediglich das
|
|
Event auf eine Position setzen. Die Beschriftung zeigt an um welche Programmnummer und
|
|
General-Midi-Instrument es sich handelt. Folgt das verbundene JACK-Intrument nicht der MIDI-Benennung
|
|
kann man die Namen natürlich ignorieren.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_channel_pressure_monophonic_aftertouch_0xd0">6.3.3. Channel Pressure / "Monophonic Aftertouch" (0xD0)</h4>
|
|
<div class="paragraph">
|
|
<p>Channel Pressure präsentiert sich als ein simples X ohne weitere Beschriftung oder Auswahlmöglichkeit.
|
|
Je "höher" die Position, desto intensiver.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_pitch_bend_0xe0_nur_7bit_msb">6.3.4. Pitch Bend (0xE0 - nur 7bit MSB)</h4>
|
|
<div class="paragraph">
|
|
<p>Pitch Bend präsentiert sich als kleiner Kreis ohne weitere Beschriftung
|
|
oder Auswahlmöglichkeit. Je "höher", desto intensiver.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_polyphonic_aftertouch_0xa0">6.3.5. Polyphonic Aftertouch (0xA0)</h4>
|
|
<div class="paragraph">
|
|
<p>Zunächst muss man in einem Submenü die Note auswählen, für die Aftertouch gelten
|
|
soll. Anschließend kann man das Event einfügen. Intensität ist auch hier wieder die "Tonhöhe".
|
|
Möchte man Polyphonic Aftertouch für eine andere Note setzen muss man den Menüeintrag erneut
|
|
auswählen (oder das Tastenkürzel drücken).</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Polyphonic Aftertouch können nicht nachträglich ihren Bezug zur Tonhöhe ändern.
|
|
Man müsste sie löschen und neu erstellen.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_events_bearbeiten_und_verschieben">7. Events bearbeiten und verschieben</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Alle Events lassen sich nachträglich bearbeiten. Hat man Ordnung durch Ebenen hergestellt, etwa
|
|
durch Filter, gestaltet sich dies umso einfacher.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Schreiben von Textanmerkungung ist die einzige Funktion in der Hauptansicht,
|
|
die keine Auswahl benötigt.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Alles weitere benötigt zwingend ausgewählte Events, selbst wenn es nur ein einziges ist.</p>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_textanmerkung">7.1. Textanmerkung</h3>
|
|
<div class="paragraph">
|
|
<p>Existiert gerade keine Auswahl ermöglicht es die rechte Maustaste auf ein Event eine Textanmerkung
|
|
zu schreiben. Sie hat keine Auswirkung auf die Musik.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_auswahl">7.2. Auswahl</h3>
|
|
<div class="paragraph">
|
|
<p>Das wichtigste zuerst: Ein Klick mit der rechten Maustaste ist die beste Möglichkeit die Auswahl
|
|
aufzuheben.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Hält man die Umschalten-Taste gedrückt verschwinden die Event-Symbole am Mauszeiger. Statt dessen
|
|
erhält man den normalen Zeiger und kann durch drücken, halten und ziehen ein Rechteck ziehen um
|
|
Events auszuwählen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Zusätzliche markierte Events werden zur bestehenden Auswahl hinzugefügt.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Die Auswahl kann sich über mehrere Ebenen ausdehnen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Die Hauptansicht scrollt automatisch wenn man mit dem Mauszeiger an den linken bzw. rechten Rand
|
|
kommt. Oft ist aber rauszoomen die bessere Methode um viele Events auf einmal zu markieren.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Das "Bearbeiten"-Menü bietet die Möglichkeit die ganze Ebene zu wählen (Strg+A) oder sogar alle
|
|
Ebenen (Strg+Umschalten+A)</p>
|
|
</div>
|
|
<div class="sect3">
|
|
<h4 id="_auswahl_umkehren">7.2.1. Auswahl umkehren</h4>
|
|
<div class="paragraph">
|
|
<p>Benutzt man die Strg-Taste, anstatt Umschalten, kehrt sich die Auswahl um: Ausgewählte Noten werden
|
|
aufgehoben, alle anderen werden markiert.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Das ist besonders nützlich wenn man einzelne Noten aus einer Auswahl herausnehmen möchte, etwa
|
|
nach Strg+A.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_event_position_verändern">7.3. Event-Position verändern</h3>
|
|
<div class="paragraph">
|
|
<p>Durch Drück/Halten/Ziehen mit der linken Maustaste können alle Events sowohl in ihrer zeitlichen
|
|
Position (links/rechts) als auch in ihrer Tonhöhe bzw. Event-Intensität (hoch/runter) verändert
|
|
werden.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Hält man dabei die Alt-Taste gedrückt bewegen sich Events nur noch nach links/rechts, egal ob die
|
|
Maus auch hoch und runter fährt. Das erhöht die Kontrolle und vermeidet Ausrutscher in der Tonhöhe.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Hält man dabei die Strg-Taste gedrückt bewegen sich Events nur noch nach oben/unten, egal ob die
|
|
Maus auch nach links oder rechts fährt. Das erhöht die Kontrolle und vermeidet Ausrutscher in der
|
|
Position in der Zeit.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Man kann auch die Pfeiltasten benutzen um Events Schrittweise in alle Richtungen zu verschieben.
|
|
Diese Methode ist mitunter am schnellsten und genauesten.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_notenlängen_verändern">7.4. Notenlängen verändern</h3>
|
|
<div class="paragraph">
|
|
<p>Noten in der Auswahl können sowohl in ihrer Dauer nach vorne, wie auch nach hinten verändert werden.
|
|
Dazu kann man mit der Maus am linken oder rechten Rand einer Note mit der linken Maustaste
|
|
drücken/halten/ziehen. Alle markierten Noten werden um das gleiche Maß verändert.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Es gibt eine Mindestdauer, die nicht unterschritten werden kann. Dabei muss nur eine der
|
|
ausgewählten Noten an diese Mindestdauer stoßen, damit der gesamte Prozess gestoppt wird.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Sind gleichzeitig Nicht-Noten markiert werden diese bei der Aktion ignoriert.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_raster_und_positionen_einrasten">7.5. Raster und Positionen einrasten</h3>
|
|
<div class="paragraph">
|
|
<p>Das "Raster"-Menü ermöglicht es Events auf feste Position zu setzen. Bei Programmstart ist das
|
|
Raster zunächst ausgeschaltet: freie Positionierung auf jeder Zeitposition ist möglich.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Wie die Zifferntasten Tondauern, so stellen Umschalten+Ziffern das Rhythmusraster ein.
|
|
Ein Viertelnotenraster lässt nur noch Events und Tonanfänge auf Viertelnotenpositionen zu.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Das Raster auf Achtel- oder Sechzehntelnoten zu stellen ist meistens ein guter Kompromiss zwischen
|
|
robuster Eingabe und rhythmischer Flexibilität.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Bei freier Notenlänge (Umschalten+0) ist der Anfang ans Raster gebunden, das Ende ist jedoch frei.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Beim Verändern von Notenlängen ist das Raster aktiv.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_notenlautstärke_velocity_verändern">7.6. Notenlautstärke / Velocity verändern</h3>
|
|
<div class="paragraph">
|
|
<p>In der Hauptansicht kann man die Lautstärken von Noten nur durch Menübefehle verändern. Eine weitere
|
|
Möglichkeit bietet die Velocityansicht (s.u.).</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Das "Bearbeiten"-Menü bietet mehrere Optionen:
|
|
Man kann Velocities schrittweise erhöhen oder ernierigen. Die Tastenkürzel sind + und -.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Dazu gibt es einen Befehl, der es ermöglicht entweder relativ alle Noten zu verändern oder absolute
|
|
alle auf einen festen Wert zu setzen. Schreibt man ein "+" oder "-" vor den Wert in der Eingabezeile
|
|
wird die Änderung als relativ angesehen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Beispiel: "+23" erhöht alle Velocities um 23. "23" setzt alle auf 23, "-42" verringert alles um
|
|
42.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Achtung! Es wird technisch zugelassen Velocities kleiner als 0 und größer als 127 zu haben. Das ist
|
|
musikalisch nicht möglich und muss von Hand beachtet und korrigiert werden.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Ein weiterer Befehl ist es Velocities zu "komprimieren". Hierbei werden alle proportional in einen
|
|
neuen Rahmen gepresst. Zum Beispiel: Velocities 0 (niedrigster), 64 (mitte) und 127 (höchster)
|
|
werden komprimiert in den Rahmen zwischen 70 und 90. Dann bekommen wir: 70 (niedrigster), 80 (mitte),
|
|
und 90 (höchster).</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Bei all diesen Befehlen werden Nicht-Noten ignoriert.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_kopieren_ausschneiden_einfügen">7.7. Kopieren, Ausschneiden, Einfügen</h3>
|
|
<div class="paragraph">
|
|
<p>Wie in fast allen Programmen gibt es Kopieren, Ausschneiden und Einfügen bzw. Copy, Cut, Paste.
|
|
Die üblichen Tastenkürzel werden benutzt: Strg+C, Strg+X, Strg+V.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Ausgewählten Noten werden mit Strg+C in einen Hintergrundspeicher kopiert; mit Strg+X wird die
|
|
Originalauswahl zusätzlich gelöscht. Da die Auswahl mehrere Ebenen überspannen kann, kann man auch
|
|
von mehreren Ebenen kopieren.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Mit Strg+V wird nun <strong>an der selben Stelle</strong> eine Kopie eingefügt.
|
|
Es ist möglich die Ebene zu wechseln um dort eine Kopie einzufügen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Fügt man auf der selben Ebene ein überlagern sich die Noten zunächst, sind also "unsichtbar"!
|
|
Es ist aber nur ein Satz an Noten ausgewählt! Das heißt man kann sofort verschieben.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_änderungen_rückgängig_machen_undo_redo">7.8. Änderungen rückgängig machen / Undo & Redo</h3>
|
|
<div class="paragraph">
|
|
<p>Strg+Z ("Undo") macht die jeweils letzte Änderung rückgängig.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Strg+Umschalten+Z ("Redo") widerruft das letzte Undo, geht also wieder einen Schritt zurück
|
|
(…​nach vorne?). Hat man inzwischen selber wieder etwas geändert ist Redo nicht mehr möglich.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Undo ist nur bis zum Zustand des Programmstarts möglich.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_velocityansicht">8. Velocityansicht</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Am unteren Rand des Programmfensters befindet sich die Velocityansicht. Sie dient als Übersicht über
|
|
Lautstärken und ermöglicht außerdem das Verändern von Einzelnoten.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Das besondere an dieser Ansicht ist, dass sie erstens nur Noten anzeigt, und keine anderen Events,
|
|
und zweitens nur die ausgewählten Noten anzeigt. So können selbst Einzelnoten aus Akkorden genau
|
|
angesehen werden.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Die Velocityansicht zeigt alle Noten unterhalb ihrer Anfangsposition in der Hauptansicht, scrollt also mit.
|
|
Jeder Balken ist eine Note. Der Rhythmus wird nicht dargestellt; alle Balken sind gleich breit.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Zeigt der Mauszeiger auf einen Balken ändert das Mausrad die Velocity in Zweierschritten von genau
|
|
dieser einen Note.
|
|
Um Velocities aller ausgewählten Noten auf einmal zu veränden muss man jedoch die Menübefehle im
|
|
"Bearbeiten"-Menü benutzen (s.o.)</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_verschiedenes_für_fortgeschrittene_benutzer">9. Verschiedenes für fortgeschrittene Benutzer</h2>
|
|
<div class="sectionbody">
|
|
<div class="sect2">
|
|
<h3 id="_parameter_und_einstellungen_am_anfang_des_stückes">9.1. Parameter und Einstellungen am Anfang des Stückes</h3>
|
|
<div class="paragraph">
|
|
<p>Es gibt keine verstecken Daten oder Einstellungen. Alles, was Vico sendet ist auch für den
|
|
Benutzer zu sehen. Das bedeutet vor allem, dass es keine Starteinstellungen gibt.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Zum Beispiel: Ändert man am Ende eines Stücks für z.B Geige das Instrument auf eine Bratsche
|
|
(Program Change) und spielt dann von vorne ab wird es immer noch die Bratsche sein, da das
|
|
verbundene JACK-Instrument keine Nachricht bekommen hat auf die Geige zu wechseln. Man muss also
|
|
ganz am Anfang die Geige explizit setzen. Ähnliches gilt für Pitchbend oder Control Changes wie
|
|
Klavierpedal, Modwheel, Expression etc.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_midi_parameter_mit_hoher_auflösung_msb_und_lsb">9.2. MIDI Parameter mit hoher Auflösung (MSB und LSB)</h3>
|
|
<div class="paragraph">
|
|
<p>Manche MIDI Parameter sind 14bit, statt der üblichen 7bit. Sie werden aus zwei Werten
|
|
zusammengesetzt. Das ist standard Midipraxis und muss an anderer Stelle gelernt werden.
|
|
Für Vico gilt, dass diese Werte auch als zwei getrennte 7bit-Einträge gesetzt werden müssen.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_überlappende_noten">9.3. Überlappende Noten</h3>
|
|
<div class="paragraph">
|
|
<p>Das MIDI Format verbietet nicht, dass auf ein Note-On ein weiteres Note-On der gleichen Tonhöhe
|
|
folgt, ohne dass vorher ein Note-Off kam. Ach wenn es das in den meisten Fällen wenig musikalischen
|
|
Sinn macht ist es erlaubt und von daher von Vico unterstützt. Im Allgemeinen sollte man versuchen
|
|
sich überlappende Noten der gleichen Tonhöe zu vermeiden (auch auf mehreren Ebenen, wenn diese den
|
|
selben Midikanal teilen).</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_control_changes_sind_falsch_herum_in_vico">9.4. "Control Changes sind falsch herum in Vico!"</h3>
|
|
<div class="paragraph">
|
|
<p>Schlaue MIDI-Füchse wissen: MIDI Nachrichten haben zwei Parameter (Byte1 und Byte2). Bei Noten ist
|
|
Byte1 die Tonhöhe und Byte2 die Velocity. Bei Control Changes ist Byte1 der Typ (z.B. Volume) und
|
|
Byte2 die Intensität. Aber in Vico wird bei CCs Byte2 als Tonhöhe dargestellt, damit man diese
|
|
hoch und runter schieben kann.</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="_rundungsfehler_meine_noten_sind_an_der_falschen_stelle">9.5. Rundungsfehler: Meine Noten sind an der Falschen Stelle</h3>
|
|
<div class="paragraph">
|
|
<p>Mathematik und Computer lassen sich irgendwann nicht mehr austricksen.
|
|
Wenn bei extremer Skalierung (Strg+Umschalten+Mausrad), wenn Noten sehr stark zusammen gepresst
|
|
werden, 64tel Noten auf ein 64tel Raster gesetzt werden wollen kommt es evtl. zu Rundungsfehlern
|
|
und damit zu Fehlpositionierung um einige Pixel bzw. Midi-Ticks. Lösung: Skalierung verändern,
|
|
Noten "länger" darstellen lassen.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect1">
|
|
<h2 id="_installation_und_start">10. Installation und Start</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Vico ist exklusiv für Linux. Am besten installieren Sie Vico über deinen Paketmanager.
|
|
Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre
|
|
Linuxdistribution Vico bereitzustellen.</p>
|
|
</div>
|
|
<div class="paragraph">
|
|
<p>Falls in den Paketquellen vorhanden bitte direkt bei "vico in Agordejo (New Session Manager)" weiterlesen.
|
|
Falls nicht kann man Vico 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/vico.git" class="bare">https://git.laborejo.org/lss/vico.git</a></code></p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Wechseln Sie in das neue Verzeichnis und benutzen diese Befehle:
|
|
*<code>./configure --prefix=/usr</code></p>
|
|
<div class="ulist">
|
|
<ul>
|
|
<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">vico 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>vico</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 vico 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">11. Helfen und Entwicklung</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Sie können Vico 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">11.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">12. 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">12.1. Übersetzungen</h3>
|
|
<div class="paragraph">
|
|
<p>Vico 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
|
|
vico 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.* Bearbeiten Sie <code>template/qtgui/resources/resources.qrc</code> und kopieren die Zeile <code><file>translations/de.qm</file></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 vico mit diesem Befehl, Sprachcode ändern, vom Terminal aus:</p>
|
|
</div>
|
|
<div class="ulist">
|
|
<ul>
|
|
<li>
|
|
<p><code>LANGUAGE=de_DE.UTF-8 ./vico -V</code></p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="footer">
|
|
<div id="footer-text">
|
|
Last updated 2021-01-01 23:55:37 +0100
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|