Music production session manager
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.

1261 lines

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta name="generator" content="Asciidoctor 2.0.10">
  8. <meta name="author" content="Laborejo Software Suite">
  9. <title>Agordejo</title>
  10. <style>
  11. /* Asciidoctor default stylesheet | MIT License | */
  12. /* Uncomment @import statement to use as custom stylesheet */
  13. /*@import ",300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
  14. article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
  15. audio,video{display:inline-block}
  16. audio:not([controls]){display:none;height:0}
  17. html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
  18. a{background:none}
  19. a:focus{outline:thin dotted}
  20. a:active,a:hover{outline:0}
  21. h1{font-size:2em;margin:.67em 0}
  22. abbr[title]{border-bottom:1px dotted}
  23. b,strong{font-weight:bold}
  24. dfn{font-style:italic}
  25. hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
  26. mark{background:#ff0;color:#000}
  27. code,kbd,pre,samp{font-family:monospace;font-size:1em}
  28. pre{white-space:pre-wrap}
  29. q{quotes:"\201C" "\201D" "\2018" "\2019"}
  30. small{font-size:80%}
  31. sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
  32. sup{top:-.5em}
  33. sub{bottom:-.25em}
  34. img{border:0}
  35. svg:not(:root){overflow:hidden}
  36. figure{margin:0}
  37. fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
  38. legend{border:0;padding:0}
  39. button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
  40. button,input{line-height:normal}
  41. button,select{text-transform:none}
  42. button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
  43. button[disabled],html input[disabled]{cursor:default}
  44. input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
  45. button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
  46. textarea{overflow:auto;vertical-align:top}
  47. table{border-collapse:collapse;border-spacing:0}
  48. *,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
  49. html,body{font-size:100%}
  50. 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;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
  51. a:hover{cursor:pointer}
  52. img,object,embed{max-width:100%;height:auto}
  53. object,embed{height:100%}
  54. img{-ms-interpolation-mode:bicubic}
  55. .left{float:left!important}
  56. .right{float:right!important}
  57. .text-left{text-align:left!important}
  58. .text-right{text-align:right!important}
  59. .text-center{text-align:center!important}
  60. .text-justify{text-align:justify!important}
  61. .hide{display:none}
  62. img,object,svg{display:inline-block;vertical-align:middle}
  63. textarea{height:auto;min-height:50px}
  64. select{width:100%}
  65. .center{margin-left:auto;margin-right:auto}
  66. .stretch{width:100%}
  67. .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}
  68. 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;direction:ltr}
  69. a{color:#2156a5;text-decoration:underline;line-height:inherit}
  70. a:hover,a:focus{color:#1d4b8f}
  71. a img{border:0}
  72. p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
  73. p aside{font-size:.875em;line-height:1.35;font-style:italic}
  74. 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}
  75. 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}
  76. h1{font-size:2.125em}
  77. h2{font-size:1.6875em}
  78. h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
  79. h4,h5{font-size:1.125em}
  80. h6{font-size:1em}
  81. hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
  82. em,i{font-style:italic;line-height:inherit}
  83. strong,b{font-weight:bold;line-height:inherit}
  84. small{font-size:60%;line-height:inherit}
  85. code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
  86. ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
  87. ul,ol{margin-left:1.5em}
  88. ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
  89. ul.square li ul, li ul,ul.disc li ul{list-style:inherit}
  90. ul.square{list-style-type:square}
  92. ul.disc{list-style-type:disc}
  93. ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
  94. dl dt{margin-bottom:.3125em;font-weight:bold}
  95. dl dd{margin-bottom:1.25em}
  96. abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
  97. abbr{text-transform:none}
  98. blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
  99. blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
  100. blockquote cite::before{content:"\2014 \0020"}
  101. blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
  102. blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
  103. @media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
  104. h1{font-size:2.75em}
  105. h2{font-size:2.3125em}
  106. h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
  107. h4{font-size:1.4375em}}
  108. table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
  109. table thead,table tfoot{background:#f7f8f7}
  110. 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}
  111. table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
  112. table tr.even,table tr.alt{background:#f8f8f7}
  113. table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
  114. h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
  115. h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
  116. .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
  117. .clearfix::after,.float-group::after{clear:both}
  118. :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;word-wrap:break-word}
  119. :not(pre)>code.nobreak{word-wrap:normal}
  120. :not(pre)>code.nowrap{white-space:nowrap}
  121. pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
  122. pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
  123. pre>code{display:block}
  124. pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
  125. em em{font-style:normal}
  126. strong strong{font-weight:400}
  127. .keyseq{color:rgba(51,51,51,.8)}
  128. 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}
  129. .keyseq kbd:first-child{margin-left:0}
  130. .keyseq kbd:last-child{margin-right:0}
  131. .menuseq,.menuref{color:#000}
  132. .menuseq b:not(.caret),.menuref{font-weight:inherit}
  133. .menuseq{word-spacing:-.02em}
  134. .menuseq b.caret{font-size:1.25em;line-height:.8}
  135. .menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
  136. b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
  137. b.button::before{content:"[";padding:0 3px 0 2px}
  138. b.button::after{content:"]";padding:0 2px 0 3px}
  139. p a>code:hover{color:rgba(0,0,0,.9)}
  140. #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}
  141. #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
  142. #header::after,#content::after,#footnotes::after,#footer::after{clear:both}
  143. #content{margin-top:1.25em}
  144. #content::before{content:none}
  145. #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
  146. #header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
  147. #header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
  148. #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}
  149. #header .details span:first-child{margin-left:-.125em}
  150. #header .details a{color:rgba(0,0,0,.85)}
  151. #header .details br{display:none}
  152. #header .details br+span::before{content:"\00a0\2013\00a0"}
  153. #header .details{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
  154. #header .details br+span#revremark::before{content:"\00a0|\00a0"}
  155. #header #revnumber{text-transform:capitalize}
  156. #header #revnumber::after{content:"\00a0"}
  157. #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}
  158. #toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
  159. #toc>ul{margin-left:.125em}
  160. #toc ul.sectlevel0>li>a{font-style:italic}
  161. #toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
  162. #toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
  163. #toc li{line-height:1.3334;margin-top:.3334em}
  164. #toc a{text-decoration:none}
  165. #toc a:active{text-decoration:underline}
  166. #toctitle{color:#7a2518;font-size:1.2em}
  167. @media screen and (min-width:768px){#toctitle{font-size:1.375em}
  168. body.toc2{padding-left:15em;padding-right:0}
  169. #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}
  170. #toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
  171. #toc.toc2>ul{font-size:.9em;margin-bottom:0}
  172. #toc.toc2 ul ul{margin-left:0;padding-left:1em}
  173. #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
  174. body.toc2.toc-right{padding-left:0;padding-right:15em}
  175. body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
  176. @media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
  177. #toc.toc2{width:20em}
  178. #toc.toc2 #toctitle{font-size:1.375em}
  179. #toc.toc2>ul{font-size:.95em}
  180. #toc.toc2 ul ul{padding-left:1.25em}
  181. body.toc2.toc-right{padding-left:0;padding-right:20em}}
  182. #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}
  183. #content #toc>:first-child{margin-top:0}
  184. #content #toc>:last-child{margin-bottom:0}
  185. #footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
  186. #footer-text{color:rgba(255,255,255,.8);line-height:1.44}
  187. #content{margin-bottom:.625em}
  188. .sect1{padding-bottom:.625em}
  189. @media screen and (min-width:768px){#content{margin-bottom:1.25em}
  190. .sect1{padding-bottom:1.25em}}
  191. .sect1:last-child{padding-bottom:0}
  192. .sect1+.sect1{border-top:1px solid #e7e7e9}
  193. #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}
  194. #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}
  195. #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}
  196. #content h1>,h2>,h3>,#toctitle>,.sidebarblock>.content>.title>,h4>,h5>,h6>{color:#ba3925;text-decoration:none}
  197. #content h1>,h2>,h3>,#toctitle>,.sidebarblock>.content>.title>,h4>,h5>,h6>{color:#a53221}
  198. details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
  199. details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
  200. .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}
  202. .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)}
  203. table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
  204. .admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
  205. .admonitionblock>table td.icon{text-align:center;width:80px}
  206. .admonitionblock>table td.icon img{max-width:none}
  207. .admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
  208. .admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
  209. .admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
  210. .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}
  211. .exampleblock>.content>:first-child{margin-top:0}
  212. .exampleblock>.content>:last-child{margin-bottom:0}
  213. .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}
  214. .sidebarblock>:first-child{margin-top:0}
  215. .sidebarblock>:last-child{margin-bottom:0}
  216. .sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
  217. .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}
  218. .literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
  219. @media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
  220. @media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
  221. .literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
  222. .literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
  223. .listingblock>.content{position:relative}
  224. .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}
  225. .listingblock:hover code[data-lang]::before{display:block}
  226. .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
  227. .listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
  228. .listingblock pre.highlightjs{padding:0}
  229. .listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
  230. .listingblock pre.prettyprint{border-width:0}
  231. .prettyprint{background:#f7f7f8}
  232. pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
  233. pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
  234. pre.prettyprint li code[data-lang]::before{opacity:1}
  235. pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
  236. table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
  237. table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
  238. table.linenotable td.code{padding-left:.75em}
  239. table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
  240. pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
  241. pre.pygments .lineno::before{content:"";margin-right:-.125em}
  242. .quoteblock{margin:0 1em 1.25em 1.5em;display:table}
  243. .quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
  244. .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}
  245. .quoteblock blockquote{margin:0;padding:0;border:0}
  246. .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)}
  247. .quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
  248. .quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
  249. .verseblock{margin:0 1em 1.25em}
  250. .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}
  251. .verseblock pre strong{font-weight:400}
  252. .verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
  253. .quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
  254. .quoteblock .attribution br,.verseblock .attribution br{display:none}
  255. .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
  256. .quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
  257. .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}
  258. .quoteblock.abstract{margin:0 1em 1.25em;display:block}
  259. .quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
  260. .quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
  261. .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
  262. .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
  263. .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
  264. table.tableblock{max-width:100%;border-collapse:separate}
  265. p.tableblock:last-child{margin-bottom:0}
  266. td.tableblock>.content>:last-child{margin-bottom:-1.25em}
  267. td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
  268. table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
  269. table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
  270. table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
  271. table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
  272. table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
  273. table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
  274. table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
  275. table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
  276. table.frame-all{border-width:1px}
  277. table.frame-sides{border-width:0 1px}
  278. table.frame-topbot,table.frame-ends{border-width:1px 0}
  279. 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}
  280. th.halign-left,td.halign-left{text-align:left}
  281. th.halign-right,td.halign-right{text-align:right}
  282. th.halign-center,td.halign-center{text-align:center}
  283. th.valign-top,td.valign-top{vertical-align:top}
  284. th.valign-bottom,td.valign-bottom{vertical-align:bottom}
  285. th.valign-middle,td.valign-middle{vertical-align:middle}
  286. table thead th,table tfoot th{font-weight:bold}
  287. tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
  288. tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
  289. p.tableblock>code:only-child{background:none;padding:0}
  290. p.tableblock{font-size:1em}
  291. ol{margin-left:1.75em}
  292. ul li ol{margin-left:1.5em}
  293. dl dd{margin-left:1.125em}
  294. dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
  295. ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
  296. ul.checklist,ul.none,ol.none,,,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
  298. ul.unstyled,ol.unstyled{margin-left:0}
  299. ul.checklist{margin-left:.625em}
  300. 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}
  301. ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
  302. 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}
  303. ul.inline>li{margin-left:1.25em}
  304. .unstyled dl dt{font-weight:400;font-style:normal}
  305. ol.arabic{list-style-type:decimal}
  306. ol.decimal{list-style-type:decimal-leading-zero}
  307. ol.loweralpha{list-style-type:lower-alpha}
  308. ol.upperalpha{list-style-type:upper-alpha}
  309. ol.lowerroman{list-style-type:lower-roman}
  310. ol.upperroman{list-style-type:upper-roman}
  311. ol.lowergreek{list-style-type:lower-greek}
  312. .hdlist>table,.colist>table{border:0;background:none}
  313. .hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
  314. td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
  315. td.hdlist1{font-weight:bold;padding-bottom:1.25em}
  316. .literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
  317. .colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
  318. .colist td:not([class]):first-child img{max-width:none}
  319. .colist td:not([class]):last-child{padding:.25em 0}
  320. .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}
  321. .imageblock.left{margin:.25em .625em 1.25em 0}
  322. .imageblock.right{margin:.25em 0 1.25em .625em}
  323. .imageblock>.title{margin-bottom:0}
  324. .imageblock.thumb,{border-width:6px}
  325. .imageblock.thumb>.title,>.title{padding:0 .125em}
  326. .image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
  327. .image.left{margin-right:.625em}
  328. .image.right{margin-left:.625em}
  329. a.image{text-decoration:none;display:inline-block}
  330. a.image object{pointer-events:none}
  331. sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
  332. sup.footnote a,sup.footnoteref a{text-decoration:none}
  333. sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
  334. #footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
  335. #footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
  336. #footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
  337. #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
  338. #footnotes .footnote:last-of-type{margin-bottom:0}
  339. #content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
  340. .gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
  341. .gist .file-data>table td.line-data{width:99%}
  342. div.unbreakable{page-break-inside:avoid}
  343. .big{font-size:larger}
  344. .small{font-size:smaller}
  345. .underline{text-decoration:underline}
  346. .overline{text-decoration:overline}
  347. .line-through{text-decoration:line-through}
  348. .aqua{color:#00bfbf}
  349. .aqua-background{background:#00fafa}
  350. .black{color:#000}
  351. .black-background{background:#000}
  352. .blue{color:#0000bf}
  353. .blue-background{background:#0000fa}
  354. .fuchsia{color:#bf00bf}
  355. .fuchsia-background{background:#fa00fa}
  356. .gray{color:#606060}
  357. .gray-background{background:#7d7d7d}
  358. .green{color:#006000}
  359. .green-background{background:#007d00}
  360. .lime{color:#00bf00}
  361. .lime-background{background:#00fa00}
  362. .maroon{color:#600000}
  363. .maroon-background{background:#7d0000}
  364. .navy{color:#000060}
  365. .navy-background{background:#00007d}
  366. .olive{color:#606000}
  367. .olive-background{background:#7d7d00}
  368. .purple{color:#600060}
  369. .purple-background{background:#7d007d}
  370. .red{color:#bf0000}
  371. .red-background{background:#fa0000}
  372. .silver{color:#909090}
  373. .silver-background{background:#bcbcbc}
  374. .teal{color:#006060}
  375. .teal-background{background:#007d7d}
  376. .white{color:#bfbfbf}
  377. .white-background{background:#fafafa}
  378. .yellow{color:#bfbf00}
  379. .yellow-background{background:#fafa00}
  380. span.icon>.fa{cursor:default}
  381. a span.icon>.fa{cursor:inherit}
  382. .admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
  383. .admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
  384. .admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
  385. .admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
  386. .admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
  387. .admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
  388. .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;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}
  389. .conum[data-value] *{color:#fff!important}
  390. .conum[data-value]+b{display:none}
  391. .conum[data-value]::after{content:attr(data-value)}
  392. pre .conum[data-value]{position:relative;top:-.125em}
  393. b.conum *{color:inherit!important}
  394. .conum:not([data-value]):empty{display:none}
  395. dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
  396. h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
  397. p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
  398. p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
  399. p{margin-bottom:1.25rem}
  400. .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
  401. .exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
  402. .print-only{display:none!important}
  403. @page{margin:1.25cm .75cm}
  404. @media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
  405. html{font-size:80%}
  406. a{color:inherit!important;text-decoration:underline!important}
  407. a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
  408. a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
  409. abbr[title]::after{content:" (" attr(title) ")"}
  410. pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
  411. thead{display:table-header-group}
  412. svg{max-width:100%}
  413. p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
  414. h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
  415. #toc,.sidebarblock,.exampleblock>.content{background:none!important}
  416. #toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
  417. #header{text-align:center}
  418. #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
  419. #header .details{border:0!important;display:block;padding:0!important}
  420. #header .details span:first-child{margin-left:0!important}
  421. #header .details br{display:block}
  422. #header .details br+span::before{content:none!important}
  423. #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
  424. #toc, #preamble, h1.sect0, .sect1>h2{page-break-before:always}
  425. .listingblock code[data-lang]::before{display:block}
  426. #footer{padding:0 .9375em}
  427. .hide-on-print{display:none!important}
  428. .print-only{display:block!important}
  429. .hide-for-print{display:none!important}
  430. .show-for-print{display:inherit!important}}
  431. @media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
  432. .sect1{padding:0!important}
  433. .sect1+.sect1{border:0}
  434. #footer{background:none}
  435. #footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
  436. @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
  437. </style>
  438. </head>
  439. <body class="article toc2 toc-left">
  440. <div id="header">
  441. <h1>Agordejo</h1>
  442. <div class="details">
  443. <span id="author" class="author">Laborejo Software Suite</span><br>
  444. </div>
  445. <div id="toc" class="toc2">
  446. <div id="toctitle">Inhaltsverzeichnis</div>
  447. <ul class="sectlevel1">
  448. <li><a href="#_präambel">1. Präambel</a>
  449. <ul class="sectlevel2">
  450. <li><a href="#_anwendungsbeispiel">1.1. Anwendungsbeispiel</a></li>
  451. </ul>
  452. </li>
  453. <li><a href="#_die_schnelle_ansicht">2. Die Schnelle Ansicht</a>
  454. <ul class="sectlevel2">
  455. <li><a href="#_session_auswählen">2.1. Session Auswählen</a></li>
  456. <li><a href="#_in_einer_session">2.2. In einer Session</a></li>
  457. </ul>
  458. </li>
  459. <li><a href="#_die_volle_ansicht">3. Die Volle Ansicht</a>
  460. <ul class="sectlevel2">
  461. <li><a href="#_session_auswählen_2">3.1. Session Auswählen</a></li>
  462. <li><a href="#_in_einer_session_2">3.2. In einer Session</a>
  463. <ul class="sectlevel3">
  464. <li><a href="#_laufende_programm">3.2.1. Laufende Programm</a></li>
  465. <li><a href="#_das_session_menü">3.2.2. Das Session Menü</a></li>
  466. </ul>
  467. </li>
  468. </ul>
  469. </li>
  470. <li><a href="#_programm_datenbank">4. Programm-Datenbank</a>
  471. <ul class="sectlevel2">
  472. <li><a href="#_für_fortgeschrittene">4.1. Für Fortgeschrittene</a></li>
  473. </ul>
  474. </li>
  475. <li><a href="#_tray">5. Tray</a></li>
  476. <li><a href="#_netzwerk_sessions">6. Netzwerk-Sessions</a></li>
  477. <li><a href="#_programmparameter">7. Programmparameter</a></li>
  478. <li><a href="#_verschiedenes_erklärungen_faq">8. Verschiedenes / Erklärungen / FAQ</a></li>
  479. <li><a href="#_installation_und_start">9. Installation und Start</a></li>
  480. <li><a href="#_helfen_und_entwicklung">10. Helfen und Entwicklung</a>
  481. <ul class="sectlevel2">
  482. <li><a href="#_testen_und_programmfehler">10.1. Testen und Programmfehler</a></li>
  483. </ul>
  484. </li>
  485. <li><a href="#_entwicklung">11. Entwicklung</a>
  486. <ul class="sectlevel2">
  487. <li><a href="#_übersetzungen">11.1. Übersetzungen</a></li>
  488. </ul>
  489. </li>
  490. </ul>
  491. </div>
  492. </div>
  493. <div id="content">
  494. <div id="preamble">
  495. <div class="sectionbody">
  496. <div class="paragraph">
  497. <p>Für Programmversion 0.1</p>
  498. </div>
  499. </div>
  500. </div>
  501. <div class="sect1">
  502. <h2 id="_präambel">1. Präambel</h2>
  503. <div class="sectionbody">
  504. <div class="paragraph">
  505. <p>Session Management führt zur Vereinfachung von Arbeitsabläufen, Übersicht und Kontrolle über
  506. Programme und Daten und eine gehörige Portion positive Bequemlichkeit :)</p>
  507. </div>
  508. <div class="paragraph">
  509. <p>Kein Programm existiert für sich alleine, denn kein Programm kann alles leisten, was für heutige
  510. Musikproduktion nötig ist.</p>
  511. </div>
  512. <div class="paragraph">
  513. <p>Direkt ersichtlich ist das in einer JACK Umgebung, die prinzipiell modular ist: Verschiedene
  514. Programme erfüllen verschiedene Zwecke und "sprechen" miteinander, indem sie sich Daten schicken.
  515. Ein Sequencer schickt Midi an einen Sampler oder Synthesizer, der mit einem Plugin-Host für Effekte
  516. verbunden ist usw.</p>
  517. </div>
  518. <div class="paragraph">
  519. <p>Selbst die monolithischsten All-In-One DAWs müssen, oder möchten, irgendwann mit der Außenwelt
  520. kommunizieren. z.B. um sich mit einem Screenrecorder oder Streamingprogramm zu verbinden, einen
  521. Wordprozessor mit Aufnahmereihenfolge oder Liedtexten zu starten, um Musik zu visualisieren oder (um
  522. ehrlich zu bleiben) eine Funktion zu nutzen, die es in diesem Programm eben nicht gibt.</p>
  523. </div>
  524. <div class="paragraph">
  525. <p>Einen Großteil der Arbeit erledigt bereits das JACK-Subsystem. Alle Programme können ihre Musik in
  526. Echtzeit teilen, verfügen über synchronisierte Timelines und spielen im gleichen Tempo.</p>
  527. </div>
  528. <div class="paragraph">
  529. <p>Was übrig bleibt ist die leidige Arbeit jedesmal alle Programme zu starten, die Projektdateien zu
  530. laden, alle Audiokanäle zu verbinden usw. Session Management im allgemeinen (z.B. extra
  531. geschriebene Starter-Scriptdateien) und Agordejo im speziellen nehmen Ihnen diese Arbeit ab, oder
  532. vereinfachen sie zumindest stark.</p>
  533. </div>
  534. <div class="paragraph">
  535. <p>Im Gegensatz zum erwähnten selbstgeschriebenen Script müssen Sie sich nicht im Vorraus für ein
  536. Setup entscheiden, sondern alles wird automatisch verwaltet, solange Sie alles durch den Session
  537. Manager Agordejo starten.</p>
  538. </div>
  539. <div class="sect2">
  540. <h3 id="_anwendungsbeispiel">1.1. Anwendungsbeispiel</h3>
  541. <div class="ulist">
  542. <ul>
  543. <li>
  544. <p>Agordejo starten (Startmenü, Terminal etc.)</p>
  545. </li>
  546. <li>
  547. <p>Man befindet sich nun in der "Schnellen Ansicht" um eine Session zu starten</p>
  548. </li>
  549. <li>
  550. <p>Der große Knopf: "Starte Neue Session"</p>
  551. </li>
  552. <li>
  553. <p>Nun bekommt man eine Auswahl an Programmen:</p>
  554. </li>
  555. <li>
  556. <p>Ein einfacher Klick mit der Maus startet ein Programm</p>
  557. </li>
  558. <li>
  559. <p>Ein weiterer Klick versteckt (oder zeigt anschließend) dessen grafische Oberfläche</p>
  560. </li>
  561. <li>
  562. <p>Sollte das Programm abstürzen bekommt man das signalisiert und kann es neustarten.</p>
  563. </li>
  564. <li>
  565. <p>Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Agordejo gespeichert.</p>
  566. </li>
  567. <li>
  568. <p>Um andere Programme und erweiterte Funktionen zu bekommen kann man in den Tab "Volle Ansicht" wechseln</p>
  569. </li>
  570. <li>
  571. <p>Der Name der Session ist bisher einfach ein Datum. Durch Klick auf dieses kann man einen richtigen Namen eingeben. Etwa "Mein Lied"</p>
  572. </li>
  573. <li>
  574. <p>Ist man soweit fertig kommt man durch den Knopf "Speichern und Schließen" wieder in die Sessionauswahl zurück</p>
  575. </li>
  576. <li>
  577. <p>Nun könnte Agordejo geschlossen werden.</p>
  578. </li>
  579. <li>
  580. <p>Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (<code>~/NSM Sessions/Mein Lied</code>)</p>
  581. </li>
  582. <li>
  583. <p>Die Session kann weitergeführt werden: Nach dem Klick auf den Namen starten alle Programme automatisch und verbinden ihre JACK-Ports untereinander.</p>
  584. </li>
  585. </ul>
  586. </div>
  587. <div class="paragraph">
  588. <p>Die "Schnelle Ansicht" ist ein guter Einstieg. Üblicherweise möchte man jedoch bald in die volle
  589. Ansicht wechseln, und sei es nur um ein Programm zwei mal zu starten oder um zwischendurch manuell
  590. zu speichern.</p>
  591. </div>
  592. </div>
  593. </div>
  594. </div>
  595. <div class="sect1">
  596. <h2 id="_die_schnelle_ansicht">2. Die Schnelle Ansicht</h2>
  597. <div class="sectionbody">
  598. <div class="paragraph">
  599. <p>Die Schnelle Ansicht ist eine aufs Minimum reduzierte Umgebung. Sie, als Benutzer, sollen so wenig
  600. Entscheidungen wie möglich zu treffen haben und so schnell wie möglich (mit den wenigstens Klicks)
  601. eine alte Session starten oder eine neue erstellen können.</p>
  602. </div>
  603. <div class="paragraph">
  604. <p>Aus Stabilitätsgründen werden nur Programme zum Starten angeboten, von denen bekannt ist, dass Sie
  605. korrekt mit dem Session Management Agordejos zusammenarbeiten.</p>
  606. </div>
  607. <div class="paragraph">
  608. <p>Die Schnelle Ansicht ist lediglich eine Ansicht. Es besteht kein technischer Unterschied zur vollen
  609. Session und Sie können jederzeit hin- und herschalten.</p>
  610. </div>
  611. <div class="sect2">
  612. <h3 id="_session_auswählen">2.1. Session Auswählen</h3>
  613. <div class="paragraph">
  614. <p>Hier gibt es nur zwei Möglichkeiten: Klicken Sie auf "Starte Neue Session" um dies zu tun, oder
  615. wählen Sie eine der bestehenden Sessions aus um diese fortzuführen (sofern vorhanden).</p>
  616. </div>
  617. </div>
  618. <div class="sect2">
  619. <h3 id="_in_einer_session">2.2. In einer Session</h3>
  620. <div class="paragraph">
  621. <p>Der Name kann geändert werden. Wir empfehlen ein Datum in der Form YYYY-MM-DD gefolgt von einem
  622. aussagekräftigen Namen. Bitte beachten Sie, dass die Namensänderung erst wirksam wird (z.B. in Form
  623. des Sessionvereichnisses auf der Platte) wenn Sie die Session schließen.</p>
  624. </div>
  625. <div class="paragraph">
  626. <p>Als nächstes steht ein größeres Textfeld für Notizen zur Verfügung. Schreiben Sie was Sie möchten.
  627. TODO-Listen, Liedtexte, Credits und Quellen von externen Samples etc.</p>
  628. </div>
  629. <div class="paragraph">
  630. <p>Programme werden durch Icons symbolisiert. Ein Mausklick startet das Programm (das kann einen
  631. Moment dauern, darauf haben wir keinen Einfluss). Der Status des Programmes wird durch ein Symbol
  632. dargestellt: Das "Play"-Symbol für das laufende Programm, ein Auge bedeutet "Programmfenster
  633. versteckt", das "Power On/Off"-Symbol bedeutet, dass Programm wurde beendet (oder Absturz).</p>
  634. </div>
  635. <div class="paragraph">
  636. <p>Falls das Programm es unterstützt kann ein laufendes Programmfenster versteckt werden. z.B. ein
  637. Synthesizer, einmal eingerichtet, muss nicht permanent zu sehen sein. Klicken Sie einfach erneut
  638. auf das Programmicon. Entweder passiert nichts (das Programm unterstützt es nicht) oder es wird
  639. versteckt. Ein weiterer Klick auf ein versteckes Fenster zeigt es wieder. Jedes Programm ist selbst
  640. dafür verantwortlich ob es seinen Fensterzustand speichert. Manche Programme starten bereits
  641. versteckt.</p>
  642. </div>
  643. <div class="paragraph">
  644. <p>Es gibt <strong>keine</strong> Möglichkeit ein Programm in dieser Ansicht zu beenden. Wechseln Sie hierzu in die
  645. volle Ansicht oder benutzen Sie die Schließenfunktion des Programmes selbst.</p>
  646. </div>
  647. <div class="paragraph">
  648. <p>Es gibt auch <strong>keine</strong> Möglichkeit ein Programm mehrfach zu starten, z.B. für einen Synthesizer pro
  649. Spur. Wechseln sie hierzu in die volle Ansicht. Wenn Sie Programme durch die volle Ansicht mehrfach
  650. gestartet haben können Sie weiterhin die schnelle Ansicht benutzen um die Session zu verwalten,
  651. allerdings ist nicht definiert auf welche Programminstanz sich ein Klick auf das Programmicon (z.B.
  652. zum Verstecken) auswirkt. Mehrere Instanzen sind ein klares Zeichen dafür, dass Sie bereit für die
  653. volle Ansicht sind.</p>
  654. </div>
  655. <div class="paragraph">
  656. <p>Wie Sie irgendwann feststellen werden sind nicht <strong>alle</strong> verfügbaren Programme in der Liste, und es
  657. gibt auch keine Möglichkeit Programme zu starten die zwar gut in einer Session funktionieren (z.B.
  658. ein Stimmgerät), aber nicht explizit dafür geschrieben sind, z.B. ihren Status nicht zurückmelden.
  659. Diese Programme sollten Sie besser in der vollen Ansicht verwalten.</p>
  660. </div>
  661. <div class="paragraph">
  662. <p>Ist ein Programm leider abgestürzt können Sie es nur neu starten und auf dessen automatische
  663. Speicherung hoffen. Viel Glück.</p>
  664. </div>
  665. </div>
  666. </div>
  667. </div>
  668. <div class="sect1">
  669. <h2 id="_die_volle_ansicht">3. Die Volle Ansicht</h2>
  670. <div class="sectionbody">
  671. <div class="paragraph">
  672. <p>Einige Konzepte wurde bereits im Kapitel "Die Schnelle Ansicht" erklärt. Es wird vorrausgesetzt,
  673. dass Sie dieses gelesen haben.</p>
  674. </div>
  675. <div class="sect2">
  676. <h3 id="_session_auswählen_2">3.1. Session Auswählen</h3>
  677. <div class="paragraph">
  678. <p>Sessions stellen sich als Tabelle dar, die Sie durch den Klick auf eine Spaltenüberschrift ordnen
  679. können. So wird hier gezeigt wie die Session heißt und wann das letzte mal gespeichert wurde, wohl
  680. die beiden wichtigsten Informationen. Dann wird gezeigt wie viele Programme/Clients die Session
  681. verwaltet und ob sie Symbolische Links enthält. Letzteres steht wahrscheinlich auf "Ja", wenn Sie
  682. einen Sampler o.ä. benutzen, der große Audiodateien geladen hat. Diese werden zunächst nur in die
  683. Session gelinkt, und nicht kopiert, um Speicherplatz zu sparen. Der angezeigte Speicherverbrauch
  684. ist nicht der tatsächliche Verbrauch, sondern beinhaltet die Größen der Symlinks. Erst wenn Sie die
  685. Session archivieren oder die Links durch reale Dateien ersetzen stimmt die angezeigte Zahl.</p>
  686. </div>
  687. <div class="paragraph">
  688. <p>Schließlich wird auch das Verzeichnis angegeben, in dem die Dateien tatsächlich gespeichert sind.</p>
  689. </div>
  690. <div class="paragraph">
  691. <p>Sessions stellen den Verzeichnisbaum dar. Eine Session ist immer ein "Blatt" und kann keine
  692. Subsessions enthalten. Sie können beim Anlegen oder Umbenennen die Sessions auch im Baum anordnen
  693. indem Sie die gewohnte Schrägstrichschreibweise benutzen: <code>song123</code> &#8594; <code>Neues Album/Song 123</code> oder
  694. <code>Versuche/asdf</code> &#8594; <code>Romantische Pop-Balladen/Mein Herz wird weiter schlagen</code>. Wie Sie ihre Sessions
  695. organisieren, und wie viele Unterverzeichnisse Sie anlegen, steht Ihnen frei. Es ist allerdings
  696. nicht erlaubt den Namen mit <code>/</code> anfangen zu lassen oder die speziellen Zeichen <code>..</code> zu benutzen.
  697. Die Baumansicht kann durch eine Checkbox an der linken Seite deaktiviert werden, um etwa besser
  698. sortieren zu können. Das ist nur eine Ansicht, ihre Daten bleiben unangetastet.</p>
  699. </div>
  700. <div class="paragraph">
  701. <p>Jede Session verfügt über ein Kontextmenü (z.B. rechte Maustaste) mit weiteren Optionen: Sie können
  702. eine Session umbennen, löschen (inkl. aller dazugehörigen Dateien auf der Festplatte!) und mehr.
  703. Diese Funktionen sind gleichwertig zu ihrem Dateimanager. Falls Sie möchten, können Sie auch
  704. einfach die Sessionverzeichnisse selbst umbennen, verschieben oder löschen (sofern diese nicht
  705. gerade geöffnet ist). Dazu muss Agordejo nicht neugestartet werden, es reagiert selbst auf die
  706. Änderungen.</p>
  707. </div>
  708. <div class="paragraph">
  709. <p>Hier gibt es auch die Möglichkeit eine sogenannte "Lock"-Datei zu entfernen. Das ist eine Datei,
  710. die angelegt wird sobald die Session startet und gelöscht wenn beendet. Damit weiß das Programm,
  711. welche Session gerade läuft. Ist eine Lockdatei vorhanden, kann die Session nicht geöffnet werden!
  712. Das sollte im normalen Betrieb nicht vorkommen. Falls aber ein Stromausfall o.ä. mitten in einer
  713. Session passiert ist kann die Lockdatei übrig bleiben, obwohl offensichtlich keine Session geöffnet
  714. ist. In diesem Fall entsperren Sie die Session hierdurch manuell.</p>
  715. </div>
  716. <div class="paragraph">
  717. <p>Klicken Sie auf "Neue Session" um diese anzulegen. Im Gegensatz zur schnellen Ansicht müssen Sie
  718. hier den Namen direkt eingeben. Wie oben erwäht können Sie dazu den Verzeichnisbaum benutzen.
  719. Darüberhinaus wird angeboten verschiedene (fast schon obligatorische) Programme direkt
  720. mitzustarten. Im Normalfall sollte man alle Vorschläge akzeptieren. Es gibt jederzeit die
  721. Möglichkeit diese wieder zu entfernen.</p>
  722. </div>
  723. <div class="paragraph">
  724. <p>Ein Doppelklick auf eine existierende Session (oder der Knopf "Lade Ausgewählte") machen genau das.</p>
  725. </div>
  726. </div>
  727. <div class="sect2">
  728. <h3 id="_in_einer_session_2">3.2. In einer Session</h3>
  729. <div class="paragraph">
  730. <p>Die volle Ansicht ist in drei Bereiche eingeteilt: Programmstarter, Programme in der laufenden Session
  731. und die Session-Notizen. Dazu gibt es ein dynamisches Menü.</p>
  732. </div>
  733. <div class="paragraph">
  734. <p>Auf der linken Seite sehen die den Programmstarter. Ein Doppelklick startet eine Programminstanz in
  735. der Session. Sie können ein Programm auch mehrmals starten. Welche Programme zur Verfügung stehen
  736. entnehmen Sie bitte dem Kapitel "Programm-Datenbank".</p>
  737. </div>
  738. <div class="sect3">
  739. <h4 id="_laufende_programm">3.2.1. Laufende Programm</h4>
  740. <div class="paragraph">
  741. <p>Gestartete Programme befinden sich auf der rechten Seite. Ein Doppelklick schaltet die Sichtbarkeit
  742. um, sofern das Programm unterstüzt sein Fenster zu verstecken. Falls nicht passiert nichts.</p>
  743. </div>
  744. <div class="paragraph">
  745. <p>Pro Programm gibt es folgende Informationen:</p>
  746. </div>
  747. <div class="ulist">
  748. <ul>
  749. <li>
  750. <p>Der Name (evtl. mit Icon)</p>
  751. </li>
  752. <li>
  753. <p>Ein "Label", das Programme frei benutzen können (z.B. zeigt Fluajho hier das geladene .sf2 an)</p>
  754. </li>
  755. <li>
  756. <p>Den Programmstatus (auf Englisch, da es sich um definierte Schlüsselworte handelt).</p>
  757. </li>
  758. <li>
  759. <p>Stopped / Gestoppt, läuft nicht</p>
  760. </li>
  761. <li>
  762. <p>Ready / Läuft und Bereit</p>
  763. </li>
  764. <li>
  765. <p>Launch / Startet. Wenn das Programm hier stehen bleibt, aber funktioniert, handelt es sich um eins, dass nicht speziell den Sessionmodus unterstützt. Agordejo kann nicht wissen, ob es bereits läuft oder nicht. Alles ist in Ordnung! :)</p>
  766. </li>
  767. <li>
  768. <p>Weitere Zustände sind nur Übergänge und meist nur sehr kurz zu sehen, z.B. Open / Läd gerade</p>
  769. </li>
  770. <li>
  771. <p>Sichtbarkeit (Ein Kreuz für sichtbar, Leer für unsichtbar)</p>
  772. </li>
  773. <li>
  774. <p>Änderungen - Gibt es momentan ungespeicherte Änderungen?</p>
  775. </li>
  776. <li>
  777. <p>ID - Ein eindeutiges Kürzel mit dem man auch mehrere Instanzen des gleichen Programmes auseinander halten kann</p>
  778. </li>
  779. </ul>
  780. </div>
  781. <div class="paragraph">
  782. <p>Alle weiteren Funktionen sind durch das Menü oder Kontextmenü zugänglich. Ein Klick auf ein Programm
  783. wählt es aus, und das Clientmenü in der Menüleiste gilt nun dafür. Alternativ kann mit Rechtsklick
  784. auf den Eintrag das Kontextmenü geöffnet werden, das identisch ist.</p>
  785. </div>
  786. <div class="paragraph">
  787. <p>Neben den selbsterklärenden Funktionen gibt es noch:</p>
  788. </div>
  789. <div class="ulist">
  790. <ul>
  791. <li>
  792. <p>Umbenennen gibt dem Programm einen selbstgewählten Namen, besonders um seinen Zweck deutlich zu machen und es besser von anderen zu unterscheiden. Diese Funktion steht nur zur Verfügung, wenn <code>nsm-data</code> in der Session läuft.</p>
  793. </li>
  794. <li>
  795. <p>Speichern weist nur dieses Programm an abzuspeichern</p>
  796. </li>
  797. <li>
  798. <p>Entfernen nimmt das Programm aus der Session. Dabei werden jedoch keine Dateien gelöscht. Zur Zeit muss leider noch von Hand im Dateimanager "aufgeräumt" werden.</p>
  799. </li>
  800. </ul>
  801. </div>
  802. <div class="paragraph">
  803. <p>Befindet sich der Client "nsm-data" in der Session (das ist Voreinstellung) steht im unteren
  804. Bereich ein großes Textfeld für Notizen zur Verfügung. Es ist dasselbe wie in der schnellen
  805. Ansicht. Schreiben Sie was Sie möchten: TODO-Listen, Liedtexte, Credits und Quellen von externen
  806. Samples etc.</p>
  807. </div>
  808. </div>
  809. <div class="sect3">
  810. <h4 id="_das_session_menü">3.2.2. Das Session Menü</h4>
  811. <div class="paragraph">
  812. <p>Im Gegensatz zur schnellen Ansicht stehen hier weitere Menüs zur Verfügung, die auch über die
  813. üblichen Tastaturkürzel zu erreichen sind (Strg+S für Speichern etc.).</p>
  814. </div>
  815. <div class="ulist">
  816. <ul>
  817. <li>
  818. <p>Speichern weist alle Programme an zu speichern, die Session läuft weiter</p>
  819. </li>
  820. <li>
  821. <p>Speichern und Schließen beendet die Session, vorher speichern alle Programme noch einmal ab</p>
  822. </li>
  823. <li>
  824. <p>Abbrechen beendet die Session, ohne dass die Programme abspeichern</p>
  825. </li>
  826. <li>
  827. <p>Speichern Unter speichert die Session unter einem anderen Namen und schließt die laufende ohne abzuspeichern. Ab nun arbeitet man in der neuen Session.</p>
  828. </li>
  829. <li>
  830. <p>Client Hinzufügen bietet die Option ein beliebiges Programm hinzuzufügen, egal ob es in der Programmdatenbank ist, oder nicht.</p>
  831. </li>
  832. <li>
  833. <p>Es werden alle installierten Programme vorgeschlagen. Agordejo überprüft diese nicht auf Sinnhaftigkeit für eine Musik-Session, oder auch nur auf Lauffähigkeit. Sie finden hier <code>ls</code> wie auch <code>agordejo</code> selbst.</p>
  834. </li>
  835. </ul>
  836. </div>
  837. </div>
  838. </div>
  839. </div>
  840. </div>
  841. <div class="sect1">
  842. <h2 id="_programm_datenbank">4. Programm-Datenbank</h2>
  843. <div class="sectionbody">
  844. <div class="paragraph">
  845. <p>Agordejos Programmstarter basiert auf einer Programmdatenbank, die sich teilweise selbst erstellt,
  846. teilweise von Hand eingepflegt wurde. Das bedeutet nichts anderes, als das alle installieren
  847. Programme in ihrem System überprüft werden (wie ein Startmenü) und Ihnen im Agordejo-Starter nur
  848. das angeboten wird, was Sie auch tatsächlich installiert haben.</p>
  849. </div>
  850. <div class="paragraph">
  851. <p>Beim ersten Start wird daher die Programmdatenbank erstellt. Je nach System kann dies einige
  852. Augenblicke bis einige Minuten dauern.</p>
  853. </div>
  854. <div class="paragraph">
  855. <p>Wenn Sie Audio-Programme neu installieren, oder deinstallieren müssen Sie die Datenbank selbst
  856. aktualisieren. Im Steuerungsmenü gibt es den Befehl. Programminstallationen sind sogar möglich
  857. während Agordejo läuft (auch in einer Session). Nach einem DB-Update stehen Ihnen sofort alle
  858. neuen Programme zur Verfügung.</p>
  859. </div>
  860. <div class="paragraph">
  861. <p>Wenn Sie ein installiertes Programm nicht in unserer Liste sehen, aber von dem Sie sicher sind,
  862. dass es Session Management unterstützt melden Sie es bitte an <a href=""></a> oder unter
  863. <a href="" class="bare"></a> .</p>
  864. </div>
  865. <div class="paragraph">
  866. <p>Darüberhinaus können Sie (in der vollen Ansicht) Programme hinzufügen, die nicht in der Datenbank
  867. sind. Siehe dort.</p>
  868. </div>
  869. <div class="sect2">
  870. <h3 id="_für_fortgeschrittene">4.1. Für Fortgeschrittene</h3>
  871. <div class="paragraph">
  872. <p>Die eiserne Regel ist, dass nur Programme im $PATH in die Datenbank aufgenommen werden. Absolute
  873. Pfade sind unzulässig, selbst wenn man den Programmnamen selbst durch das Menü eingibt. Allerdings
  874. möchte man manchmal Software nur ausprobieren, oder ist selbst Entwickler und möchte ohne
  875. systemweite Installation testen.</p>
  876. </div>
  877. <div class="paragraph">
  878. <p>In den Einstellungen im Steuerungsmenü gibt es einen Tab "Programm-PATH", wo Sie eigene Suchpfade
  879. hinzufügen können. Ein absoluter Pfad pro Zeile, keine Wildcards, Trailing Slash spielt keine
  880. Rolle.</p>
  881. </div>
  882. <div class="paragraph">
  883. <p>Zum Beispiel: <code>/home/myuser/sources/newsequencer/bin/</code></p>
  884. </div>
  885. <div class="paragraph">
  886. <p>Diese Suchpfade werden nicht in der Session gespeichert sondern lokal in ihrem <code>~/.config</code>
  887. Verzeichnis.</p>
  888. </div>
  889. </div>
  890. </div>
  891. </div>
  892. <div class="sect1">
  893. <h2 id="_tray">5. Tray</h2>
  894. <div class="sectionbody">
  895. <div class="paragraph">
  896. <p>Agordejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das
  897. Trayicon zeigt oder versteckt Agordejo.</p>
  898. </div>
  899. <div class="paragraph">
  900. <p>Schließt man Agordejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das
  901. Programm und die Session nicht beendet, sondern in den Tray minimiert.</p>
  902. </div>
  903. <div class="paragraph">
  904. <p>Ein Rechtsklick auf das Icon bietet Schnellzugriff auf häufige Funktionen:</p>
  905. </div>
  906. <div class="paragraph">
  907. <p>Sie können hier die zuletzt benutzen Sessions direkt starten.</p>
  908. </div>
  909. <div class="paragraph">
  910. <p>Läuft bereits eine Session können Sie speichern, abbrechen etc.</p>
  911. </div>
  912. <div class="paragraph">
  913. <p>Agordejo kann hier auch komplett beendet werden.</p>
  914. </div>
  915. </div>
  916. </div>
  917. <div class="sect1">
  918. <h2 id="_netzwerk_sessions">6. Netzwerk-Sessions</h2>
  919. <div class="sectionbody">
  920. <div class="paragraph">
  921. <p>Die Funktionalität Sessions im lokalen Netzwerk zu verteilen ist für eine spätere Programmversion
  922. vorgesehen.</p>
  923. </div>
  924. </div>
  925. </div>
  926. <div class="sect1">
  927. <h2 id="_programmparameter">7. Programmparameter</h2>
  928. <div class="sectionbody">
  929. <div class="paragraph">
  930. <p>Als fortgeschrittener Benutzer können Sie Agordejo im Terminal starten und dort einige Parameter
  931. angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.</p>
  932. </div>
  933. <div class="paragraph">
  934. <p>Eine Auswahl:</p>
  935. </div>
  936. <div class="ulist">
  937. <ul>
  938. <li>
  939. <p><code>--session neuesAlbum/meinLied</code> startet direkt die angegebene Session.</p>
  940. </li>
  941. <li>
  942. <p><code>--continue</code> startet die zuletzt benutzte Session</p>
  943. </li>
  944. <li>
  945. <p><code>--hide</code> startet Agordejo als Trayicon.</p>
  946. </li>
  947. <li>
  948. <p><code>--url osc.udp://myhost.localdomain:14294/</code> verbindet sich zu diesem Server, falls vorhanden, oder startet den internen Session-Server unter dieser Adresse. Dies ist eine sehr technische Option und wird wahrscheinlich nicht benötigt.</p>
  949. </li>
  950. <li>
  951. <p><code>--session-root /home/benutzer/produktion2020</code> setzt das Wurzelverzeichnis. Nur Sessions in diesem Verzeichnis werden angezeigt, alles wird dort gespeichert.</p>
  952. </li>
  953. </ul>
  954. </div>
  955. <div class="paragraph">
  956. <p>Die Kombination von <code>--continue</code> und <code>--hide</code> ergibt einen Modus, den viele Leute vom Session Management
  957. erwarten: dort weiter machen wo man aufgehört hat, ohne dass Extrafenster angezeigt werden.
  958. Falls Ihr System über ein Startmenü verfügt finden Sie daher neben dem normalen Agordejo-Starter
  959. auch eine "Agordejo Continue"-Verknüpfung für genau diesen Modus.</p>
  960. </div>
  961. </div>
  962. </div>
  963. <div class="sect1">
  964. <h2 id="_verschiedenes_erklärungen_faq">8. Verschiedenes / Erklärungen / FAQ</h2>
  965. <div class="sectionbody">
  966. <div class="paragraph">
  967. <p><strong>Session Speichern und Beenden reagiert langsam</strong>: Agordejo ist kein Einzelprogramm wie ein
  968. Office-Writer. Die teilnehmenden Programme in der Session sind auch keine Plugins. Wenn Sie die
  969. Session beenden wird ein Signal an alle teilnehmenden Programme gesendet, dass sie speichern
  970. sollen. Das kann ein paar Momente dauern, in denen Sie "live" mitverfolgen, wie die einzelnen
  971. Programme sich beenden und aus der Session verschwinden. Es ist alles in Ordnung.</p>
  972. </div>
  973. <div class="paragraph">
  974. <p><strong>Ich habe ein Programm hinzugefügt aber es speichert nicht mit der Session</strong>:
  975. Unterstützt das Programm Session Management? Wenn nicht, kann Agordejo nichts tun.
  976. Aber Sie können die Programmentwickler bitten mit uns Kontakt aufzunehmen (<a href=""></a>)
  977. und wir können zusammen an der Unterstützung arbeiten.</p>
  978. </div>
  979. <div class="paragraph">
  980. <p><strong>Die Programme hängen beim Beenden</strong>:
  981. Das tut uns leid. Eigentlich sind die Programme selbst schuld, aber auch wir sind daran
  982. interessiert die Situation zu verbessen, indem wir in Zukunft zumindest eine Notlösung anbieten.</p>
  983. </div>
  984. <div class="paragraph">
  985. <p><strong>Agordejo startet nicht mehr! Ich starte das Programm aber ich sehe nichts.</strong>: Wahrscheinlich ist
  986. Agordejo unsichtbar, weil Sie es aus dem Tray heraus beendet hatten. Ist es im Tray? Eigentlich
  987. hätte ein kleines Nachrichtenfenster aufpoppen sollen. Falls in ihrem Window-Manager kein Tray
  988. vorhanden ist sollte das Programm immer sichtbar sein. Bei besonderen Window-Managern (bei der
  989. großen Auswahl in Linux) kann es sein, dass die Tray-Erkennung nicht richtig funktioniert hat.
  990. Notfallplan ist es <code>~/.config/LaborejoSoftwareSuite/agordejo</code> zu löschen. Dabei werden KEINE
  991. Sessions gelöscht, sondern nur lokale Einstellungen wie die Sichtbarkeit des Programmfensters. Beim
  992. nächsten Start wird Agordejo sich verhalten wie beim allerersten.</p>
  993. </div>
  994. <div class="paragraph">
  995. <p><strong>JACK ist abgestürzt. Viele Programme hängen. Was tun um Datenverlust zu vermeiden?</strong>:
  996. Vermutlich sind bereits viele Programme der Session nicht mehr richtig lauffähig und reagieren
  997. nicht mehr. Am besten benutzen Sie die <code>Session Abbrechen</code> Funktion und starten alles neu. Wenn die
  998. Daten tatsächlich schon lange ungespeichert waren kann man auch ein Speichern/Beenden wagen. Dann
  999. kann es aber sein, dass man beim nächsten Start einige Jack connections von Hand neu ziehen muss.
  1000. Wer extrem sicher gehen möchte kann vor dem Beenden der Session (mit unweigerlichen abstürzen)
  1001. manuell im Dateimanager eine Kopie des Session-Verzeichnisses machen.</p>
  1002. </div>
  1003. <div class="paragraph">
  1004. <p><strong>Ein Programmupdate hat meine Session kaputtgemacht, weil es seine Dateien nicht mehr laden kann.</strong>:
  1005. Das ist leider ein Problem, dass auch Agordejo nicht lösen kann. Es passiert mit LV2-Plugins ebenso
  1006. wie mit alle anderen Software, etwa Officeprogramme. Falls Sie befürchten, dass ein Programm in
  1007. Zukunft inkompatibel wird notieren Sie sich dessen Versionsnummer in den Session-Notizen, damit Sie
  1008. zumindest zur Not die alte Programmversion wieder installieren können (auch wenn das sehr
  1009. umständlich ist).</p>
  1010. </div>
  1011. <div class="paragraph">
  1012. <p><strong>Was ist besser? Monolithische DAW oder Session Management?</strong>:
  1013. Warum nicht beides? Es gibt keinen Konflikt.
  1014. Session Management lohnt sich ab zwei teilnehmenden Programmen, und auf die kommt man so gut wie
  1015. immer.</p>
  1016. </div>
  1017. <div class="paragraph">
  1018. <p>Sie sollten sich nicht genötigt fühlen plötzlich alles modular mit Einzelprogrammen zu machen, nur
  1019. weil Sie einen Session Manager benutzen.
  1020. Agordejo ist dafür da, ihre Musikproduktion einfacher zu machen. Wenn es schneller und bequemer ist
  1021. alle Plugins und Effekte z.B. in einer einzelnen Carla-Instanz zu verwalten dann sollten Sie genau
  1022. das machen.
  1023. Wenn Sie prinzipiell alles in Ardour machen wollen, machen Sie das, aber starten Sie Ardour trotzdem
  1024. im Session Management, denn kein Programm kann alles alleine, und der Zeitpunkt wird kommen, an dem
  1025. Sie ein weiteres hinzufügen.</p>
  1026. </div>
  1027. <div class="paragraph">
  1028. <p>Session Management ist andere Hirarchieebene. So sind Sequencer oder DAWs selbst keine Plugins.
  1029. Patroneo gehört nicht "in" Ardour und Ardour gehört nicht "in" Laborejo. Und schon in diesem Beispiel
  1030. erfüllt jedes der Programme eine Rolle, die die anderen beiden nicht leisten können, da sie einer
  1031. anderen Design-Philosophie folgen. Und mehr:</p>
  1032. </div>
  1033. <div class="paragraph">
  1034. <p>Manche Programme können keine Plugins hosten, manche können keine Audiodateien exportieren. Das
  1035. sind deswegen keine schlechten Programme, sondern welche, die sich auf eine Aufgabe konzentrieren.
  1036. Darüberhinaus gibt es eine Menge Software, die nicht direkt Musikproduktion ausübt,
  1037. aber trotzdem inhaltlich dazu gehört: Open Broadcast Studio (OBS), Musikplayer, Schreib-
  1038. und Grafikprogramme etc.</p>
  1039. </div>
  1040. <div class="paragraph">
  1041. <p><strong>Agordejo beinhaltet Funktionalität, die nicht seine Aufgabe ist</strong>: Musikproduktion ist sehr komplex
  1042. und Komplexität ist unvermeidlich. Sie ist wie ein Wasserbett: Drückt man die auf der einen Seite
  1043. runter, muss etwas an einen anderen Stelle hochdrücken. Macht man ein programm "clean and lean",
  1044. und implementiert damit nur einen Teil des kompletten Arbeitsablaufs, dann kommt der fehlende Teil
  1045. woanders wieder hoch. Ein minimalistischer Session Manager provoziert Plugins (nicht LV2),
  1046. Helper-Scripts, Workarounds und Hacks. z.B. Dateiverwaltung nicht mit einzuschließen provoziert
  1047. Anwender-Fehler im Dateimanager (wie das Löschen der falschen Dateien). Wenn der SM weiß was zu tun
  1048. ist, und er es tun kann, dann soll er es machen.</p>
  1049. </div>
  1050. <div class="paragraph">
  1051. <p>Oder Abstürze: Technisch gesehen sind abstürzende Programme nicht das "Problem" des Session
  1052. Managers, aber sie sind Teil der Softwarewirklichkeit. Abstürze passieren jeden Tag und nun muss
  1053. man damit umgehen. Kann Agordejo die Arbeit vereinfachen und helfen den guten Zustand wieder
  1054. herzustellen? Dann sollte das geschehen.</p>
  1055. </div>
  1056. <div class="paragraph">
  1057. <p>Session Management ist außerdem eine Chance auch komplexe technische Szenarios zu vereinfachen, z.B.
  1058. Sessions über das Netzwerk zu verteilen.</p>
  1059. </div>
  1060. </div>
  1061. </div>
  1062. <div class="sect1">
  1063. <h2 id="_installation_und_start">9. Installation und Start</h2>
  1064. <div class="sectionbody">
  1065. <div class="paragraph">
  1066. <p>Agordejo ist exklusiv für Linux. Am besten installieren Sie Agordejo über deinen Paketmanager.
  1067. Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre
  1068. Linuxdistribution Agordejo bereitzustellen.</p>
  1069. </div>
  1070. <div class="paragraph">
  1071. <p>Falls nicht in den Paketquellen vorhanden kann man Agordejo auch selbst "bauen".</p>
  1072. </div>
  1073. <div class="ulist">
  1074. <div class="title">Abhängigkeiten*</div>
  1075. <ul>
  1076. <li>
  1077. <p>Eine Liste der Abhängigkeit befindet sich in der</p>
  1078. </li>
  1079. <li>
  1080. <p>Kompilieren und Installieren geht entweder mit einem Releasedownload oder mit der Git-Version:</p>
  1081. <div class="ulist">
  1082. <ul>
  1083. <li>
  1084. <p>Laden Sie von <a href="" class="bare"></a> die aktuelle Version herunter und entpacken Sie sie.</p>
  1085. </li>
  1086. <li>
  1087. <p><code>git clone <a href="" class="bare"></a></code></p>
  1088. </li>
  1089. </ul>
  1090. </div>
  1091. </li>
  1092. <li>
  1093. <p>Wechseln Sie in das neue Verzeichnis und benutzen diese Befehle:
  1094. *<code>./configure --prefix=/usr</code></p>
  1095. <div class="ulist">
  1096. <ul>
  1097. <li>
  1098. <p>Das Standardprefix is /usr/local</p>
  1099. </li>
  1100. </ul>
  1101. </div>
  1102. </li>
  1103. <li>
  1104. <p><code>make</code></p>
  1105. </li>
  1106. <li>
  1107. <p><code>sudo make install</code></p>
  1108. </li>
  1109. </ul>
  1110. </div>
  1111. <div class="paragraph">
  1112. <p>Nun ist das Programm durch <code>agordejo</code> in ihrem Terminal oder Programmstarter vorhanden.</p>
  1113. </div>
  1114. <div class="paragraph">
  1115. <p>In der Datei befinden sich weitere Möglichkeiten agordejo zu starten. Diese sind zum
  1116. Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.</p>
  1117. </div>
  1118. </div>
  1119. </div>
  1120. <div class="sect1">
  1121. <h2 id="_helfen_und_entwicklung">10. Helfen und Entwicklung</h2>
  1122. <div class="sectionbody">
  1123. <div class="paragraph">
  1124. <p>Sie können Agordejo auf viele Arten und Weisen helfen: Testen und Fehler melden, übersetzen, marketing,
  1125. anderen Nutzern helfen und schließlich programmieren.</p>
  1126. </div>
  1127. <div class="sect2">
  1128. <h3 id="_testen_und_programmfehler">10.1. Testen und Programmfehler</h3>
  1129. <div class="paragraph">
  1130. <p>Falls Sie einen Fehler im Programm entdecken (oder es zu langsam läuft) melden Sie diese bitte auf
  1131. eine Art und Weise, die ihnen am besten passt.</p>
  1132. </div>
  1133. <div class="ulist">
  1134. <div class="title">Kontaktmöglichkeiten</div>
  1135. <ul>
  1136. <li>
  1137. <p>Bugs und Probleme melden: <a href="" class="bare"></a></p>
  1138. </li>
  1139. <li>
  1140. <p>Webseite: <a href="" class="bare"></a></p>
  1141. </li>
  1142. <li>
  1143. <p>E-Mail: <a href=""></a></p>
  1144. </li>
  1145. <li>
  1146. <p>Wenn Sie die Gelegenheiten sehen und wissen, dass ein Entwickler es lesen wird sind auch Foren, Socialmedia etc. möglich.</p>
  1147. </li>
  1148. </ul>
  1149. </div>
  1150. </div>
  1151. </div>
  1152. </div>
  1153. <div class="sect1">
  1154. <h2 id="_entwicklung">11. Entwicklung</h2>
  1155. <div class="sectionbody">
  1156. <div class="paragraph">
  1157. <p>Falls Sie an der Entwicklung interessiert sind, melden Sie sich am besten direkt bei uns (s.o.)
  1158. Kurzversion: clone git, programmieren, einen git-patch erstellen oder uns eine git URL zukommen lassen.</p>
  1159. </div>
  1160. <div class="sect2">
  1161. <h3 id="_übersetzungen">11.1. Übersetzungen</h3>
  1162. <div class="paragraph">
  1163. <p>Agordejo ist mit Hilfe der Qt-Toolchain sehr einfach zu übersetzen, ohne, dass man dafür Programmieren muss.
  1164. Die einfachste Variante ist es einfach die Entwickler anzusprechen und sie werden die neue Sprache einrichten.</p>
  1165. </div>
  1166. <div class="paragraph">
  1167. <p>Hier ist dennoch die komplette Anleitung, um eine Übersetzung komplett alleine anzufertigen und in
  1168. das Programm einzubinden.</p>
  1169. </div>
  1170. <div class="paragraph">
  1171. <p>So fügt man eine neue Sprache hinzu:</p>
  1172. </div>
  1173. <div class="ulist">
  1174. <ul>
  1175. <li>
  1176. <p>Öffnen Sie ein Terminal und navigieren zu qtgui/resources/translations</p>
  1177. </li>
  1178. <li>
  1179. <p>Bearbeiten Sie die Datei <code></code> in einem Texteditor.</p>
  1180. <div class="ulist">
  1181. <ul>
  1182. <li>
  1183. <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>
  1184. </li>
  1185. <li>
  1186. <p>Achten Sie bitte darauf ein Leerzeichen zwischen den einzelnen Sprachen zu lassen</p>
  1187. </li>
  1188. </ul>
  1189. </div>
  1190. </li>
  1191. <li>
  1192. <p>Führen Sie <code>sh</code> im selben Verzeichnis aus.</p>
  1193. <div class="ulist">
  1194. <ul>
  1195. <li>
  1196. <p>Das Programm hat nun eine neue <code>.ts</code>-Datei im Verzeichnis erstellt.</p>
  1197. </li>
  1198. </ul>
  1199. </div>
  1200. </li>
  1201. <li>
  1202. <p>Starten Sie Qt Linguist mit <code>linguist-qt5</code> (kann evtl. anders heißen) und öffnen von dort die neu generierte Datei.</p>
  1203. </li>
  1204. <li>
  1205. <p>Wählen Sie die "Target Language", also Zielsprache, aus und benutzen das Programm um eine Übersetzung anzufertigen.</p>
  1206. </li>
  1207. <li>
  1208. <p>Senden Sie uns bitte die .ts Datei, z.B. per E-Mail an <a href=""></a> (s.u bei Bugs und Programmfehler für mehr Kontaktmöglichkeiten)</p>
  1209. </li>
  1210. </ul>
  1211. </div>
  1212. <div class="paragraph">
  1213. <p>Die Übersetzung können Sie auch selbst, zum Testen, einbinden. Dafür sind rudimentäre
  1214. Python Kentnisse nötig.</p>
  1215. </div>
  1216. <div class="ulist">
  1217. <ul>
  1218. <li>
  1219. <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>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>
  1220. </li>
  1221. <li>
  1222. <p>Führen Sie <code>sh</code> aus</p>
  1223. </li>
  1224. <li>
  1225. <p>Bearbeiten Sie <code>engine/</code>: Die neue Sprache hinzufügen. z.B. <code>{"German":"de.qm", "Esperanto:"eo.qm"}</code></p>
  1226. <div class="ulist">
  1227. <ul>
  1228. <li>
  1229. <p>Um den Sprachstring herauszufinden öffnen Sie den <code>python3</code>-Interpreter im Terminal und führen aus:</p>
  1230. </li>
  1231. <li>
  1232. <p><code>from PyQt5 import QtCore;QtCore.QLocale().languageToString(QtCore.QLocale().language())</code></p>
  1233. </li>
  1234. </ul>
  1235. </div>
  1236. </li>
  1237. </ul>
  1238. </div>
  1239. <div class="paragraph">
  1240. <p>Um die neue Übersetzung zu testen starten Sie das Programm, falls ihr System bereits auf diese
  1241. Sprache eingstellt ist.
  1242. Ansonsten starten Sie agordejo mit diesem Befehl, Sprachcode ändern, vom Terminal aus:</p>
  1243. </div>
  1244. <div class="ulist">
  1245. <ul>
  1246. <li>
  1247. <p><code>LANGUAGE=de_DE.UTF-8 ./agordejo -V</code></p>
  1248. </li>
  1249. </ul>
  1250. </div>
  1251. </div>
  1252. </div>
  1253. </div>
  1254. </div>
  1255. <div id="footer">
  1256. <div id="footer-text">
  1257. Last updated 2020-07-19 13:51:35 +0200
  1258. </div>
  1259. </div>
  1260. </body>
  1261. </html>