Browse Source

Fix name of the whole project. Argodejo -> Agordejo

master
Nils 4 years ago
parent
commit
3213ec5f3d
  1. 3
      CHANGELOG
  2. 10
      Makefile.in
  3. 20
      README.md
  4. 0
      agordejo
  5. 2
      configure
  6. 6
      desktop/agordejo-continue.desktop
  7. 6
      desktop/desktop.desktop
  8. 26
      documentation/argodejo.1
  9. 2
      documentation/build.py
  10. 88
      documentation/english.adoc
  11. 60
      documentation/english.part.adoc
  12. 82
      documentation/german.adoc
  13. 60
      documentation/german.part.adoc
  14. 2
      documentation/index.adoc
  15. 18
      documentation/manpageinclude.h2m
  16. 2
      documentation/nsm-data.1
  17. 90
      documentation/out/english.html
  18. 84
      documentation/out/german.html
  19. 4
      documentation/out/index.html
  20. 2
      engine/api.py
  21. 12
      engine/config.py
  22. 32
      engine/findprograms.py
  23. 42
      engine/nsmservercontrol.py
  24. 2
      qtgui/designer/mainwindow.py
  25. 2
      qtgui/designer/mainwindow.ui
  26. 2
      qtgui/designer/settings.py
  27. 2
      qtgui/designer/settings.ui
  28. 16
      qtgui/mainwindow.py
  29. 18
      qtgui/opensessioncontroller.py
  30. 36
      qtgui/quickopensessioncontroller.py
  31. BIN
      qtgui/resources/translations/de.qm
  32. 28
      qtgui/resources/translations/de.ts
  33. 6
      qtgui/systemtray.py
  34. 48
      tools/nsm-data
  35. 1
      tools/nsmservercontrol.py
  36. 1730
      tools/nsmservercontrol.py

3
CHANGELOG

@ -1,3 +1,6 @@
2020-10-15 0.2
Correct typo in the name of the project :) Sorry.
2020-07-15 0.1 Proof of Concept 2020-07-15 0.1 Proof of Concept
A lot is working already, single-computer session are working fine. A lot is working already, single-computer session are working fine.
Network sessions of any form are not usable yet. Network sessions of any form are not usable yet.

10
Makefile.in

@ -34,14 +34,14 @@ install:
#nsm-data #nsm-data
install -D -m 755 "nsm-data.bin" $(DESTDIR)$(PREFIX)/bin/nsm-data install -D -m 755 "nsm-data.bin" $(DESTDIR)$(PREFIX)/bin/nsm-data
#Argodejo #Agordejo
install -D -m 755 $(PROGRAM).bin $(DESTDIR)$(PREFIX)/bin/$(PROGRAM) install -D -m 755 $(PROGRAM).bin $(DESTDIR)$(PREFIX)/bin/$(PROGRAM)
install -D -m 644 documentation/out/* -t $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM) install -D -m 644 documentation/out/* -t $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)
install -D -m 644 README.md $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)/README.md install -D -m 644 README.md $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)/README.md
install -D -m 644 LICENSE $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)/LICENSE install -D -m 644 LICENSE $(DESTDIR)$(PREFIX)/share/doc/$(PROGRAM)/LICENSE
install -D -m 644 desktop/desktop.desktop $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.argodejo.desktop install -D -m 644 desktop/desktop.desktop $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.agordejo.desktop
install -D -m 644 desktop/argodejo-continue.desktop $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.argodejo-continue.desktop install -D -m 644 desktop/agordejo-continue.desktop $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.agordejo-continue.desktop
install -d $(DESTDIR)$(PREFIX)/share/man/man1 install -d $(DESTDIR)$(PREFIX)/share/man/man1
gzip -c documentation/$(PROGRAM).1 > $(DESTDIR)$(PREFIX)/share/man/man1/$(PROGRAM).1.gz gzip -c documentation/$(PROGRAM).1 > $(DESTDIR)$(PREFIX)/share/man/man1/$(PROGRAM).1.gz
@ -66,8 +66,8 @@ uninstall:
#Files #Files
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM) rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM)
rm -f $(DESTDIR)$(PREFIX)/bin/nsm-data rm -f $(DESTDIR)$(PREFIX)/bin/nsm-data
rm -f $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.argodejo.desktop rm -f $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.agordejo.desktop
rm -f $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.argodejo-continue.desktop rm -f $(DESTDIR)$(PREFIX)/share/applications/org.laborejo.agordejo-continue.desktop
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/$(PROGRAM).1.gz rm -f $(DESTDIR)$(PREFIX)/share/man/man1/$(PROGRAM).1.gz
#Icons #Icons

20
README.md

@ -1,11 +1,11 @@
[//]: # (Generated 2020-06-11T19:20:27.804895. Changes belong into template/documentation/readme.template) [//]: # (Generated 2020-06-11T19:20:27.804895. Changes belong into template/documentation/readme.template)
#Argodejo #Agordejo
Program version 0.1 Program version 0.1
Argodejo (Esperanto: 'place to set things up') is a music production session manager. Agordejo (Esperanto: 'place to set things up') is a music production session manager.
It is used to start your programs, remember their (JACK) interconnections and make your life easier It is used to start your programs, remember their (JACK) interconnections and make your life easier
in general. in general.
@ -14,7 +14,7 @@ You can seamlessly change between two view modes to quickly start a few programs
control and a detailed overview. control and a detailed overview.
Argodejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances Agordejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances
it with some tricks of its own, that always remain 100% compatible with the original sessions. it with some tricks of its own, that always remain 100% compatible with the original sessions.
@ -24,7 +24,7 @@ implemented, most prominently anything related to NSM over network. There is alw
break things when trying out corner cases and hacks. break things when trying out corner cases and hacks.
That said, for single-computer sessions with just one daemon and one GUI at the same time Argodejo That said, for single-computer sessions with just one daemon and one GUI at the same time Agordejo
should provide a good user experience. should provide a good user experience.
@ -35,7 +35,7 @@ This README is just a short introduction. Consult the manual (see below) for mor
* Website https://www.laborejo.org * Website https://www.laborejo.org
* Bugs and Issues: https://www.laborejo.org/bugs * Bugs and Issues: https://www.laborejo.org/bugs
* Git Repositories for all programs: https://git.laborejo.org * Git Repositories for all programs: https://git.laborejo.org
* Documentation and Manual https://www.laborejo.org/documentation/argodejo * Documentation and Manual https://www.laborejo.org/documentation/agordejo
# Installation and Starting # Installation and Starting
@ -48,7 +48,7 @@ Download the latest code release on https://www.laborejo.org/downloads and extra
### Git Version ### Git Version
It is possible to clone a git repository. It is possible to clone a git repository.
`git clone https://git.laborejo.org/lss/argodejo.git` `git clone https://git.laborejo.org/lss/agordejo.git`
## Dependencies ## Dependencies
* Glibc * Glibc
@ -73,11 +73,11 @@ It is possible to clone a git repository.
## Starting ## Starting
If you installed Argodejo through a packager manager or yourself simple use your application launcher If you installed Agordejo through a packager manager or yourself simple use your application launcher
or terminal to start the executable `argodejo` or terminal to start the executable `agordejo`
You can also run Argodejo after extracting the release archive or cloning from git, without make or You can also run Agordejo after extracting the release archive or cloning from git, without make or
installation. If you did so, for additional features please link tools/nsm-data to your executable PATH. installation. If you did so, for additional features please link tools/nsm-data to your executable PATH.
Use the manpage `man argodejo` or run `argodejo --help` (or local variant `./argodejo --help` ) Use the manpage `man agordejo` or run `agordejo --help` (or local variant `./agordejo --help` )
to see available command line parameters. to see available command line parameters.

0
argodejo → agordejo

2
configure

@ -1,4 +1,4 @@
program=argodejo program=agordejo
version=0.1 version=0.1
#debugsym=true #debugsym=true

6
desktop/argodejo-continue.desktop → desktop/agordejo-continue.desktop

@ -1,9 +1,9 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
Name=Argodejo Continue Name=Agordejo Continue
Comment=Music and audio production session manager based on NSM. Continue last session, start as TrayIcon. Comment=Music and audio production session manager based on NSM. Continue last session, start as TrayIcon.
Exec=argodejo --continue --hide Exec=agordejo --continue --hide
Icon=argodejo Icon=agordejo
Terminal=false Terminal=false
StartupNotify=false StartupNotify=false
Version=1.0 Version=1.0

6
desktop/desktop.desktop

@ -1,9 +1,9 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
Name=Argodejo Name=Agordejo
Comment=Music and audio production session manager based on NSM. Comment=Music and audio production session manager based on NSM.
Exec=argodejo Exec=agordejo
Icon=argodejo Icon=agordejo
Terminal=false Terminal=false
StartupNotify=false StartupNotify=false
Version=1.0 Version=1.0

26
documentation/argodejo.1

@ -1,14 +1,14 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.15. .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.15.
.TH ARGODEJO "1" "June 2020" "Argodejo 0.1" "User Commands" .TH ARGODEJO "1" "June 2020" "Agordejo 0.1" "User Commands"
.SH NAME .SH NAME
Argodejo - Music and audio production session manager based on NSM. Agordejo - Music and audio production session manager based on NSM.
.SH DESCRIPTION .SH DESCRIPTION
usage: argodejo [\-h] [\-v] [\-V] [\-u URL] [\-\-nsm\-url URL] [\-s SESSION] [\-c] [\-i] usage: agordejo [\-h] [\-v] [\-V] [\-u URL] [\-\-nsm\-url URL] [\-s SESSION] [\-c] [\-i]
.IP .IP
[\-\-session\-root SESSIONROOT] [\-\-session\-root SESSIONROOT]
.PP .PP
Argodejo \- Version 0.1 \- Copyright 2020 by Laborejo Software Suite \- Agordejo \- Version 0.1 \- Copyright 2020 by Laborejo Software Suite \-
https://www.laborejo.org/argodejo https://www.laborejo.org/agordejo
.SS "optional arguments:" .SS "optional arguments:"
.TP .TP
\fB\-h\fR, \fB\-\-help\fR \fB\-h\fR, \fB\-\-help\fR
@ -47,7 +47,7 @@ Root directory of all sessions. Defaults to '$HOME/NSM
Sessions' Sessions'
.SH USAGE .SH USAGE
Argodejo (Esperanto: 'place to set things up') is a music production session manager. Agordejo (Esperanto: 'place to set things up') is a music production session manager.
It is used to start your programs, remember their (JACK) interconnections and make your life easier It is used to start your programs, remember their (JACK) interconnections and make your life easier
in general. in general.
@ -56,7 +56,7 @@ You can seamlessly change between two view modes to quickly start a few programs
control and a detailed overview. control and a detailed overview.
Argodejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances Agordejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances
it with some tricks of its own, that always remain 100% compatible with the original sessions. it with some tricks of its own, that always remain 100% compatible with the original sessions.
@ -66,21 +66,21 @@ implemented, most prominently anything related to NSM over network. There is alw
break things when trying out corner cases and hacks. break things when trying out corner cases and hacks.
That said, for single-computer sessions with just one daemon and one GUI at the same time Argodejo That said, for single-computer sessions with just one daemon and one GUI at the same time Agordejo
should provide a good user experience. should provide a good user experience.
.SH EXAMPLES .SH EXAMPLES
Run argodejo. You are now in the Quick View mode. Press New Session and add programs through a Run agordejo. You are now in the Quick View mode. Press New Session and add programs through a
single click on available program-icons. You can switch to the Full View mode via the tab to single click on available program-icons. You can switch to the Full View mode via the tab to
get more options. Try right-clicking on many things to get context menus. get more options. Try right-clicking on many things to get context menus.
.SH "REPORTING BUGS" .SH "REPORTING BUGS"
https://www.laborejo.org/bugs https://www.laborejo.org/bugs
.SH COPYRIGHT .SH COPYRIGHT
Argodejo 0.1 - Copyright 2020 Agordejo 0.1 - Copyright 2020
Laborejo Software Suite Laborejo Software Suite
https://www.laborejo.org/ https://www.laborejo.org/
.SH "SEE ALSO" .SH "SEE ALSO"
The full documentation for Argodejo is maintained as a multi-lingual html site to your systems doc-dir. The full documentation for Agordejo is maintained as a multi-lingual html site to your systems doc-dir.
For example: For example:
xdg-open file:///usr/share/doc/argodejo/index.html xdg-open file:///usr/share/doc/agordejo/index.html
The documentation can also be found online https://www.laborejo.org/documentation/argodejo The documentation can also be found online https://www.laborejo.org/documentation/agordejo

2
documentation/build.py

@ -102,7 +102,7 @@ https://www.laborejo.org/bugs
https://www.laborejo.org/ https://www.laborejo.org/
[examples] [examples]
Run argodejo. You are now in the Quick View mode. Press New Session and add programs through a Run agordejo. You are now in the Quick View mode. Press New Session and add programs through a
single click on available program-icons. You can switch to the Full View mode via the tab to single click on available program-icons. You can switch to the Full View mode via the tab to
get more options. Try right-clicking on many things to get context menus. get more options. Try right-clicking on many things to get context menus.

88
documentation/english.adoc

@ -22,7 +22,7 @@ https://asciidoctor.org/docs/user-manual/
:toc-title: Table of Contents :toc-title: Table of Contents
:toclevels: 3 :toclevels: 3
= Argodejo = Agordejo
// Don't write in the empty line above line. It will be interpreted as author html tag // Don't write in the empty line above line. It will be interpreted as author html tag
For program version 0.1 For program version 0.1
@ -30,7 +30,7 @@ For program version 0.1
== Introduction == Introduction
Argodejo (Esperanto: 'place to set things up') is a music production session manager. Agordejo (Esperanto: 'place to set things up') is a music production session manager.
It is used to start your programs, remember their (JACK) interconnections and make your life easier It is used to start your programs, remember their (JACK) interconnections and make your life easier
in general. in general.
@ -39,7 +39,7 @@ You can seamlessly change between two view modes to quickly start a few programs
control and a detailed overview. control and a detailed overview.
Argodejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances Agordejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances
it with some tricks of its own, that always remain 100% compatible with the original sessions. it with some tricks of its own, that always remain 100% compatible with the original sessions.
@ -49,7 +49,7 @@ implemented, most prominently anything related to NSM over network. There is alw
break things when trying out corner cases and hacks. break things when trying out corner cases and hacks.
That said, for single-computer sessions with just one daemon and one GUI at the same time Argodejo That said, for single-computer sessions with just one daemon and one GUI at the same time Agordejo
should provide a good user experience. should provide a good user experience.
@ -74,25 +74,25 @@ real time, have synchronized timelines and play in the same tempo.
What remains is the tedious work of always starting all programs, loading project files, connecting What remains is the tedious work of always starting all programs, loading project files, connecting
audio channels etc. Session management in general (e.g. specifically written starter script files) audio channels etc. Session management in general (e.g. specifically written starter script files)
and Argodejo in particular do this work for you, or at the very least, greatly simplify it. and Agordejo in particular do this work for you, or at the very least, greatly simplify it.
In contrast to the self-written script mentioned above, you don't have to decide in advance on a In contrast to the self-written script mentioned above, you don't have to decide in advance on a
setup, but everything is saved automatically as long as you manage everything through Argodejo. setup, but everything is saved automatically as long as you manage everything through Agordejo.
=== Example === Example
* Start Argodejo (Start menu, terminal etc.) * Start Agordejo (Start menu, terminal etc.)
* You are now in the "Quick View" to start a session * You are now in the "Quick View" to start a session
* Press the big button "Start New Session" * Press the big button "Start New Session"
* Now you get a choice of programs: * Now you get a choice of programs:
* A single click with the mouse starts a program * A single click with the mouse starts a program
* Another click hides (or subsequently shows) its graphical interface * Another click hides (or subsequently shows) its graphical interface
* If the program crashes you get a warning and can restart it. * If the program crashes you get a warning and can restart it.
* Audio and midi ports can now be connected together in a patchbay. The connections are stored in Argodejo. * Audio and midi ports can now be connected together in a patchbay. The connections are stored in Agordejo.
* To get more programs and advanced features you can switch to the tab "Full View * To get more programs and advanced features you can switch to the tab "Full View
* The name of the session so far is simply a date. By clicking on it you can enter a real name. Like "My song" * The name of the session so far is simply a date. By clicking on it you can enter a real name. Like "My song"
* If you are finished you can return to the session selection by pressing the button "Save and Close" * If you are finished you can return to the session selection by pressing the button "Save and Close"
* Now Argodejo could be closed itself. * Now Agordejo could be closed itself.
* All stored data is in a single directory on the hard disk (`~/NSM Sessions/My Song`) * All stored data is in a single directory on the hard disk (`~/NSM Sessions/My Song`)
* The session can be resumed: After clicking on the name, all programs start automatically and connect their JACK ports to among themselves. * The session can be resumed: After clicking on the name, all programs start automatically and connect their JACK ports to among themselves.
@ -106,7 +106,7 @@ decisions as possible and start an old session or create a new one as quickly as
at least clicks). at least clicks).
For stability reasons, only programs are shown that are known to For stability reasons, only programs are shown that are known to
work correctly with Argodejos session management. work correctly with Agordejos session management.
The Quick View is only a view. There is no technical difference to the full view and you can switch The Quick View is only a view. There is no technical difference to the full view and you can switch
back and forth at any time. back and forth at any time.
@ -184,10 +184,10 @@ Each session has a context menu (e.g. right mouse button) with further options:
rename a session, delete it (including all associated files on the hard disk!) and more. These rename a session, delete it (including all associated files on the hard disk!) and more. These
functions are equivalent to your file manager. If you like, you can also use your file manager to functions are equivalent to your file manager. If you like, you can also use your file manager to
rename, move, or delete the session directories themselves (unless they are is currently open). You rename, move, or delete the session directories themselves (unless they are is currently open). You
don't need to restart Argodejo to do this, it will respond to the changes while running. don't need to restart Agordejo to do this, it will respond to the changes while running.
There is also the possibility to remove a so-called "lock" file. This is a file which is created There is also the possibility to remove a so-called "lock" file. This is a file which is created
when the session starts and deleted when it ends. This tells Argodejo which session is currently when the session starts and deleted when it ends. This tells Agordejo which session is currently
running. If a lock file exists, the session cannot be opened! This should not happen during normal running. If a lock file exists, the session cannot be opened! This should not happen during normal
operation. But if a power failure or similar occurs in the middle of a session, the lock file may operation. But if a power failure or similar occurs in the middle of a session, the lock file may
remain, although obviously no session is opened. In this case, unlock the session manually by remain, although obviously no session is opened. In this case, unlock the session manually by
@ -221,7 +221,7 @@ The following information is available per program:
* The program status * The program status
* Stopped , not running * Stopped , not running
* Ready, running * Ready, running
* Launch, If the status halts here but the programs works, it is one that does not specifically support session mode. Argodejo cannot know if it is already running or not. Everything is fine! :) * Launch, If the status halts here but the programs works, it is one that does not specifically support session mode. Agordejo cannot know if it is already running or not. Everything is fine! :)
* Other states are only transitions and usually only visible for a very short time, e.g. Open / Loading * Other states are only transitions and usually only visible for a very short time, e.g. Open / Loading
* Visibility (A cross for visible, blank for invisible) * Visibility (A cross for visible, blank for invisible)
* Changes - Are there currently unsaved changes? * Changes - Are there currently unsaved changes?
@ -250,12 +250,12 @@ In contrast to the quick view, full mode offers menus, which can also be accesse
* Abort ends the session without saving the programs * Abort ends the session without saving the programs
* Save As saves the session under a different name and closes the current session without saving. From now on you work under the new name. * Save As saves the session under a different name and closes the current session without saving. From now on you work under the new name.
* Add Client offers the option to add any program, whether it is in the program database or not. * Add Client offers the option to add any program, whether it is in the program database or not.
* Any installed programs are suggested. Argodejo doesn't check them for usefulness for a music session, or even for runnability. You will find `ls` here as well as `argodejo` itself. * Any installed programs are suggested. Agordejo doesn't check them for usefulness for a music session, or even for runnability. You will find `ls` here as well as `agordejo` itself.
== Program-Database == Program-Database
Argodejos launcher is based on a program database, which is partly self-generated, partly Agordejos launcher is based on a program database, which is partly self-generated, partly
maintained by hand. As in a start menu Argodejo will offer you only programs that are actually maintained by hand. As in a start menu Agordejo will offer you only programs that are actually
installed on your system. installed on your system.
The database is created at the first start. Depending on your system, this can take some moments to The database is created at the first start. Depending on your system, this can take some moments to
@ -263,7 +263,7 @@ a few minutes.
If you are reinstalling or uninstalling audio programs, you will need to update the database via If you are reinstalling or uninstalling audio programs, you will need to update the database via
the command in the control menu. Program installations and system changes are even possible while the command in the control menu. Program installations and system changes are even possible while
Argodejo is running (even in a session). After a DB update you can immediately access all new Agordejo is running (even in a session). After a DB update you can immediately access all new
programs. programs.
If you do not see an installed program in our launcher, but you are sure that it supports session If you do not see an installed program in our launcher, but you are sure that it supports session
@ -287,10 +287,10 @@ These search paths are not stored in the session, but locally in your `~/.config
== Tray == Tray
Argodejo has a tray icon, if your window manager supports it. A click on the trayicon shows or Agordejo has a tray icon, if your window manager supports it. A click on the trayicon shows or
hides Argodejo. hides Agordejo.
If you close Argodejo using the normal window manager function, such as a click on the [X], the If you close Agordejo using the normal window manager function, such as a click on the [X], the
program and the session is not terminated, but minimized to the tray. program and the session is not terminated, but minimized to the tray.
A right click on the icon gives you access to common functions: A right click on the icon gives you access to common functions:
@ -299,7 +299,7 @@ You can directly start the most recently used sessions.
If a session is already running you can save, cancel etc. If a session is already running you can save, cancel etc.
Argodejo can also be completely exited here. Agordejo can also be completely exited here.
== Network Sessions == Network Sessions
@ -310,26 +310,26 @@ version.
== Program parameters == Program parameters
As an advanced user, you can start Argodejo in the terminal and add some parameters.. For a As an advanced user, you can start Agordejo in the terminal and add some parameters.. For a
complete list please use the --help parameter. complete list please use the --help parameter.
For example: For example:
* `--session newAlbum/mySong` starts the given session. * `--session newAlbum/mySong` starts the given session.
* `--continue` starts the last active session. * `--continue` starts the last active session.
* `--hide` starts Argodejo as TrayIcon. * `--hide` starts Agordejo as TrayIcon.
* `--url osc.udp://myhost.localdomain:14294/` connects to this server, if available, or starts the internal session server at this address. This is a very technical option and probably not needed. * `--url osc.udp://myhost.localdomain:14294/` connects to this server, if available, or starts the internal session server at this address. This is a very technical option and probably not needed.
* `--session-root /home/user/production2030` sets the root directory. Only sessions in this directory are displayed, everything is stored here. * `--session-root /home/user/production2030` sets the root directory. Only sessions in this directory are displayed, everything is stored here.
The combination of `--continue` and `--hide` is essentially what many people expect from Session The combination of `--continue` and `--hide` is essentially what many people expect from Session
Management: Resuming at the previous state, without any extra windows in their way. Management: Resuming at the previous state, without any extra windows in their way.
If your system uses a start menu you will find not only the normal Argodejo starter but also If your system uses a start menu you will find not only the normal Agordejo starter but also
"Argodejo Continue" to start this mode directly. "Agordejo Continue" to start this mode directly.
== Miscellaneous / Explanations / FAQ == Miscellaneous / Explanations / FAQ
*Session Save and Exit responds slowly*: Argodejo is not a standalone program like an word *Session Save and Exit responds slowly*: Agordejo is not a standalone program like an word
processor. The participating programs in the session are not plugins either. When you end the processor. The participating programs in the session are not plugins either. When you end the
session a signal is sent to all participating client to save. This may take a few moments where session a signal is sent to all participating client to save. This may take a few moments where
you are able to see "live" how individual programs terminate and disappear from the session. you are able to see "live" how individual programs terminate and disappear from the session.
@ -337,7 +337,7 @@ Everything is fine.
*I have added a program but it does not save with the session*: Does the program support session *I have added a program but it does not save with the session*: Does the program support session
management? If not, Argodejo cannot do much. But you can ask the program developers to contact us management? If not, Agordejo cannot do much. But you can ask the program developers to contact us
(info@laborejo.org) and we can work together on support. (info@laborejo.org) and we can work together on support.
@ -346,13 +346,13 @@ we are also interested in improving the situation by offering at least an emerge
future. future.
*Argodejo won't start! I start the program but I can't see anything*: Most likely Argodejo is *Agordejo won't start! I start the program but I can't see anything*: Most likely Agordejo is
running, but invisible, because you exited it from the tray last time. Is it in the tray? A running, but invisible, because you exited it from the tray last time. Is it in the tray? A
message should have popped up, maybe you missed it. If there is no tray in your window manager, the message should have popped up, maybe you missed it. If there is no tray in your window manager, the
program should always be visible. With all these special window managers in Linux it may be that program should always be visible. With all these special window managers in Linux it may be that
the tray detection did not work properly. Contingency plan is to delete the tray detection did not work properly. Contingency plan is to delete
`~/.config/LaborejoSoftwareSuite/argodejo`. This will NOT remove any sessions, but only local `~/.config/LaborejoSoftwareSuite/agordejo`. This will NOT remove any sessions, but only local
settings such as the visibility of the program window. At next start Argodejo will behave like the settings such as the visibility of the program window. At next start Agordejo will behave like the
very first start. very first start.
@ -366,7 +366,7 @@ inevitable crashes).
*A program update broke my session because it can no longer load its files.* Unfortunately, this is *A program update broke my session because it can no longer load its files.* Unfortunately, this is
a problem that even Argodejo can't solve. It also happens with LV2 plugins and with all other a problem that even Agordejo can't solve. It also happens with LV2 plugins and with all other
software, such as office programs. If you fear that a program becomes incompatible in the future, software, such as office programs. If you fear that a program becomes incompatible in the future,
write down its version number in the session notes, so that you can at least, in an emergency, write down its version number in the session notes, so that you can at least, in an emergency,
reinstall the old program version (even if this is very is cumbersome). reinstall the old program version (even if this is very is cumbersome).
@ -376,7 +376,7 @@ reinstall the old program version (even if this is very is cumbersome).
management is worthwhile with two or more participating programs, which one needs almost always. management is worthwhile with two or more participating programs, which one needs almost always.
You should not feel compelled to suddenly make everything modular with individual programs, only You should not feel compelled to suddenly make everything modular with individual programs, only
because you use a session manager. Argodejo is designed to make your music production easier. If it because you use a session manager. Agordejo is designed to make your music production easier. If it
is faster and more comfortable to manage all plugins and effects e.g. in a single "Carla" instance is faster and more comfortable to manage all plugins and effects e.g. in a single "Carla" instance
then you should do exactly that. If you basically want to do everything in Ardour, do that, but then you should do exactly that. If you basically want to do everything in Ardour, do that, but
start Ardour anyway in session management, because no program can do everything alone and the time start Ardour anyway in session management, because no program can do everything alone and the time
@ -393,7 +393,7 @@ directly do music production, but still is connected in the grander scheme: Ope
(OBS), music player, word processors and graphic programs etc. (OBS), music player, word processors and graphic programs etc.
*Argodejo contains functionality which is not within its scope*: Music production is very complex *Agordejo contains functionality which is not within its scope*: Music production is very complex
and complexity is inevitable. It's like a waterbed: if you press down on one side, something and complexity is inevitable. It's like a waterbed: if you press down on one side, something
bounces up in another place. When you create a "clean and lean" program, which therefore implements bounces up in another place. When you create a "clean and lean" program, which therefore implements
only a part of the complete workflow, then the missing part pops up somewhere else. A minimalistic only a part of the complete workflow, then the missing part pops up somewhere else. A minimalistic
@ -402,23 +402,23 @@ session manager provokes plug-ins (not LV2), helper-scripts, workarounds and hac
E.g. not to include file management provokes user errors like deleting the wrong files. If the SM E.g. not to include file management provokes user errors like deleting the wrong files. If the SM
knows what to do and it can do it, then let it do it. Or crashes: Technically, crashing programs knows what to do and it can do it, then let it do it. Or crashes: Technically, crashing programs
are not the "problem" of the session managers, but they are part of the software reality. Crashes are not the "problem" of the session managers, but they are part of the software reality. Crashes
happen every day and need to be handled. Can Argodejo simplify the work and help to restore good happen every day and need to be handled. Can Agordejo simplify the work and help to restore good
conditions again? Then that should be done. Session management is also an opportunity to simplify conditions again? Then that should be done. Session management is also an opportunity to simplify
even complex technical scenarios, e.g. distributing sessions over the network. even complex technical scenarios, e.g. distributing sessions over the network.
== Installation and Start == Installation and Start
Argodejo is exclusive for Linux. The best way to install is to use your package manager. Agordejo is exclusive for Linux. The best way to install is to use your package manager.
If it is not there, or only in an outdated version, please ask your Linux distribution to provide a recent version. If it is not there, or only in an outdated version, please ask your Linux distribution to provide a recent version.
If not available in the package repository you can build Argodejo yourself. If not available in the package repository you can build Agordejo yourself.
.Build and Install .Build and Install
* Please check the supplied README.md for dependencies. * Please check the supplied README.md for dependencies.
* You can download a release or clone the git version * You can download a release or clone the git version
** Download the latest version from https://www.laborejo.org/downloads and extract it. ** Download the latest version from https://www.laborejo.org/downloads and extract it.
** git clone https://git.laborejo.org/lss/argodejo.git ** git clone https://git.laborejo.org/lss/agordejo.git
* Change into the new directory and use these commands: * Change into the new directory and use these commands:
* `./configure --prefix=/usr` * `./configure --prefix=/usr`
** The default prefix is /usr/local ** The default prefix is /usr/local
@ -426,14 +426,14 @@ If not available in the package repository you can build Argodejo yourself.
* `sudo make install` * `sudo make install`
Now the program is available to run via your menu/launcher or `argodejo` in a terminal. Now the program is available to run via your menu/launcher or `agordejo` in a terminal.
Please read README.md for other ways of starting argodejo, which are impractical for actual use but can Please read README.md for other ways of starting agordejo, which are impractical for actual use but can
be helpful for testing and development. be helpful for testing and development.
== Help and Development == Help and Development
You can help Argodejo in several ways: Testing and reporting errors, translating, marketing, support, programming and more. You can help Agordejo in several ways: Testing and reporting errors, translating, marketing, support, programming and more.
=== Testing and Reporting Errors === Testing and Reporting Errors
If you find a bug in the program (or it runs too slow) please contact us in a way that suits you best. If you find a bug in the program (or it runs too slow) please contact us in a way that suits you best.
@ -450,7 +450,7 @@ If you want to do some programming and don't know where to start please get in c
The short version is: clone the git, change the code, create a git patch or point me to your public git. The short version is: clone the git, change the code, create a git patch or point me to your public git.
=== Translations === Translations
Argodejo is very easy to translate with the help of the Qt-Toolchain, without any need for programming. Agordejo is very easy to translate with the help of the Qt-Toolchain, without any need for programming.
The easiest way is to contact the developers and they will setup the new language. The easiest way is to contact the developers and they will setup the new language.
However, here are the complete instructions for doing a translation completely on your own and integrating it into the program. However, here are the complete instructions for doing a translation completely on your own and integrating it into the program.
@ -468,7 +468,7 @@ You can add a new language like this:
* Select your "Target Language" and use the program to create a translation * Select your "Target Language" and use the program to create a translation
* Send us the `.ts` file, such as by e-mail to info@laborejo.org * Send us the `.ts` file, such as by e-mail to info@laborejo.org
You can also incorporate the translation into Argodejo for testing purposes. This requires rudimentary Python knowledge. You can also incorporate the translation into Agordejo for testing purposes. This requires rudimentary Python knowledge.
* Run the "Release" option in QtLinguists "File" menu. It creates a `.qm` file in the same directory as your `.ts` file. * Run the "Release" option in QtLinguists "File" menu. It creates a `.qm` file in the same directory as your `.ts` file.
* Edit `qtgui/resources/resources.qrc` and duplicate the line `<file>translations/de.qm</file>` but change it to your new .qm file. * Edit `qtgui/resources/resources.qrc` and duplicate the line `<file>translations/de.qm</file>` but change it to your new .qm file.
@ -477,6 +477,6 @@ You can also incorporate the translation into Argodejo for testing purposes. Thi
** To find out your language string (German, Esperanto etc.) open the `python3` interpreter in a terminal and run the following command: ** To find out your language string (German, Esperanto etc.) open the `python3` interpreter in a terminal and run the following command:
** `from PyQt5 import QtCore;QtCore.QLocale().languageToString(QtCore.QLocale().language())` ** `from PyQt5 import QtCore;QtCore.QLocale().languageToString(QtCore.QLocale().language())`
To test the new translation you can either run the program normally, if your system is set to that language. Alternatively start argodejo via the terminal: To test the new translation you can either run the program normally, if your system is set to that language. Alternatively start agordejo via the terminal:
* `LANGUAGE=de_DE.UTF-8 ./argodejo -V --save /dev/null` * `LANGUAGE=de_DE.UTF-8 ./agordejo -V --save /dev/null`

60
documentation/english.part.adoc

@ -19,25 +19,25 @@ real time, have synchronized timelines and play in the same tempo.
What remains is the tedious work of always starting all programs, loading project files, connecting What remains is the tedious work of always starting all programs, loading project files, connecting
audio channels etc. Session management in general (e.g. specifically written starter script files) audio channels etc. Session management in general (e.g. specifically written starter script files)
and Argodejo in particular do this work for you, or at the very least, greatly simplify it. and Agordejo in particular do this work for you, or at the very least, greatly simplify it.
In contrast to the self-written script mentioned above, you don't have to decide in advance on a In contrast to the self-written script mentioned above, you don't have to decide in advance on a
setup, but everything is saved automatically as long as you manage everything through Argodejo. setup, but everything is saved automatically as long as you manage everything through Agordejo.
=== Example === Example
* Start Argodejo (Start menu, terminal etc.) * Start Agordejo (Start menu, terminal etc.)
* You are now in the "Quick View" to start a session * You are now in the "Quick View" to start a session
* Press the big button "Start New Session" * Press the big button "Start New Session"
* Now you get a choice of programs: * Now you get a choice of programs:
* A single click with the mouse starts a program * A single click with the mouse starts a program
* Another click hides (or subsequently shows) its graphical interface * Another click hides (or subsequently shows) its graphical interface
* If the program crashes you get a warning and can restart it. * If the program crashes you get a warning and can restart it.
* Audio and midi ports can now be connected together in a patchbay. The connections are stored in Argodejo. * Audio and midi ports can now be connected together in a patchbay. The connections are stored in Agordejo.
* To get more programs and advanced features you can switch to the tab "Full View * To get more programs and advanced features you can switch to the tab "Full View
* The name of the session so far is simply a date. By clicking on it you can enter a real name. Like "My song" * The name of the session so far is simply a date. By clicking on it you can enter a real name. Like "My song"
* If you are finished you can return to the session selection by pressing the button "Save and Close" * If you are finished you can return to the session selection by pressing the button "Save and Close"
* Now Argodejo could be closed itself. * Now Agordejo could be closed itself.
* All stored data is in a single directory on the hard disk (`~/NSM Sessions/My Song`) * All stored data is in a single directory on the hard disk (`~/NSM Sessions/My Song`)
* The session can be resumed: After clicking on the name, all programs start automatically and connect their JACK ports to among themselves. * The session can be resumed: After clicking on the name, all programs start automatically and connect their JACK ports to among themselves.
@ -51,7 +51,7 @@ decisions as possible and start an old session or create a new one as quickly as
at least clicks). at least clicks).
For stability reasons, only programs are shown that are known to For stability reasons, only programs are shown that are known to
work correctly with Argodejos session management. work correctly with Agordejos session management.
The Quick View is only a view. There is no technical difference to the full view and you can switch The Quick View is only a view. There is no technical difference to the full view and you can switch
back and forth at any time. back and forth at any time.
@ -129,10 +129,10 @@ Each session has a context menu (e.g. right mouse button) with further options:
rename a session, delete it (including all associated files on the hard disk!) and more. These rename a session, delete it (including all associated files on the hard disk!) and more. These
functions are equivalent to your file manager. If you like, you can also use your file manager to functions are equivalent to your file manager. If you like, you can also use your file manager to
rename, move, or delete the session directories themselves (unless they are is currently open). You rename, move, or delete the session directories themselves (unless they are is currently open). You
don't need to restart Argodejo to do this, it will respond to the changes while running. don't need to restart Agordejo to do this, it will respond to the changes while running.
There is also the possibility to remove a so-called "lock" file. This is a file which is created There is also the possibility to remove a so-called "lock" file. This is a file which is created
when the session starts and deleted when it ends. This tells Argodejo which session is currently when the session starts and deleted when it ends. This tells Agordejo which session is currently
running. If a lock file exists, the session cannot be opened! This should not happen during normal running. If a lock file exists, the session cannot be opened! This should not happen during normal
operation. But if a power failure or similar occurs in the middle of a session, the lock file may operation. But if a power failure or similar occurs in the middle of a session, the lock file may
remain, although obviously no session is opened. In this case, unlock the session manually by remain, although obviously no session is opened. In this case, unlock the session manually by
@ -166,7 +166,7 @@ The following information is available per program:
* The program status * The program status
* Stopped , not running * Stopped , not running
* Ready, running * Ready, running
* Launch, If the status halts here but the programs works, it is one that does not specifically support session mode. Argodejo cannot know if it is already running or not. Everything is fine! :) * Launch, If the status halts here but the programs works, it is one that does not specifically support session mode. Agordejo cannot know if it is already running or not. Everything is fine! :)
* Other states are only transitions and usually only visible for a very short time, e.g. Open / Loading * Other states are only transitions and usually only visible for a very short time, e.g. Open / Loading
* Visibility (A cross for visible, blank for invisible) * Visibility (A cross for visible, blank for invisible)
* Changes - Are there currently unsaved changes? * Changes - Are there currently unsaved changes?
@ -195,12 +195,12 @@ In contrast to the quick view, full mode offers menus, which can also be accesse
* Abort ends the session without saving the programs * Abort ends the session without saving the programs
* Save As saves the session under a different name and closes the current session without saving. From now on you work under the new name. * Save As saves the session under a different name and closes the current session without saving. From now on you work under the new name.
* Add Client offers the option to add any program, whether it is in the program database or not. * Add Client offers the option to add any program, whether it is in the program database or not.
* Any installed programs are suggested. Argodejo doesn't check them for usefulness for a music session, or even for runnability. You will find `ls` here as well as `argodejo` itself. * Any installed programs are suggested. Agordejo doesn't check them for usefulness for a music session, or even for runnability. You will find `ls` here as well as `agordejo` itself.
== Program-Database == Program-Database
Argodejos launcher is based on a program database, which is partly self-generated, partly Agordejos launcher is based on a program database, which is partly self-generated, partly
maintained by hand. As in a start menu Argodejo will offer you only programs that are actually maintained by hand. As in a start menu Agordejo will offer you only programs that are actually
installed on your system. installed on your system.
The database is created at the first start. Depending on your system, this can take some moments to The database is created at the first start. Depending on your system, this can take some moments to
@ -208,7 +208,7 @@ a few minutes.
If you are reinstalling or uninstalling audio programs, you will need to update the database via If you are reinstalling or uninstalling audio programs, you will need to update the database via
the command in the control menu. Program installations and system changes are even possible while the command in the control menu. Program installations and system changes are even possible while
Argodejo is running (even in a session). After a DB update you can immediately access all new Agordejo is running (even in a session). After a DB update you can immediately access all new
programs. programs.
If you do not see an installed program in our launcher, but you are sure that it supports session If you do not see an installed program in our launcher, but you are sure that it supports session
@ -232,10 +232,10 @@ These search paths are not stored in the session, but locally in your `~/.config
== Tray == Tray
Argodejo has a tray icon, if your window manager supports it. A click on the trayicon shows or Agordejo has a tray icon, if your window manager supports it. A click on the trayicon shows or
hides Argodejo. hides Agordejo.
If you close Argodejo using the normal window manager function, such as a click on the [X], the If you close Agordejo using the normal window manager function, such as a click on the [X], the
program and the session is not terminated, but minimized to the tray. program and the session is not terminated, but minimized to the tray.
A right click on the icon gives you access to common functions: A right click on the icon gives you access to common functions:
@ -244,7 +244,7 @@ You can directly start the most recently used sessions.
If a session is already running you can save, cancel etc. If a session is already running you can save, cancel etc.
Argodejo can also be completely exited here. Agordejo can also be completely exited here.
== Network Sessions == Network Sessions
@ -255,26 +255,26 @@ version.
== Program parameters == Program parameters
As an advanced user, you can start Argodejo in the terminal and add some parameters.. For a As an advanced user, you can start Agordejo in the terminal and add some parameters.. For a
complete list please use the --help parameter. complete list please use the --help parameter.
For example: For example:
* `--session newAlbum/mySong` starts the given session. * `--session newAlbum/mySong` starts the given session.
* `--continue` starts the last active session. * `--continue` starts the last active session.
* `--hide` starts Argodejo as TrayIcon. * `--hide` starts Agordejo as TrayIcon.
* `--url osc.udp://myhost.localdomain:14294/` connects to this server, if available, or starts the internal session server at this address. This is a very technical option and probably not needed. * `--url osc.udp://myhost.localdomain:14294/` connects to this server, if available, or starts the internal session server at this address. This is a very technical option and probably not needed.
* `--session-root /home/user/production2030` sets the root directory. Only sessions in this directory are displayed, everything is stored here. * `--session-root /home/user/production2030` sets the root directory. Only sessions in this directory are displayed, everything is stored here.
The combination of `--continue` and `--hide` is essentially what many people expect from Session The combination of `--continue` and `--hide` is essentially what many people expect from Session
Management: Resuming at the previous state, without any extra windows in their way. Management: Resuming at the previous state, without any extra windows in their way.
If your system uses a start menu you will find not only the normal Argodejo starter but also If your system uses a start menu you will find not only the normal Agordejo starter but also
"Argodejo Continue" to start this mode directly. "Agordejo Continue" to start this mode directly.
== Miscellaneous / Explanations / FAQ == Miscellaneous / Explanations / FAQ
*Session Save and Exit responds slowly*: Argodejo is not a standalone program like an word *Session Save and Exit responds slowly*: Agordejo is not a standalone program like an word
processor. The participating programs in the session are not plugins either. When you end the processor. The participating programs in the session are not plugins either. When you end the
session a signal is sent to all participating client to save. This may take a few moments where session a signal is sent to all participating client to save. This may take a few moments where
you are able to see "live" how individual programs terminate and disappear from the session. you are able to see "live" how individual programs terminate and disappear from the session.
@ -282,7 +282,7 @@ Everything is fine.
*I have added a program but it does not save with the session*: Does the program support session *I have added a program but it does not save with the session*: Does the program support session
management? If not, Argodejo cannot do much. But you can ask the program developers to contact us management? If not, Agordejo cannot do much. But you can ask the program developers to contact us
(info@laborejo.org) and we can work together on support. (info@laborejo.org) and we can work together on support.
@ -291,13 +291,13 @@ we are also interested in improving the situation by offering at least an emerge
future. future.
*Argodejo won't start! I start the program but I can't see anything*: Most likely Argodejo is *Agordejo won't start! I start the program but I can't see anything*: Most likely Agordejo is
running, but invisible, because you exited it from the tray last time. Is it in the tray? A running, but invisible, because you exited it from the tray last time. Is it in the tray? A
message should have popped up, maybe you missed it. If there is no tray in your window manager, the message should have popped up, maybe you missed it. If there is no tray in your window manager, the
program should always be visible. With all these special window managers in Linux it may be that program should always be visible. With all these special window managers in Linux it may be that
the tray detection did not work properly. Contingency plan is to delete the tray detection did not work properly. Contingency plan is to delete
`~/.config/LaborejoSoftwareSuite/argodejo`. This will NOT remove any sessions, but only local `~/.config/LaborejoSoftwareSuite/agordejo`. This will NOT remove any sessions, but only local
settings such as the visibility of the program window. At next start Argodejo will behave like the settings such as the visibility of the program window. At next start Agordejo will behave like the
very first start. very first start.
@ -311,7 +311,7 @@ inevitable crashes).
*A program update broke my session because it can no longer load its files.* Unfortunately, this is *A program update broke my session because it can no longer load its files.* Unfortunately, this is
a problem that even Argodejo can't solve. It also happens with LV2 plugins and with all other a problem that even Agordejo can't solve. It also happens with LV2 plugins and with all other
software, such as office programs. If you fear that a program becomes incompatible in the future, software, such as office programs. If you fear that a program becomes incompatible in the future,
write down its version number in the session notes, so that you can at least, in an emergency, write down its version number in the session notes, so that you can at least, in an emergency,
reinstall the old program version (even if this is very is cumbersome). reinstall the old program version (even if this is very is cumbersome).
@ -321,7 +321,7 @@ reinstall the old program version (even if this is very is cumbersome).
management is worthwhile with two or more participating programs, which one needs almost always. management is worthwhile with two or more participating programs, which one needs almost always.
You should not feel compelled to suddenly make everything modular with individual programs, only You should not feel compelled to suddenly make everything modular with individual programs, only
because you use a session manager. Argodejo is designed to make your music production easier. If it because you use a session manager. Agordejo is designed to make your music production easier. If it
is faster and more comfortable to manage all plugins and effects e.g. in a single "Carla" instance is faster and more comfortable to manage all plugins and effects e.g. in a single "Carla" instance
then you should do exactly that. If you basically want to do everything in Ardour, do that, but then you should do exactly that. If you basically want to do everything in Ardour, do that, but
start Ardour anyway in session management, because no program can do everything alone and the time start Ardour anyway in session management, because no program can do everything alone and the time
@ -338,7 +338,7 @@ directly do music production, but still is connected in the grander scheme: Ope
(OBS), music player, word processors and graphic programs etc. (OBS), music player, word processors and graphic programs etc.
*Argodejo contains functionality which is not within its scope*: Music production is very complex *Agordejo contains functionality which is not within its scope*: Music production is very complex
and complexity is inevitable. It's like a waterbed: if you press down on one side, something and complexity is inevitable. It's like a waterbed: if you press down on one side, something
bounces up in another place. When you create a "clean and lean" program, which therefore implements bounces up in another place. When you create a "clean and lean" program, which therefore implements
only a part of the complete workflow, then the missing part pops up somewhere else. A minimalistic only a part of the complete workflow, then the missing part pops up somewhere else. A minimalistic
@ -347,6 +347,6 @@ session manager provokes plug-ins (not LV2), helper-scripts, workarounds and hac
E.g. not to include file management provokes user errors like deleting the wrong files. If the SM E.g. not to include file management provokes user errors like deleting the wrong files. If the SM
knows what to do and it can do it, then let it do it. Or crashes: Technically, crashing programs knows what to do and it can do it, then let it do it. Or crashes: Technically, crashing programs
are not the "problem" of the session managers, but they are part of the software reality. Crashes are not the "problem" of the session managers, but they are part of the software reality. Crashes
happen every day and need to be handled. Can Argodejo simplify the work and help to restore good happen every day and need to be handled. Can Agordejo simplify the work and help to restore good
conditions again? Then that should be done. Session management is also an opportunity to simplify conditions again? Then that should be done. Session management is also an opportunity to simplify
even complex technical scenarios, e.g. distributing sessions over the network. even complex technical scenarios, e.g. distributing sessions over the network.

82
documentation/german.adoc

@ -22,7 +22,7 @@ https://asciidoctor.org/docs/user-manual/
:toc-title: Inhaltsverzeichnis :toc-title: Inhaltsverzeichnis
:toclevels: 3 :toclevels: 3
= Argodejo = Agordejo
// Don't write in the empty line above line. It will be interpreted as author html tag // Don't write in the empty line above line. It will be interpreted as author html tag
Für Programmversion 0.1 Für Programmversion 0.1
@ -50,28 +50,28 @@ Echtzeit teilen, verfügen über synchronisierte Timelines und spielen im gleich
Was übrig bleibt ist die leidige Arbeit jedesmal alle Programme zu starten, die Projektdateien zu Was übrig bleibt ist die leidige Arbeit jedesmal alle Programme zu starten, die Projektdateien zu
laden, alle Audiokanäle zu verbinden usw. Session Management im allgemeinen (z.B. extra laden, alle Audiokanäle zu verbinden usw. Session Management im allgemeinen (z.B. extra
geschriebene Starter-Scriptdateien) und Argodejo im speziellen nehmen Ihnen diese Arbeit ab, oder geschriebene Starter-Scriptdateien) und Agordejo im speziellen nehmen Ihnen diese Arbeit ab, oder
vereinfachen sie zumindest stark. vereinfachen sie zumindest stark.
Im Gegensatz zum erwähnten selbstgeschriebenen Script müssen Sie sich nicht im Vorraus für ein Im Gegensatz zum erwähnten selbstgeschriebenen Script müssen Sie sich nicht im Vorraus für ein
Setup entscheiden, sondern alles wird automatisch verwaltet, solange Sie alles durch den Session Setup entscheiden, sondern alles wird automatisch verwaltet, solange Sie alles durch den Session
Manager Argodejo starten. Manager Agordejo starten.
=== Anwendungsbeispiel === Anwendungsbeispiel
* Argodejo starten (Startmenü, Terminal etc.) * Agordejo starten (Startmenü, Terminal etc.)
* Man befindet sich nun in der "Schnellen Ansicht" um eine Session zu starten * Man befindet sich nun in der "Schnellen Ansicht" um eine Session zu starten
* Der große Knopf: "Starte Neue Session" * Der große Knopf: "Starte Neue Session"
* Nun bekommt man eine Auswahl an Programmen: * Nun bekommt man eine Auswahl an Programmen:
* Ein einfacher Klick mit der Maus startet ein Programm * Ein einfacher Klick mit der Maus startet ein Programm
* Ein weiterer Klick versteckt (oder zeigt anschließend) dessen grafische Oberfläche * Ein weiterer Klick versteckt (oder zeigt anschließend) dessen grafische Oberfläche
* Sollte das Programm abstürzen bekommt man das signalisiert und kann es neustarten. * Sollte das Programm abstürzen bekommt man das signalisiert und kann es neustarten.
* Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Argodejo gespeichert. * Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Agordejo gespeichert.
* Um andere Programme und erweiterte Funktionen zu bekommen kann man in den Tab "Volle Ansicht" wechseln * Um andere Programme und erweiterte Funktionen zu bekommen kann man in den Tab "Volle Ansicht" wechseln
* Der Name der Session ist bisher einfach ein Datum. Durch Klick auf dieses kann man einen richtigen Namen eingeben. Etwa "Mein Lied" * Der Name der Session ist bisher einfach ein Datum. Durch Klick auf dieses kann man einen richtigen Namen eingeben. Etwa "Mein Lied"
* Ist man soweit fertig kommt man durch den Knopf "Speichern und Schließen" wieder in die Sessionauswahl zurück * Ist man soweit fertig kommt man durch den Knopf "Speichern und Schließen" wieder in die Sessionauswahl zurück
* Nun könnte Argodejo geschlossen werden. * Nun könnte Agordejo geschlossen werden.
* Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (`~/NSM Sessions/Mein Lied`) * Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (`~/NSM Sessions/Mein Lied`)
* Die Session kann weitergeführt werden: Nach dem Klick auf den Namen starten alle Programme automatisch und verbinden ihre JACK-Ports untereinander. * Die Session kann weitergeführt werden: Nach dem Klick auf den Namen starten alle Programme automatisch und verbinden ihre JACK-Ports untereinander.
@ -87,7 +87,7 @@ Entscheidungen wie möglich zu treffen haben und so schnell wie möglich (mit de
eine alte Session starten oder eine neue erstellen können. eine alte Session starten oder eine neue erstellen können.
Aus Stabilitätsgründen werden nur Programme zum Starten angeboten, von denen bekannt ist, dass Sie Aus Stabilitätsgründen werden nur Programme zum Starten angeboten, von denen bekannt ist, dass Sie
korrekt mit dem Session Management Argodejos zusammenarbeiten. korrekt mit dem Session Management Agordejos zusammenarbeiten.
Die Schnelle Ansicht ist lediglich eine Ansicht. Es besteht kein technischer Unterschied zur vollen Die Schnelle Ansicht ist lediglich eine Ansicht. Es besteht kein technischer Unterschied zur vollen
Session und Sie können jederzeit hin- und herschalten. Session und Sie können jederzeit hin- und herschalten.
@ -167,7 +167,7 @@ Jede Session verfügt über ein Kontextmenü (z.B. rechte Maustaste) mit weitere
eine Session umbennen, löschen (inkl. aller dazugehörigen Dateien auf der Festplatte!) und mehr. eine Session umbennen, löschen (inkl. aller dazugehörigen Dateien auf der Festplatte!) und mehr.
Diese Funktionen sind gleichwertig zu ihrem Dateimanager. Falls Sie möchten, können Sie auch Diese Funktionen sind gleichwertig zu ihrem Dateimanager. Falls Sie möchten, können Sie auch
einfach die Sessionverzeichnisse selbst umbennen, verschieben oder löschen (sofern diese nicht einfach die Sessionverzeichnisse selbst umbennen, verschieben oder löschen (sofern diese nicht
gerade geöffnet ist). Dazu muss Argodejo nicht neugestartet werden, es reagiert selbst auf die gerade geöffnet ist). Dazu muss Agordejo nicht neugestartet werden, es reagiert selbst auf die
Änderungen. Änderungen.
Hier gibt es auch die Möglichkeit eine sogenannte "Lock"-Datei zu entfernen. Das ist eine Datei, Hier gibt es auch die Möglichkeit eine sogenannte "Lock"-Datei zu entfernen. Das ist eine Datei,
@ -206,7 +206,7 @@ Pro Programm gibt es folgende Informationen:
* Den Programmstatus (auf Englisch, da es sich um definierte Schlüsselworte handelt). * Den Programmstatus (auf Englisch, da es sich um definierte Schlüsselworte handelt).
* Stopped / Gestoppt, läuft nicht * Stopped / Gestoppt, läuft nicht
* Ready / Läuft und Bereit * Ready / Läuft und Bereit
* Launch / Startet. Wenn das Programm hier stehen bleibt, aber funktioniert, handelt es sich um eins, dass nicht speziell den Sessionmodus unterstützt. Argodejo kann nicht wissen, ob es bereits läuft oder nicht. Alles ist in Ordnung! :) * 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! :)
* Weitere Zustände sind nur Übergänge und meist nur sehr kurz zu sehen, z.B. Open / Läd gerade * Weitere Zustände sind nur Übergänge und meist nur sehr kurz zu sehen, z.B. Open / Läd gerade
* Sichtbarkeit (Ein Kreuz für sichtbar, Leer für unsichtbar) * Sichtbarkeit (Ein Kreuz für sichtbar, Leer für unsichtbar)
* Änderungen - Gibt es momentan ungespeicherte Änderungen? * Änderungen - Gibt es momentan ungespeicherte Änderungen?
@ -237,13 +237,13 @@ Im Gegensatz zur schnellen Ansicht stehen hier weitere Menüs zur Verfügung, di
* Abbrechen beendet die Session, ohne dass die Programme abspeichern * Abbrechen beendet die Session, ohne dass die Programme abspeichern
* Speichern Unter speichert die Session unter einem anderen Namen und schließt die laufende ohne abzuspeichern. Ab nun arbeitet man in der neuen Session. * Speichern Unter speichert die Session unter einem anderen Namen und schließt die laufende ohne abzuspeichern. Ab nun arbeitet man in der neuen Session.
* Client Hinzufügen bietet die Option ein beliebiges Programm hinzuzufügen, egal ob es in der Programmdatenbank ist, oder nicht. * Client Hinzufügen bietet die Option ein beliebiges Programm hinzuzufügen, egal ob es in der Programmdatenbank ist, oder nicht.
* Es werden alle installierten Programme vorgeschlagen. Argodejo überprüft diese nicht auf Sinnhaftigkeit für eine Musik-Session, oder auch nur auf Lauffähigkeit. Sie finden hier `ls` wie auch `argodejo` selbst. * 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 `ls` wie auch `agordejo` selbst.
== Programm-Datenbank == Programm-Datenbank
Argodejos Programmstarter basiert auf einer Programmdatenbank, die sich teilweise selbst erstellt, Agordejos Programmstarter basiert auf einer Programmdatenbank, die sich teilweise selbst erstellt,
teilweise von Hand eingepflegt wurde. Das bedeutet nichts anderes, als das alle installieren teilweise von Hand eingepflegt wurde. Das bedeutet nichts anderes, als das alle installieren
Programme in ihrem System überprüft werden (wie ein Startmenü) und Ihnen im Argodejo-Starter nur Programme in ihrem System überprüft werden (wie ein Startmenü) und Ihnen im Agordejo-Starter nur
das angeboten wird, was Sie auch tatsächlich installiert haben. das angeboten wird, was Sie auch tatsächlich installiert haben.
Beim ersten Start wird daher die Programmdatenbank erstellt. Je nach System kann dies einige Beim ersten Start wird daher die Programmdatenbank erstellt. Je nach System kann dies einige
@ -251,7 +251,7 @@ Augenblicke bis einige Minuten dauern.
Wenn Sie Audio-Programme neu installieren, oder deinstallieren müssen Sie die Datenbank selbst Wenn Sie Audio-Programme neu installieren, oder deinstallieren müssen Sie die Datenbank selbst
aktualisieren. Im Steuerungsmenü gibt es den Befehl. Programminstallationen sind sogar möglich aktualisieren. Im Steuerungsmenü gibt es den Befehl. Programminstallationen sind sogar möglich
während Argodejo läuft (auch in einer Session). Nach einem DB-Update stehen Ihnen sofort alle während Agordejo läuft (auch in einer Session). Nach einem DB-Update stehen Ihnen sofort alle
neuen Programme zur Verfügung. neuen Programme zur Verfügung.
Wenn Sie ein installiertes Programm nicht in unserer Liste sehen, aber von dem Sie sicher sind, Wenn Sie ein installiertes Programm nicht in unserer Liste sehen, aber von dem Sie sicher sind,
@ -279,10 +279,10 @@ Verzeichnis.
== Tray == Tray
Argodejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das Agordejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das
Trayicon zeigt oder versteckt Argodejo. Trayicon zeigt oder versteckt Agordejo.
Schließt man Argodejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das Schließt man Agordejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das
Programm und die Session nicht beendet, sondern in den Tray minimiert. Programm und die Session nicht beendet, sondern in den Tray minimiert.
Ein Rechtsklick auf das Icon bietet Schnellzugriff auf häufige Funktionen: Ein Rechtsklick auf das Icon bietet Schnellzugriff auf häufige Funktionen:
@ -291,7 +291,7 @@ Sie können hier die zuletzt benutzen Sessions direkt starten.
Läuft bereits eine Session können Sie speichern, abbrechen etc. Läuft bereits eine Session können Sie speichern, abbrechen etc.
Argodejo kann hier auch komplett beendet werden. Agordejo kann hier auch komplett beendet werden.
== Netzwerk-Sessions == Netzwerk-Sessions
@ -301,25 +301,25 @@ vorgesehen.
== Programmparameter == Programmparameter
Als fortgeschrittener Benutzer können Sie Argodejo im Terminal starten und dort einige Parameter Als fortgeschrittener Benutzer können Sie Agordejo im Terminal starten und dort einige Parameter
angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter. angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.
Eine Auswahl: Eine Auswahl:
* `--session neuesAlbum/meinLied` startet direkt die angegebene Session. * `--session neuesAlbum/meinLied` startet direkt die angegebene Session.
* `--continue` startet die zuletzt benutzte Session * `--continue` startet die zuletzt benutzte Session
* `--hide` startet Argodejo als Trayicon. * `--hide` startet Agordejo als Trayicon.
* `--url osc.udp://myhost.localdomain:14294/` 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. * `--url osc.udp://myhost.localdomain:14294/` 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.
* `--session-root /home/benutzer/produktion2020` setzt das Wurzelverzeichnis. Nur Sessions in diesem Verzeichnis werden angezeigt, alles wird dort gespeichert. * `--session-root /home/benutzer/produktion2020` setzt das Wurzelverzeichnis. Nur Sessions in diesem Verzeichnis werden angezeigt, alles wird dort gespeichert.
Die Kombination von `--continue` und `--hide` ergibt einen Modus, den viele Leute vom Session Management Die Kombination von `--continue` und `--hide` ergibt einen Modus, den viele Leute vom Session Management
erwarten: dort weiter machen wo man aufgehört hat, ohne dass Extrafenster angezeigt werden. erwarten: dort weiter machen wo man aufgehört hat, ohne dass Extrafenster angezeigt werden.
Falls Ihr System über ein Startmenü verfügt finden Sie daher neben dem normalen Argodejo-Starter Falls Ihr System über ein Startmenü verfügt finden Sie daher neben dem normalen Agordejo-Starter
auch eine "Argodejo Continue"-Verknüpfung für genau diesen Modus. auch eine "Agordejo Continue"-Verknüpfung für genau diesen Modus.
== Verschiedenes / Erklärungen / FAQ == Verschiedenes / Erklärungen / FAQ
*Session Speichern und Beenden reagiert langsam*: Argodejo ist kein Einzelprogramm wie ein *Session Speichern und Beenden reagiert langsam*: Agordejo ist kein Einzelprogramm wie ein
Office-Writer. Die teilnehmenden Programme in der Session sind auch keine Plugins. Wenn Sie die Office-Writer. Die teilnehmenden Programme in der Session sind auch keine Plugins. Wenn Sie die
Session beenden wird ein Signal an alle teilnehmenden Programme gesendet, dass sie speichern Session beenden wird ein Signal an alle teilnehmenden Programme gesendet, dass sie speichern
sollen. Das kann ein paar Momente dauern, in denen Sie "live" mitverfolgen, wie die einzelnen sollen. Das kann ein paar Momente dauern, in denen Sie "live" mitverfolgen, wie die einzelnen
@ -327,7 +327,7 @@ Programme sich beenden und aus der Session verschwinden. Es ist alles in Ordnung
*Ich habe ein Programm hinzugefügt aber es speichert nicht mit der Session*: *Ich habe ein Programm hinzugefügt aber es speichert nicht mit der Session*:
Unterstützt das Programm Session Management? Wenn nicht, kann Argodejo nichts tun. Unterstützt das Programm Session Management? Wenn nicht, kann Agordejo nichts tun.
Aber Sie können die Programmentwickler bitten mit uns Kontakt aufzunehmen (info@laborejo.org) Aber Sie können die Programmentwickler bitten mit uns Kontakt aufzunehmen (info@laborejo.org)
und wir können zusammen an der Unterstützung arbeiten. und wir können zusammen an der Unterstützung arbeiten.
@ -337,14 +337,14 @@ Das tut uns leid. Eigentlich sind die Programme selbst schuld, aber auch wir sin
interessiert die Situation zu verbessen, indem wir in Zukunft zumindest eine Notlösung anbieten. interessiert die Situation zu verbessen, indem wir in Zukunft zumindest eine Notlösung anbieten.
*Argodejo startet nicht mehr! Ich starte das Programm aber ich sehe nichts.*: Wahrscheinlich ist *Agordejo startet nicht mehr! Ich starte das Programm aber ich sehe nichts.*: Wahrscheinlich ist
Argodejo unsichtbar, weil Sie es aus dem Tray heraus beendet hatten. Ist es im Tray? Eigentlich Agordejo unsichtbar, weil Sie es aus dem Tray heraus beendet hatten. Ist es im Tray? Eigentlich
hätte ein kleines Nachrichtenfenster aufpoppen sollen. Falls in ihrem Window-Manager kein Tray hätte ein kleines Nachrichtenfenster aufpoppen sollen. Falls in ihrem Window-Manager kein Tray
vorhanden ist sollte das Programm immer sichtbar sein. Bei besonderen Window-Managern (bei der vorhanden ist sollte das Programm immer sichtbar sein. Bei besonderen Window-Managern (bei der
großen Auswahl in Linux) kann es sein, dass die Tray-Erkennung nicht richtig funktioniert hat. großen Auswahl in Linux) kann es sein, dass die Tray-Erkennung nicht richtig funktioniert hat.
Notfallplan ist es `~/.config/LaborejoSoftwareSuite/argodejo` zu löschen. Dabei werden KEINE Notfallplan ist es `~/.config/LaborejoSoftwareSuite/agordejo` zu löschen. Dabei werden KEINE
Sessions gelöscht, sondern nur lokale Einstellungen wie die Sichtbarkeit des Programmfensters. Beim Sessions gelöscht, sondern nur lokale Einstellungen wie die Sichtbarkeit des Programmfensters. Beim
nächsten Start wird Argodejo sich verhalten wie beim allerersten. nächsten Start wird Agordejo sich verhalten wie beim allerersten.
*JACK ist abgestürzt. Viele Programme hängen. Was tun um Datenverlust zu vermeiden?*: *JACK ist abgestürzt. Viele Programme hängen. Was tun um Datenverlust zu vermeiden?*:
@ -357,7 +357,7 @@ manuell im Dateimanager eine Kopie des Session-Verzeichnisses machen.
*Ein Programmupdate hat meine Session kaputtgemacht, weil es seine Dateien nicht mehr laden kann.*: *Ein Programmupdate hat meine Session kaputtgemacht, weil es seine Dateien nicht mehr laden kann.*:
Das ist leider ein Problem, dass auch Argodejo nicht lösen kann. Es passiert mit LV2-Plugins ebenso Das ist leider ein Problem, dass auch Agordejo nicht lösen kann. Es passiert mit LV2-Plugins ebenso
wie mit alle anderen Software, etwa Officeprogramme. Falls Sie befürchten, dass ein Programm in wie mit alle anderen Software, etwa Officeprogramme. Falls Sie befürchten, dass ein Programm in
Zukunft inkompatibel wird notieren Sie sich dessen Versionsnummer in den Session-Notizen, damit Sie Zukunft inkompatibel wird notieren Sie sich dessen Versionsnummer in den Session-Notizen, damit Sie
zumindest zur Not die alte Programmversion wieder installieren können (auch wenn das sehr zumindest zur Not die alte Programmversion wieder installieren können (auch wenn das sehr
@ -371,7 +371,7 @@ immer.
Sie sollten sich nicht genötigt fühlen plötzlich alles modular mit Einzelprogrammen zu machen, nur Sie sollten sich nicht genötigt fühlen plötzlich alles modular mit Einzelprogrammen zu machen, nur
weil Sie einen Session Manager benutzen. weil Sie einen Session Manager benutzen.
Argodejo ist dafür da, ihre Musikproduktion einfacher zu machen. Wenn es schneller und bequemer ist Agordejo ist dafür da, ihre Musikproduktion einfacher zu machen. Wenn es schneller und bequemer ist
alle Plugins und Effekte z.B. in einer einzelnen Carla-Instanz zu verwalten dann sollten Sie genau alle Plugins und Effekte z.B. in einer einzelnen Carla-Instanz zu verwalten dann sollten Sie genau
das machen. das machen.
Wenn Sie prinzipiell alles in Ardour machen wollen, machen Sie das, aber starten Sie Ardour trotzdem Wenn Sie prinzipiell alles in Ardour machen wollen, machen Sie das, aber starten Sie Ardour trotzdem
@ -390,7 +390,7 @@ aber trotzdem inhaltlich dazu gehört: Open Broadcast Studio (OBS), Musikplayer,
und Grafikprogramme etc. und Grafikprogramme etc.
*Argodejo beinhaltet Funktionalität, die nicht seine Aufgabe ist*: Musikproduktion ist sehr komplex *Agordejo beinhaltet Funktionalität, die nicht seine Aufgabe ist*: Musikproduktion ist sehr komplex
und Komplexität ist unvermeidlich. Sie ist wie ein Wasserbett: Drückt man die auf der einen Seite und Komplexität ist unvermeidlich. Sie ist wie ein Wasserbett: Drückt man die auf der einen Seite
runter, muss etwas an einen anderen Stelle hochdrücken. Macht man ein programm "clean and lean", runter, muss etwas an einen anderen Stelle hochdrücken. Macht man ein programm "clean and lean",
und implementiert damit nur einen Teil des kompletten Arbeitsablaufs, dann kommt der fehlende Teil und implementiert damit nur einen Teil des kompletten Arbeitsablaufs, dann kommt der fehlende Teil
@ -401,7 +401,7 @@ ist, und er es tun kann, dann soll er es machen.
Oder Abstürze: Technisch gesehen sind abstürzende Programme nicht das "Problem" des Session Oder Abstürze: Technisch gesehen sind abstürzende Programme nicht das "Problem" des Session
Managers, aber sie sind Teil der Softwarewirklichkeit. Abstürze passieren jeden Tag und nun muss Managers, aber sie sind Teil der Softwarewirklichkeit. Abstürze passieren jeden Tag und nun muss
man damit umgehen. Kann Argodejo die Arbeit vereinfachen und helfen den guten Zustand wieder man damit umgehen. Kann Agordejo die Arbeit vereinfachen und helfen den guten Zustand wieder
herzustellen? Dann sollte das geschehen. herzustellen? Dann sollte das geschehen.
Session Management ist außerdem eine Chance auch komplexe technische Szenarios zu vereinfachen, z.B. Session Management ist außerdem eine Chance auch komplexe technische Szenarios zu vereinfachen, z.B.
@ -411,30 +411,30 @@ Sessions über das Netzwerk zu verteilen.
== Installation und Start == Installation und Start
Argodejo ist exklusiv für Linux. Am besten installieren Sie Argodejo über deinen Paketmanager. Agordejo ist exklusiv für Linux. Am besten installieren Sie Agordejo über deinen Paketmanager.
Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre
Linuxdistribution Argodejo bereitzustellen. Linuxdistribution Agordejo bereitzustellen.
Falls nicht in den Paketquellen vorhanden kann man Argodejo auch selbst "bauen". Falls nicht in den Paketquellen vorhanden kann man Agordejo auch selbst "bauen".
.Abhängigkeiten* .Abhängigkeiten*
* Eine Liste der Abhängigkeit befindet sich in der README.md * Eine Liste der Abhängigkeit befindet sich in der README.md
* Kompilieren und Installieren geht entweder mit einem Releasedownload oder mit der Git-Version: * Kompilieren und Installieren geht entweder mit einem Releasedownload oder mit der Git-Version:
** Laden Sie von https://www.laborejo.org/downloads die aktuelle Version herunter und entpacken Sie sie. ** Laden Sie von https://www.laborejo.org/downloads die aktuelle Version herunter und entpacken Sie sie.
** `git clone https://git.laborejo.org/lss/argodejo.git` ** `git clone https://git.laborejo.org/lss/agordejo.git`
* Wechseln Sie in das neue Verzeichnis und benutzen diese Befehle: * Wechseln Sie in das neue Verzeichnis und benutzen diese Befehle:
*`./configure --prefix=/usr` *`./configure --prefix=/usr`
** Das Standardprefix is /usr/local ** Das Standardprefix is /usr/local
* `make` * `make`
* `sudo make install` * `sudo make install`
Nun ist das Programm durch `argodejo` in ihrem Terminal oder Programmstarter vorhanden. Nun ist das Programm durch `agordejo` in ihrem Terminal oder Programmstarter vorhanden.
In der Datei README.md befinden sich weitere Möglichkeiten argodejo zu starten. Diese sind zum In der Datei README.md befinden sich weitere Möglichkeiten agordejo zu starten. Diese sind zum
Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung. Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.
== Helfen und Entwicklung == Helfen und Entwicklung
Sie können Argodejo auf viele Arten und Weisen helfen: Testen und Fehler melden, übersetzen, marketing, Sie können Agordejo auf viele Arten und Weisen helfen: Testen und Fehler melden, übersetzen, marketing,
anderen Nutzern helfen und schließlich programmieren. anderen Nutzern helfen und schließlich programmieren.
=== Testen und Programmfehler === Testen und Programmfehler
@ -452,7 +452,7 @@ Falls Sie an der Entwicklung interessiert sind, melden Sie sich am besten direkt
Kurzversion: clone git, programmieren, einen git-patch erstellen oder uns eine git URL zukommen lassen. Kurzversion: clone git, programmieren, einen git-patch erstellen oder uns eine git URL zukommen lassen.
=== Übersetzungen === Übersetzungen
Argodejo ist mit Hilfe der Qt-Toolchain sehr einfach zu übersetzen, ohne, dass man dafür Programmieren muss. Agordejo 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. Die einfachste Variante ist es einfach die Entwickler anzusprechen und sie werden die neue Sprache einrichten.
Hier ist dennoch die komplette Anleitung, um eine Übersetzung komplett alleine anzufertigen und in Hier ist dennoch die komplette Anleitung, um eine Übersetzung komplett alleine anzufertigen und in
@ -482,6 +482,6 @@ Python Kentnisse nötig.
Um die neue Übersetzung zu testen starten Sie das Programm, falls ihr System bereits auf diese Um die neue Übersetzung zu testen starten Sie das Programm, falls ihr System bereits auf diese
Sprache eingstellt ist. Sprache eingstellt ist.
Ansonsten starten Sie argodejo mit diesem Befehl, Sprachcode ändern, vom Terminal aus: Ansonsten starten Sie agordejo mit diesem Befehl, Sprachcode ändern, vom Terminal aus:
* `LANGUAGE=de_DE.UTF-8 ./argodejo -V` * `LANGUAGE=de_DE.UTF-8 ./agordejo -V`

60
documentation/german.part.adoc

@ -21,28 +21,28 @@ Echtzeit teilen, verfügen über synchronisierte Timelines und spielen im gleich
Was übrig bleibt ist die leidige Arbeit jedesmal alle Programme zu starten, die Projektdateien zu Was übrig bleibt ist die leidige Arbeit jedesmal alle Programme zu starten, die Projektdateien zu
laden, alle Audiokanäle zu verbinden usw. Session Management im allgemeinen (z.B. extra laden, alle Audiokanäle zu verbinden usw. Session Management im allgemeinen (z.B. extra
geschriebene Starter-Scriptdateien) und Argodejo im speziellen nehmen Ihnen diese Arbeit ab, oder geschriebene Starter-Scriptdateien) und Agordejo im speziellen nehmen Ihnen diese Arbeit ab, oder
vereinfachen sie zumindest stark. vereinfachen sie zumindest stark.
Im Gegensatz zum erwähnten selbstgeschriebenen Script müssen Sie sich nicht im Vorraus für ein Im Gegensatz zum erwähnten selbstgeschriebenen Script müssen Sie sich nicht im Vorraus für ein
Setup entscheiden, sondern alles wird automatisch verwaltet, solange Sie alles durch den Session Setup entscheiden, sondern alles wird automatisch verwaltet, solange Sie alles durch den Session
Manager Argodejo starten. Manager Agordejo starten.
=== Anwendungsbeispiel === Anwendungsbeispiel
* Argodejo starten (Startmenü, Terminal etc.) * Agordejo starten (Startmenü, Terminal etc.)
* Man befindet sich nun in der "Schnellen Ansicht" um eine Session zu starten * Man befindet sich nun in der "Schnellen Ansicht" um eine Session zu starten
* Der große Knopf: "Starte Neue Session" * Der große Knopf: "Starte Neue Session"
* Nun bekommt man eine Auswahl an Programmen: * Nun bekommt man eine Auswahl an Programmen:
* Ein einfacher Klick mit der Maus startet ein Programm * Ein einfacher Klick mit der Maus startet ein Programm
* Ein weiterer Klick versteckt (oder zeigt anschließend) dessen grafische Oberfläche * Ein weiterer Klick versteckt (oder zeigt anschließend) dessen grafische Oberfläche
* Sollte das Programm abstürzen bekommt man das signalisiert und kann es neustarten. * Sollte das Programm abstürzen bekommt man das signalisiert und kann es neustarten.
* Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Argodejo gespeichert. * Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Agordejo gespeichert.
* Um andere Programme und erweiterte Funktionen zu bekommen kann man in den Tab "Volle Ansicht" wechseln * Um andere Programme und erweiterte Funktionen zu bekommen kann man in den Tab "Volle Ansicht" wechseln
* Der Name der Session ist bisher einfach ein Datum. Durch Klick auf dieses kann man einen richtigen Namen eingeben. Etwa "Mein Lied" * Der Name der Session ist bisher einfach ein Datum. Durch Klick auf dieses kann man einen richtigen Namen eingeben. Etwa "Mein Lied"
* Ist man soweit fertig kommt man durch den Knopf "Speichern und Schließen" wieder in die Sessionauswahl zurück * Ist man soweit fertig kommt man durch den Knopf "Speichern und Schließen" wieder in die Sessionauswahl zurück
* Nun könnte Argodejo geschlossen werden. * Nun könnte Agordejo geschlossen werden.
* Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (`~/NSM Sessions/Mein Lied`) * Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (`~/NSM Sessions/Mein Lied`)
* Die Session kann weitergeführt werden: Nach dem Klick auf den Namen starten alle Programme automatisch und verbinden ihre JACK-Ports untereinander. * Die Session kann weitergeführt werden: Nach dem Klick auf den Namen starten alle Programme automatisch und verbinden ihre JACK-Ports untereinander.
@ -58,7 +58,7 @@ Entscheidungen wie möglich zu treffen haben und so schnell wie möglich (mit de
eine alte Session starten oder eine neue erstellen können. eine alte Session starten oder eine neue erstellen können.
Aus Stabilitätsgründen werden nur Programme zum Starten angeboten, von denen bekannt ist, dass Sie Aus Stabilitätsgründen werden nur Programme zum Starten angeboten, von denen bekannt ist, dass Sie
korrekt mit dem Session Management Argodejos zusammenarbeiten. korrekt mit dem Session Management Agordejos zusammenarbeiten.
Die Schnelle Ansicht ist lediglich eine Ansicht. Es besteht kein technischer Unterschied zur vollen Die Schnelle Ansicht ist lediglich eine Ansicht. Es besteht kein technischer Unterschied zur vollen
Session und Sie können jederzeit hin- und herschalten. Session und Sie können jederzeit hin- und herschalten.
@ -138,7 +138,7 @@ Jede Session verfügt über ein Kontextmenü (z.B. rechte Maustaste) mit weitere
eine Session umbennen, löschen (inkl. aller dazugehörigen Dateien auf der Festplatte!) und mehr. eine Session umbennen, löschen (inkl. aller dazugehörigen Dateien auf der Festplatte!) und mehr.
Diese Funktionen sind gleichwertig zu ihrem Dateimanager. Falls Sie möchten, können Sie auch Diese Funktionen sind gleichwertig zu ihrem Dateimanager. Falls Sie möchten, können Sie auch
einfach die Sessionverzeichnisse selbst umbennen, verschieben oder löschen (sofern diese nicht einfach die Sessionverzeichnisse selbst umbennen, verschieben oder löschen (sofern diese nicht
gerade geöffnet ist). Dazu muss Argodejo nicht neugestartet werden, es reagiert selbst auf die gerade geöffnet ist). Dazu muss Agordejo nicht neugestartet werden, es reagiert selbst auf die
Änderungen. Änderungen.
Hier gibt es auch die Möglichkeit eine sogenannte "Lock"-Datei zu entfernen. Das ist eine Datei, Hier gibt es auch die Möglichkeit eine sogenannte "Lock"-Datei zu entfernen. Das ist eine Datei,
@ -177,7 +177,7 @@ Pro Programm gibt es folgende Informationen:
* Den Programmstatus (auf Englisch, da es sich um definierte Schlüsselworte handelt). * Den Programmstatus (auf Englisch, da es sich um definierte Schlüsselworte handelt).
* Stopped / Gestoppt, läuft nicht * Stopped / Gestoppt, läuft nicht
* Ready / Läuft und Bereit * Ready / Läuft und Bereit
* Launch / Startet. Wenn das Programm hier stehen bleibt, aber funktioniert, handelt es sich um eins, dass nicht speziell den Sessionmodus unterstützt. Argodejo kann nicht wissen, ob es bereits läuft oder nicht. Alles ist in Ordnung! :) * 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! :)
* Weitere Zustände sind nur Übergänge und meist nur sehr kurz zu sehen, z.B. Open / Läd gerade * Weitere Zustände sind nur Übergänge und meist nur sehr kurz zu sehen, z.B. Open / Läd gerade
* Sichtbarkeit (Ein Kreuz für sichtbar, Leer für unsichtbar) * Sichtbarkeit (Ein Kreuz für sichtbar, Leer für unsichtbar)
* Änderungen - Gibt es momentan ungespeicherte Änderungen? * Änderungen - Gibt es momentan ungespeicherte Änderungen?
@ -208,13 +208,13 @@ Im Gegensatz zur schnellen Ansicht stehen hier weitere Menüs zur Verfügung, di
* Abbrechen beendet die Session, ohne dass die Programme abspeichern * Abbrechen beendet die Session, ohne dass die Programme abspeichern
* Speichern Unter speichert die Session unter einem anderen Namen und schließt die laufende ohne abzuspeichern. Ab nun arbeitet man in der neuen Session. * Speichern Unter speichert die Session unter einem anderen Namen und schließt die laufende ohne abzuspeichern. Ab nun arbeitet man in der neuen Session.
* Client Hinzufügen bietet die Option ein beliebiges Programm hinzuzufügen, egal ob es in der Programmdatenbank ist, oder nicht. * Client Hinzufügen bietet die Option ein beliebiges Programm hinzuzufügen, egal ob es in der Programmdatenbank ist, oder nicht.
* Es werden alle installierten Programme vorgeschlagen. Argodejo überprüft diese nicht auf Sinnhaftigkeit für eine Musik-Session, oder auch nur auf Lauffähigkeit. Sie finden hier `ls` wie auch `argodejo` selbst. * 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 `ls` wie auch `agordejo` selbst.
== Programm-Datenbank == Programm-Datenbank
Argodejos Programmstarter basiert auf einer Programmdatenbank, die sich teilweise selbst erstellt, Agordejos Programmstarter basiert auf einer Programmdatenbank, die sich teilweise selbst erstellt,
teilweise von Hand eingepflegt wurde. Das bedeutet nichts anderes, als das alle installieren teilweise von Hand eingepflegt wurde. Das bedeutet nichts anderes, als das alle installieren
Programme in ihrem System überprüft werden (wie ein Startmenü) und Ihnen im Argodejo-Starter nur Programme in ihrem System überprüft werden (wie ein Startmenü) und Ihnen im Agordejo-Starter nur
das angeboten wird, was Sie auch tatsächlich installiert haben. das angeboten wird, was Sie auch tatsächlich installiert haben.
Beim ersten Start wird daher die Programmdatenbank erstellt. Je nach System kann dies einige Beim ersten Start wird daher die Programmdatenbank erstellt. Je nach System kann dies einige
@ -222,7 +222,7 @@ Augenblicke bis einige Minuten dauern.
Wenn Sie Audio-Programme neu installieren, oder deinstallieren müssen Sie die Datenbank selbst Wenn Sie Audio-Programme neu installieren, oder deinstallieren müssen Sie die Datenbank selbst
aktualisieren. Im Steuerungsmenü gibt es den Befehl. Programminstallationen sind sogar möglich aktualisieren. Im Steuerungsmenü gibt es den Befehl. Programminstallationen sind sogar möglich
während Argodejo läuft (auch in einer Session). Nach einem DB-Update stehen Ihnen sofort alle während Agordejo läuft (auch in einer Session). Nach einem DB-Update stehen Ihnen sofort alle
neuen Programme zur Verfügung. neuen Programme zur Verfügung.
Wenn Sie ein installiertes Programm nicht in unserer Liste sehen, aber von dem Sie sicher sind, Wenn Sie ein installiertes Programm nicht in unserer Liste sehen, aber von dem Sie sicher sind,
@ -250,10 +250,10 @@ Verzeichnis.
== Tray == Tray
Argodejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das Agordejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das
Trayicon zeigt oder versteckt Argodejo. Trayicon zeigt oder versteckt Agordejo.
Schließt man Argodejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das Schließt man Agordejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das
Programm und die Session nicht beendet, sondern in den Tray minimiert. Programm und die Session nicht beendet, sondern in den Tray minimiert.
Ein Rechtsklick auf das Icon bietet Schnellzugriff auf häufige Funktionen: Ein Rechtsklick auf das Icon bietet Schnellzugriff auf häufige Funktionen:
@ -262,7 +262,7 @@ Sie können hier die zuletzt benutzen Sessions direkt starten.
Läuft bereits eine Session können Sie speichern, abbrechen etc. Läuft bereits eine Session können Sie speichern, abbrechen etc.
Argodejo kann hier auch komplett beendet werden. Agordejo kann hier auch komplett beendet werden.
== Netzwerk-Sessions == Netzwerk-Sessions
@ -272,25 +272,25 @@ vorgesehen.
== Programmparameter == Programmparameter
Als fortgeschrittener Benutzer können Sie Argodejo im Terminal starten und dort einige Parameter Als fortgeschrittener Benutzer können Sie Agordejo im Terminal starten und dort einige Parameter
angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter. angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.
Eine Auswahl: Eine Auswahl:
* `--session neuesAlbum/meinLied` startet direkt die angegebene Session. * `--session neuesAlbum/meinLied` startet direkt die angegebene Session.
* `--continue` startet die zuletzt benutzte Session * `--continue` startet die zuletzt benutzte Session
* `--hide` startet Argodejo als Trayicon. * `--hide` startet Agordejo als Trayicon.
* `--url osc.udp://myhost.localdomain:14294/` 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. * `--url osc.udp://myhost.localdomain:14294/` 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.
* `--session-root /home/benutzer/produktion2020` setzt das Wurzelverzeichnis. Nur Sessions in diesem Verzeichnis werden angezeigt, alles wird dort gespeichert. * `--session-root /home/benutzer/produktion2020` setzt das Wurzelverzeichnis. Nur Sessions in diesem Verzeichnis werden angezeigt, alles wird dort gespeichert.
Die Kombination von `--continue` und `--hide` ergibt einen Modus, den viele Leute vom Session Management Die Kombination von `--continue` und `--hide` ergibt einen Modus, den viele Leute vom Session Management
erwarten: dort weiter machen wo man aufgehört hat, ohne dass Extrafenster angezeigt werden. erwarten: dort weiter machen wo man aufgehört hat, ohne dass Extrafenster angezeigt werden.
Falls Ihr System über ein Startmenü verfügt finden Sie daher neben dem normalen Argodejo-Starter Falls Ihr System über ein Startmenü verfügt finden Sie daher neben dem normalen Agordejo-Starter
auch eine "Argodejo Continue"-Verknüpfung für genau diesen Modus. auch eine "Agordejo Continue"-Verknüpfung für genau diesen Modus.
== Verschiedenes / Erklärungen / FAQ == Verschiedenes / Erklärungen / FAQ
*Session Speichern und Beenden reagiert langsam*: Argodejo ist kein Einzelprogramm wie ein *Session Speichern und Beenden reagiert langsam*: Agordejo ist kein Einzelprogramm wie ein
Office-Writer. Die teilnehmenden Programme in der Session sind auch keine Plugins. Wenn Sie die Office-Writer. Die teilnehmenden Programme in der Session sind auch keine Plugins. Wenn Sie die
Session beenden wird ein Signal an alle teilnehmenden Programme gesendet, dass sie speichern Session beenden wird ein Signal an alle teilnehmenden Programme gesendet, dass sie speichern
sollen. Das kann ein paar Momente dauern, in denen Sie "live" mitverfolgen, wie die einzelnen sollen. Das kann ein paar Momente dauern, in denen Sie "live" mitverfolgen, wie die einzelnen
@ -298,7 +298,7 @@ Programme sich beenden und aus der Session verschwinden. Es ist alles in Ordnung
*Ich habe ein Programm hinzugefügt aber es speichert nicht mit der Session*: *Ich habe ein Programm hinzugefügt aber es speichert nicht mit der Session*:
Unterstützt das Programm Session Management? Wenn nicht, kann Argodejo nichts tun. Unterstützt das Programm Session Management? Wenn nicht, kann Agordejo nichts tun.
Aber Sie können die Programmentwickler bitten mit uns Kontakt aufzunehmen (info@laborejo.org) Aber Sie können die Programmentwickler bitten mit uns Kontakt aufzunehmen (info@laborejo.org)
und wir können zusammen an der Unterstützung arbeiten. und wir können zusammen an der Unterstützung arbeiten.
@ -308,14 +308,14 @@ Das tut uns leid. Eigentlich sind die Programme selbst schuld, aber auch wir sin
interessiert die Situation zu verbessen, indem wir in Zukunft zumindest eine Notlösung anbieten. interessiert die Situation zu verbessen, indem wir in Zukunft zumindest eine Notlösung anbieten.
*Argodejo startet nicht mehr! Ich starte das Programm aber ich sehe nichts.*: Wahrscheinlich ist *Agordejo startet nicht mehr! Ich starte das Programm aber ich sehe nichts.*: Wahrscheinlich ist
Argodejo unsichtbar, weil Sie es aus dem Tray heraus beendet hatten. Ist es im Tray? Eigentlich Agordejo unsichtbar, weil Sie es aus dem Tray heraus beendet hatten. Ist es im Tray? Eigentlich
hätte ein kleines Nachrichtenfenster aufpoppen sollen. Falls in ihrem Window-Manager kein Tray hätte ein kleines Nachrichtenfenster aufpoppen sollen. Falls in ihrem Window-Manager kein Tray
vorhanden ist sollte das Programm immer sichtbar sein. Bei besonderen Window-Managern (bei der vorhanden ist sollte das Programm immer sichtbar sein. Bei besonderen Window-Managern (bei der
großen Auswahl in Linux) kann es sein, dass die Tray-Erkennung nicht richtig funktioniert hat. großen Auswahl in Linux) kann es sein, dass die Tray-Erkennung nicht richtig funktioniert hat.
Notfallplan ist es `~/.config/LaborejoSoftwareSuite/argodejo` zu löschen. Dabei werden KEINE Notfallplan ist es `~/.config/LaborejoSoftwareSuite/agordejo` zu löschen. Dabei werden KEINE
Sessions gelöscht, sondern nur lokale Einstellungen wie die Sichtbarkeit des Programmfensters. Beim Sessions gelöscht, sondern nur lokale Einstellungen wie die Sichtbarkeit des Programmfensters. Beim
nächsten Start wird Argodejo sich verhalten wie beim allerersten. nächsten Start wird Agordejo sich verhalten wie beim allerersten.
*JACK ist abgestürzt. Viele Programme hängen. Was tun um Datenverlust zu vermeiden?*: *JACK ist abgestürzt. Viele Programme hängen. Was tun um Datenverlust zu vermeiden?*:
@ -328,7 +328,7 @@ manuell im Dateimanager eine Kopie des Session-Verzeichnisses machen.
*Ein Programmupdate hat meine Session kaputtgemacht, weil es seine Dateien nicht mehr laden kann.*: *Ein Programmupdate hat meine Session kaputtgemacht, weil es seine Dateien nicht mehr laden kann.*:
Das ist leider ein Problem, dass auch Argodejo nicht lösen kann. Es passiert mit LV2-Plugins ebenso Das ist leider ein Problem, dass auch Agordejo nicht lösen kann. Es passiert mit LV2-Plugins ebenso
wie mit alle anderen Software, etwa Officeprogramme. Falls Sie befürchten, dass ein Programm in wie mit alle anderen Software, etwa Officeprogramme. Falls Sie befürchten, dass ein Programm in
Zukunft inkompatibel wird notieren Sie sich dessen Versionsnummer in den Session-Notizen, damit Sie Zukunft inkompatibel wird notieren Sie sich dessen Versionsnummer in den Session-Notizen, damit Sie
zumindest zur Not die alte Programmversion wieder installieren können (auch wenn das sehr zumindest zur Not die alte Programmversion wieder installieren können (auch wenn das sehr
@ -342,7 +342,7 @@ immer.
Sie sollten sich nicht genötigt fühlen plötzlich alles modular mit Einzelprogrammen zu machen, nur Sie sollten sich nicht genötigt fühlen plötzlich alles modular mit Einzelprogrammen zu machen, nur
weil Sie einen Session Manager benutzen. weil Sie einen Session Manager benutzen.
Argodejo ist dafür da, ihre Musikproduktion einfacher zu machen. Wenn es schneller und bequemer ist Agordejo ist dafür da, ihre Musikproduktion einfacher zu machen. Wenn es schneller und bequemer ist
alle Plugins und Effekte z.B. in einer einzelnen Carla-Instanz zu verwalten dann sollten Sie genau alle Plugins und Effekte z.B. in einer einzelnen Carla-Instanz zu verwalten dann sollten Sie genau
das machen. das machen.
Wenn Sie prinzipiell alles in Ardour machen wollen, machen Sie das, aber starten Sie Ardour trotzdem Wenn Sie prinzipiell alles in Ardour machen wollen, machen Sie das, aber starten Sie Ardour trotzdem
@ -361,7 +361,7 @@ aber trotzdem inhaltlich dazu gehört: Open Broadcast Studio (OBS), Musikplayer,
und Grafikprogramme etc. und Grafikprogramme etc.
*Argodejo beinhaltet Funktionalität, die nicht seine Aufgabe ist*: Musikproduktion ist sehr komplex *Agordejo beinhaltet Funktionalität, die nicht seine Aufgabe ist*: Musikproduktion ist sehr komplex
und Komplexität ist unvermeidlich. Sie ist wie ein Wasserbett: Drückt man die auf der einen Seite und Komplexität ist unvermeidlich. Sie ist wie ein Wasserbett: Drückt man die auf der einen Seite
runter, muss etwas an einen anderen Stelle hochdrücken. Macht man ein programm "clean and lean", runter, muss etwas an einen anderen Stelle hochdrücken. Macht man ein programm "clean and lean",
und implementiert damit nur einen Teil des kompletten Arbeitsablaufs, dann kommt der fehlende Teil und implementiert damit nur einen Teil des kompletten Arbeitsablaufs, dann kommt der fehlende Teil
@ -372,7 +372,7 @@ ist, und er es tun kann, dann soll er es machen.
Oder Abstürze: Technisch gesehen sind abstürzende Programme nicht das "Problem" des Session Oder Abstürze: Technisch gesehen sind abstürzende Programme nicht das "Problem" des Session
Managers, aber sie sind Teil der Softwarewirklichkeit. Abstürze passieren jeden Tag und nun muss Managers, aber sie sind Teil der Softwarewirklichkeit. Abstürze passieren jeden Tag und nun muss
man damit umgehen. Kann Argodejo die Arbeit vereinfachen und helfen den guten Zustand wieder man damit umgehen. Kann Agordejo die Arbeit vereinfachen und helfen den guten Zustand wieder
herzustellen? Dann sollte das geschehen. herzustellen? Dann sollte das geschehen.
Session Management ist außerdem eine Chance auch komplexe technische Szenarios zu vereinfachen, z.B. Session Management ist außerdem eine Chance auch komplexe technische Szenarios zu vereinfachen, z.B.

2
documentation/index.adoc

@ -18,7 +18,7 @@ https://asciidoctor.org/docs/user-manual/
:nofooter: :nofooter:
== Argodejo Multi-Language Documentation == Agordejo Multi-Language Documentation
image::logo.png["logo", 320, 180] image::logo.png["logo", 320, 180]
For program version 0.1 For program version 0.1

18
documentation/manpageinclude.h2m

@ -1,10 +1,10 @@
[name] [name]
Argodejo - Music and audio production session manager based on NSM. Agordejo - Music and audio production session manager based on NSM.
[usage] [usage]
Argodejo (Esperanto: 'place to set things up') is a music production session manager. Agordejo (Esperanto: 'place to set things up') is a music production session manager.
It is used to start your programs, remember their (JACK) interconnections and make your life easier It is used to start your programs, remember their (JACK) interconnections and make your life easier
in general. in general.
@ -13,7 +13,7 @@ You can seamlessly change between two view modes to quickly start a few programs
control and a detailed overview. control and a detailed overview.
Argodejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances Agordejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances
it with some tricks of its own, that always remain 100% compatible with the original sessions. it with some tricks of its own, that always remain 100% compatible with the original sessions.
@ -23,7 +23,7 @@ implemented, most prominently anything related to NSM over network. There is alw
break things when trying out corner cases and hacks. break things when trying out corner cases and hacks.
That said, for single-computer sessions with just one daemon and one GUI at the same time Argodejo That said, for single-computer sessions with just one daemon and one GUI at the same time Agordejo
should provide a good user experience. should provide a good user experience.
@ -31,18 +31,18 @@ should provide a good user experience.
https://www.laborejo.org/bugs https://www.laborejo.org/bugs
[copyright] [copyright]
Argodejo 0.1 - Copyright 2020 Agordejo 0.1 - Copyright 2020
Laborejo Software Suite Laborejo Software Suite
https://www.laborejo.org/ https://www.laborejo.org/
[examples] [examples]
Run argodejo. You are now in the Quick View mode. Press New Session and add programs through a Run agordejo. You are now in the Quick View mode. Press New Session and add programs through a
single click on available program-icons. You can switch to the Full View mode via the tab to single click on available program-icons. You can switch to the Full View mode via the tab to
get more options. Try right-clicking on many things to get context menus. get more options. Try right-clicking on many things to get context menus.
[see also] [see also]
The full documentation for Argodejo is maintained as a multi-lingual html site to your systems doc-dir. The full documentation for Agordejo is maintained as a multi-lingual html site to your systems doc-dir.
For example: For example:
xdg-open file:///usr/share/doc/argodejo/index.html xdg-open file:///usr/share/doc/agordejo/index.html
The documentation can also be found online https://www.laborejo.org/documentation/argodejo The documentation can also be found online https://www.laborejo.org/documentation/agordejo

2
documentation/nsm-data.1

@ -5,7 +5,7 @@ nsm-data \- manual page for nsm-data 1.0
.SH DESCRIPTION .SH DESCRIPTION
usage: nsm\-data [\-h] [\-v] usage: nsm\-data [\-h] [\-v]
.PP .PP
nsm\-data is a module for Argodejo. It only communicates over OSC in an NSMSession and has no standalone functionality. nsm\-data is a module for Agordejo. It only communicates over OSC in an NSMSession and has no standalone functionality.
.SS "optional arguments:" .SS "optional arguments:"
.TP .TP
\fB\-h\fR, \fB\-\-help\fR \fB\-h\fR, \fB\-\-help\fR

90
documentation/out/english.html

@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10"> <meta name="generator" content="Asciidoctor 2.0.10">
<meta name="author" content="Laborejo Software Suite"> <meta name="author" content="Laborejo Software Suite">
<title>Argodejo</title> <title>Agordejo</title>
<style> <style>
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */ /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment @import statement to use as custom stylesheet */ /* Uncomment @import statement to use as custom stylesheet */
@ -438,7 +438,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</head> </head>
<body class="article toc2 toc-left"> <body class="article toc2 toc-left">
<div id="header"> <div id="header">
<h1>Argodejo</h1> <h1>Agordejo</h1>
<div class="details"> <div class="details">
<span id="author" class="author">Laborejo Software Suite</span><br> <span id="author" class="author">Laborejo Software Suite</span><br>
</div> </div>
@ -500,7 +500,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<h2 id="_introduction">1. Introduction</h2> <h2 id="_introduction">1. Introduction</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Argodejo (Esperanto: 'place to set things up') is a music production session manager. <p>Agordejo (Esperanto: 'place to set things up') is a music production session manager.
It is used to start your programs, remember their (JACK) interconnections and make your life easier It is used to start your programs, remember their (JACK) interconnections and make your life easier
in general.</p> in general.</p>
</div> </div>
@ -509,7 +509,7 @@ in general.</p>
control and a detailed overview.</p> control and a detailed overview.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Argodejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances <p>Agordejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances
it with some tricks of its own, that always remain 100% compatible with the original sessions.</p> it with some tricks of its own, that always remain 100% compatible with the original sessions.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -519,7 +519,7 @@ implemented, most prominently anything related to NSM over network. There is alw
break things when trying out corner cases and hacks.</p> break things when trying out corner cases and hacks.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>That said, for single-computer sessions with just one daemon and one GUI at the same time Argodejo <p>That said, for single-computer sessions with just one daemon and one GUI at the same time Agordejo
should provide a good user experience.</p> should provide a good user experience.</p>
</div> </div>
</div> </div>
@ -552,18 +552,18 @@ real time, have synchronized timelines and play in the same tempo.</p>
<div class="paragraph"> <div class="paragraph">
<p>What remains is the tedious work of always starting all programs, loading project files, connecting <p>What remains is the tedious work of always starting all programs, loading project files, connecting
audio channels etc. Session management in general (e.g. specifically written starter script files) audio channels etc. Session management in general (e.g. specifically written starter script files)
and Argodejo in particular do this work for you, or at the very least, greatly simplify it.</p> and Agordejo in particular do this work for you, or at the very least, greatly simplify it.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>In contrast to the self-written script mentioned above, you don&#8217;t have to decide in advance on a <p>In contrast to the self-written script mentioned above, you don&#8217;t have to decide in advance on a
setup, but everything is saved automatically as long as you manage everything through Argodejo.</p> setup, but everything is saved automatically as long as you manage everything through Agordejo.</p>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_example">2.1. Example</h3> <h3 id="_example">2.1. Example</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
<p>Start Argodejo (Start menu, terminal etc.)</p> <p>Start Agordejo (Start menu, terminal etc.)</p>
</li> </li>
<li> <li>
<p>You are now in the "Quick View" to start a session</p> <p>You are now in the "Quick View" to start a session</p>
@ -584,7 +584,7 @@ setup, but everything is saved automatically as long as you manage everything th
<p>If the program crashes you get a warning and can restart it.</p> <p>If the program crashes you get a warning and can restart it.</p>
</li> </li>
<li> <li>
<p>Audio and midi ports can now be connected together in a patchbay. The connections are stored in Argodejo.</p> <p>Audio and midi ports can now be connected together in a patchbay. The connections are stored in Agordejo.</p>
</li> </li>
<li> <li>
<p>To get more programs and advanced features you can switch to the tab "Full View</p> <p>To get more programs and advanced features you can switch to the tab "Full View</p>
@ -596,7 +596,7 @@ setup, but everything is saved automatically as long as you manage everything th
<p>If you are finished you can return to the session selection by pressing the button "Save and Close"</p> <p>If you are finished you can return to the session selection by pressing the button "Save and Close"</p>
</li> </li>
<li> <li>
<p>Now Argodejo could be closed itself.</p> <p>Now Agordejo could be closed itself.</p>
</li> </li>
<li> <li>
<p>All stored data is in a single directory on the hard disk (<code>~/NSM Sessions/My Song</code>)</p> <p>All stored data is in a single directory on the hard disk (<code>~/NSM Sessions/My Song</code>)</p>
@ -623,7 +623,7 @@ at least clicks).</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>For stability reasons, only programs are shown that are known to <p>For stability reasons, only programs are shown that are known to
work correctly with Argodejos session management.</p> work correctly with Agordejos session management.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>The Quick View is only a view. There is no technical difference to the full view and you can switch <p>The Quick View is only a view. There is no technical difference to the full view and you can switch
@ -720,11 +720,11 @@ just a view, your data remains untouched.</p>
rename a session, delete it (including all associated files on the hard disk!) and more. These rename a session, delete it (including all associated files on the hard disk!) and more. These
functions are equivalent to your file manager. If you like, you can also use your file manager to functions are equivalent to your file manager. If you like, you can also use your file manager to
rename, move, or delete the session directories themselves (unless they are is currently open). You rename, move, or delete the session directories themselves (unless they are is currently open). You
don&#8217;t need to restart Argodejo to do this, it will respond to the changes while running.</p> don&#8217;t need to restart Agordejo to do this, it will respond to the changes while running.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>There is also the possibility to remove a so-called "lock" file. This is a file which is created <p>There is also the possibility to remove a so-called "lock" file. This is a file which is created
when the session starts and deleted when it ends. This tells Argodejo which session is currently when the session starts and deleted when it ends. This tells Agordejo which session is currently
running. If a lock file exists, the session cannot be opened! This should not happen during normal running. If a lock file exists, the session cannot be opened! This should not happen during normal
operation. But if a power failure or similar occurs in the middle of a session, the lock file may operation. But if a power failure or similar occurs in the middle of a session, the lock file may
remain, although obviously no session is opened. In this case, unlock the session manually by remain, although obviously no session is opened. In this case, unlock the session manually by
@ -778,7 +778,7 @@ to hide its window if the program supports it. If not, nothing happens.</p>
<p>Ready, running</p> <p>Ready, running</p>
</li> </li>
<li> <li>
<p>Launch, If the status halts here but the programs works, it is one that does not specifically support session mode. Argodejo cannot know if it is already running or not. Everything is fine! :)</p> <p>Launch, If the status halts here but the programs works, it is one that does not specifically support session mode. Agordejo cannot know if it is already running or not. Everything is fine! :)</p>
</li> </li>
<li> <li>
<p>Other states are only transitions and usually only visible for a very short time, e.g. Open / Loading</p> <p>Other states are only transitions and usually only visible for a very short time, e.g. Open / Loading</p>
@ -844,7 +844,7 @@ lyrics, credits and sources from external Samples etc.</p>
<p>Add Client offers the option to add any program, whether it is in the program database or not.</p> <p>Add Client offers the option to add any program, whether it is in the program database or not.</p>
</li> </li>
<li> <li>
<p>Any installed programs are suggested. Argodejo doesn&#8217;t check them for usefulness for a music session, or even for runnability. You will find <code>ls</code> here as well as <code>argodejo</code> itself.</p> <p>Any installed programs are suggested. Agordejo doesn&#8217;t check them for usefulness for a music session, or even for runnability. You will find <code>ls</code> here as well as <code>agordejo</code> itself.</p>
</li> </li>
</ul> </ul>
</div> </div>
@ -856,8 +856,8 @@ lyrics, credits and sources from external Samples etc.</p>
<h2 id="_program_database">5. Program-Database</h2> <h2 id="_program_database">5. Program-Database</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Argodejos launcher is based on a program database, which is partly self-generated, partly <p>Agordejos launcher is based on a program database, which is partly self-generated, partly
maintained by hand. As in a start menu Argodejo will offer you only programs that are actually maintained by hand. As in a start menu Agordejo will offer you only programs that are actually
installed on your system.</p> installed on your system.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -867,7 +867,7 @@ a few minutes.</p>
<div class="paragraph"> <div class="paragraph">
<p>If you are reinstalling or uninstalling audio programs, you will need to update the database via <p>If you are reinstalling or uninstalling audio programs, you will need to update the database via
the command in the control menu. Program installations and system changes are even possible while the command in the control menu. Program installations and system changes are even possible while
Argodejo is running (even in a session). After a DB update you can immediately access all new Agordejo is running (even in a session). After a DB update you can immediately access all new
programs.</p> programs.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -902,11 +902,11 @@ search paths. One absolute directory path per line, no wildcards, trailing slash
<h2 id="_tray">6. Tray</h2> <h2 id="_tray">6. Tray</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Argodejo has a tray icon, if your window manager supports it. A click on the trayicon shows or <p>Agordejo has a tray icon, if your window manager supports it. A click on the trayicon shows or
hides Argodejo.</p> hides Agordejo.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>If you close Argodejo using the normal window manager function, such as a click on the [X], the <p>If you close Agordejo using the normal window manager function, such as a click on the [X], the
program and the session is not terminated, but minimized to the tray.</p> program and the session is not terminated, but minimized to the tray.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -919,7 +919,7 @@ program and the session is not terminated, but minimized to the tray.</p>
<p>If a session is already running you can save, cancel etc.</p> <p>If a session is already running you can save, cancel etc.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Argodejo can also be completely exited here.</p> <p>Agordejo can also be completely exited here.</p>
</div> </div>
</div> </div>
</div> </div>
@ -936,7 +936,7 @@ version.</p>
<h2 id="_program_parameters">8. Program parameters</h2> <h2 id="_program_parameters">8. Program parameters</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>As an advanced user, you can start Argodejo in the terminal and add some parameters.. For a <p>As an advanced user, you can start Agordejo in the terminal and add some parameters.. For a
complete list please use the --help parameter.</p> complete list please use the --help parameter.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -951,7 +951,7 @@ complete list please use the --help parameter.</p>
<p><code>--continue</code> starts the last active session.</p> <p><code>--continue</code> starts the last active session.</p>
</li> </li>
<li> <li>
<p><code>--hide</code> starts Argodejo as TrayIcon.</p> <p><code>--hide</code> starts Agordejo as TrayIcon.</p>
</li> </li>
<li> <li>
<p><code>--url osc.udp://myhost.localdomain:14294/</code> connects to this server, if available, or starts the internal session server at this address. This is a very technical option and probably not needed.</p> <p><code>--url osc.udp://myhost.localdomain:14294/</code> connects to this server, if available, or starts the internal session server at this address. This is a very technical option and probably not needed.</p>
@ -964,8 +964,8 @@ complete list please use the --help parameter.</p>
<div class="paragraph"> <div class="paragraph">
<p>The combination of <code>--continue</code> and <code>--hide</code> is essentially what many people expect from Session <p>The combination of <code>--continue</code> and <code>--hide</code> is essentially what many people expect from Session
Management: Resuming at the previous state, without any extra windows in their way. Management: Resuming at the previous state, without any extra windows in their way.
If your system uses a start menu you will find not only the normal Argodejo starter but also If your system uses a start menu you will find not only the normal Agordejo starter but also
"Argodejo Continue" to start this mode directly.</p> "Agordejo Continue" to start this mode directly.</p>
</div> </div>
</div> </div>
</div> </div>
@ -973,7 +973,7 @@ If your system uses a start menu you will find not only the normal Argodejo star
<h2 id="_miscellaneous_explanations_faq">9. Miscellaneous / Explanations / FAQ</h2> <h2 id="_miscellaneous_explanations_faq">9. Miscellaneous / Explanations / FAQ</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p><strong>Session Save and Exit responds slowly</strong>: Argodejo is not a standalone program like an word <p><strong>Session Save and Exit responds slowly</strong>: Agordejo is not a standalone program like an word
processor. The participating programs in the session are not plugins either. When you end the processor. The participating programs in the session are not plugins either. When you end the
session a signal is sent to all participating client to save. This may take a few moments where session a signal is sent to all participating client to save. This may take a few moments where
you are able to see "live" how individual programs terminate and disappear from the session. you are able to see "live" how individual programs terminate and disappear from the session.
@ -981,7 +981,7 @@ Everything is fine.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>I have added a program but it does not save with the session</strong>: Does the program support session <p><strong>I have added a program but it does not save with the session</strong>: Does the program support session
management? If not, Argodejo cannot do much. But you can ask the program developers to contact us management? If not, Agordejo cannot do much. But you can ask the program developers to contact us
(<a href="mailto:info@laborejo.org">info@laborejo.org</a>) and we can work together on support.</p> (<a href="mailto:info@laborejo.org">info@laborejo.org</a>) and we can work together on support.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -990,13 +990,13 @@ we are also interested in improving the situation by offering at least an emerge
future.</p> future.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>Argodejo won&#8217;t start! I start the program but I can&#8217;t see anything</strong>: Most likely Argodejo is <p><strong>Agordejo won&#8217;t start! I start the program but I can&#8217;t see anything</strong>: Most likely Agordejo is
running, but invisible, because you exited it from the tray last time. Is it in the tray? A running, but invisible, because you exited it from the tray last time. Is it in the tray? A
message should have popped up, maybe you missed it. If there is no tray in your window manager, the message should have popped up, maybe you missed it. If there is no tray in your window manager, the
program should always be visible. With all these special window managers in Linux it may be that program should always be visible. With all these special window managers in Linux it may be that
the tray detection did not work properly. Contingency plan is to delete the tray detection did not work properly. Contingency plan is to delete
<code>~/.config/LaborejoSoftwareSuite/argodejo</code>. This will NOT remove any sessions, but only local <code>~/.config/LaborejoSoftwareSuite/agordejo</code>. This will NOT remove any sessions, but only local
settings such as the visibility of the program window. At next start Argodejo will behave like the settings such as the visibility of the program window. At next start Agordejo will behave like the
very first start.</p> very first start.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -1010,7 +1010,7 @@ inevitable crashes).</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>A program update broke my session because it can no longer load its files.</strong> Unfortunately, this is <p><strong>A program update broke my session because it can no longer load its files.</strong> Unfortunately, this is
a problem that even Argodejo can&#8217;t solve. It also happens with LV2 plugins and with all other a problem that even Agordejo can&#8217;t solve. It also happens with LV2 plugins and with all other
software, such as office programs. If you fear that a program becomes incompatible in the future, software, such as office programs. If you fear that a program becomes incompatible in the future,
write down its version number in the session notes, so that you can at least, in an emergency, write down its version number in the session notes, so that you can at least, in an emergency,
reinstall the old program version (even if this is very is cumbersome).</p> reinstall the old program version (even if this is very is cumbersome).</p>
@ -1021,7 +1021,7 @@ management is worthwhile with two or more participating programs, which one need
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>You should not feel compelled to suddenly make everything modular with individual programs, only <p>You should not feel compelled to suddenly make everything modular with individual programs, only
because you use a session manager. Argodejo is designed to make your music production easier. If it because you use a session manager. Agordejo is designed to make your music production easier. If it
is faster and more comfortable to manage all plugins and effects e.g. in a single "Carla" instance is faster and more comfortable to manage all plugins and effects e.g. in a single "Carla" instance
then you should do exactly that. If you basically want to do everything in Ardour, do that, but then you should do exactly that. If you basically want to do everything in Ardour, do that, but
start Ardour anyway in session management, because no program can do everything alone and the time start Ardour anyway in session management, because no program can do everything alone and the time
@ -1040,7 +1040,7 @@ directly do music production, but still is connected in the grander scheme: Ope
(OBS), music player, word processors and graphic programs etc.</p> (OBS), music player, word processors and graphic programs etc.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>Argodejo contains functionality which is not within its scope</strong>: Music production is very complex <p><strong>Agordejo contains functionality which is not within its scope</strong>: Music production is very complex
and complexity is inevitable. It&#8217;s like a waterbed: if you press down on one side, something and complexity is inevitable. It&#8217;s like a waterbed: if you press down on one side, something
bounces up in another place. When you create a "clean and lean" program, which therefore implements bounces up in another place. When you create a "clean and lean" program, which therefore implements
only a part of the complete workflow, then the missing part pops up somewhere else. A minimalistic only a part of the complete workflow, then the missing part pops up somewhere else. A minimalistic
@ -1050,7 +1050,7 @@ session manager provokes plug-ins (not LV2), helper-scripts, workarounds and hac
<p>E.g. not to include file management provokes user errors like deleting the wrong files. If the SM <p>E.g. not to include file management provokes user errors like deleting the wrong files. If the SM
knows what to do and it can do it, then let it do it. Or crashes: Technically, crashing programs knows what to do and it can do it, then let it do it. Or crashes: Technically, crashing programs
are not the "problem" of the session managers, but they are part of the software reality. Crashes are not the "problem" of the session managers, but they are part of the software reality. Crashes
happen every day and need to be handled. Can Argodejo simplify the work and help to restore good happen every day and need to be handled. Can Agordejo simplify the work and help to restore good
conditions again? Then that should be done. Session management is also an opportunity to simplify conditions again? Then that should be done. Session management is also an opportunity to simplify
even complex technical scenarios, e.g. distributing sessions over the network.</p> even complex technical scenarios, e.g. distributing sessions over the network.</p>
</div> </div>
@ -1060,11 +1060,11 @@ even complex technical scenarios, e.g. distributing sessions over the network.</
<h2 id="_installation_and_start">10. Installation and Start</h2> <h2 id="_installation_and_start">10. Installation and Start</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Argodejo is exclusive for Linux. The best way to install is to use your package manager. <p>Agordejo is exclusive for Linux. The best way to install is to use your package manager.
If it is not there, or only in an outdated version, please ask your Linux distribution to provide a recent version.</p> If it is not there, or only in an outdated version, please ask your Linux distribution to provide a recent version.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>If not available in the package repository you can build Argodejo yourself.</p> <p>If not available in the package repository you can build Agordejo yourself.</p>
</div> </div>
<div class="ulist"> <div class="ulist">
<div class="title">Build and Install</div> <div class="title">Build and Install</div>
@ -1080,7 +1080,7 @@ If it is not there, or only in an outdated version, please ask your Linux distri
<p>Download the latest version from <a href="https://www.laborejo.org/downloads" class="bare">https://www.laborejo.org/downloads</a> and extract it.</p> <p>Download the latest version from <a href="https://www.laborejo.org/downloads" class="bare">https://www.laborejo.org/downloads</a> and extract it.</p>
</li> </li>
<li> <li>
<p>git clone <a href="https://git.laborejo.org/lss/argodejo.git" class="bare">https://git.laborejo.org/lss/argodejo.git</a></p> <p>git clone <a href="https://git.laborejo.org/lss/agordejo.git" class="bare">https://git.laborejo.org/lss/agordejo.git</a></p>
</li> </li>
</ul> </ul>
</div> </div>
@ -1107,10 +1107,10 @@ If it is not there, or only in an outdated version, please ask your Linux distri
</ul> </ul>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Now the program is available to run via your menu/launcher or <code>argodejo</code> in a terminal.</p> <p>Now the program is available to run via your menu/launcher or <code>agordejo</code> in a terminal.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Please read README.md for other ways of starting argodejo, which are impractical for actual use but can <p>Please read README.md for other ways of starting agordejo, which are impractical for actual use but can
be helpful for testing and development.</p> be helpful for testing and development.</p>
</div> </div>
</div> </div>
@ -1119,7 +1119,7 @@ be helpful for testing and development.</p>
<h2 id="_help_and_development">11. Help and Development</h2> <h2 id="_help_and_development">11. Help and Development</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>You can help Argodejo in several ways: Testing and reporting errors, translating, marketing, support, programming and more.</p> <p>You can help Agordejo in several ways: Testing and reporting errors, translating, marketing, support, programming and more.</p>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_testing_and_reporting_errors">11.1. Testing and Reporting Errors</h3> <h3 id="_testing_and_reporting_errors">11.1. Testing and Reporting Errors</h3>
@ -1155,7 +1155,7 @@ The short version is: clone the git, change the code, create a git patch or poin
<div class="sect2"> <div class="sect2">
<h3 id="_translations">11.3. Translations</h3> <h3 id="_translations">11.3. Translations</h3>
<div class="paragraph"> <div class="paragraph">
<p>Argodejo is very easy to translate with the help of the Qt-Toolchain, without any need for programming. <p>Agordejo is very easy to translate with the help of the Qt-Toolchain, without any need for programming.
The easiest way is to contact the developers and they will setup the new language.</p> The easiest way is to contact the developers and they will setup the new language.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -1204,7 +1204,7 @@ The easiest way is to contact the developers and they will setup the new languag
</ul> </ul>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>You can also incorporate the translation into Argodejo for testing purposes. This requires rudimentary Python knowledge.</p> <p>You can also incorporate the translation into Agordejo for testing purposes. This requires rudimentary Python knowledge.</p>
</div> </div>
<div class="ulist"> <div class="ulist">
<ul> <ul>
@ -1233,12 +1233,12 @@ The easiest way is to contact the developers and they will setup the new languag
</ul> </ul>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>To test the new translation you can either run the program normally, if your system is set to that language. Alternatively start argodejo via the terminal:</p> <p>To test the new translation you can either run the program normally, if your system is set to that language. Alternatively start agordejo via the terminal:</p>
</div> </div>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
<p><code>LANGUAGE=de_DE.UTF-8 ./argodejo -V --save /dev/null</code></p> <p><code>LANGUAGE=de_DE.UTF-8 ./agordejo -V --save /dev/null</code></p>
</li> </li>
</ul> </ul>
</div> </div>

84
documentation/out/german.html

@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10"> <meta name="generator" content="Asciidoctor 2.0.10">
<meta name="author" content="Laborejo Software Suite"> <meta name="author" content="Laborejo Software Suite">
<title>Argodejo</title> <title>Agordejo</title>
<style> <style>
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */ /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment @import statement to use as custom stylesheet */ /* Uncomment @import statement to use as custom stylesheet */
@ -438,7 +438,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</head> </head>
<body class="article toc2 toc-left"> <body class="article toc2 toc-left">
<div id="header"> <div id="header">
<h1>Argodejo</h1> <h1>Agordejo</h1>
<div class="details"> <div class="details">
<span id="author" class="author">Laborejo Software Suite</span><br> <span id="author" class="author">Laborejo Software Suite</span><br>
</div> </div>
@ -528,20 +528,20 @@ Echtzeit teilen, verfügen über synchronisierte Timelines und spielen im gleich
<div class="paragraph"> <div class="paragraph">
<p>Was übrig bleibt ist die leidige Arbeit jedesmal alle Programme zu starten, die Projektdateien zu <p>Was übrig bleibt ist die leidige Arbeit jedesmal alle Programme zu starten, die Projektdateien zu
laden, alle Audiokanäle zu verbinden usw. Session Management im allgemeinen (z.B. extra laden, alle Audiokanäle zu verbinden usw. Session Management im allgemeinen (z.B. extra
geschriebene Starter-Scriptdateien) und Argodejo im speziellen nehmen Ihnen diese Arbeit ab, oder geschriebene Starter-Scriptdateien) und Agordejo im speziellen nehmen Ihnen diese Arbeit ab, oder
vereinfachen sie zumindest stark.</p> vereinfachen sie zumindest stark.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Im Gegensatz zum erwähnten selbstgeschriebenen Script müssen Sie sich nicht im Vorraus für ein <p>Im Gegensatz zum erwähnten selbstgeschriebenen Script müssen Sie sich nicht im Vorraus für ein
Setup entscheiden, sondern alles wird automatisch verwaltet, solange Sie alles durch den Session Setup entscheiden, sondern alles wird automatisch verwaltet, solange Sie alles durch den Session
Manager Argodejo starten.</p> Manager Agordejo starten.</p>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_anwendungsbeispiel">1.1. Anwendungsbeispiel</h3> <h3 id="_anwendungsbeispiel">1.1. Anwendungsbeispiel</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
<p>Argodejo starten (Startmenü, Terminal etc.)</p> <p>Agordejo starten (Startmenü, Terminal etc.)</p>
</li> </li>
<li> <li>
<p>Man befindet sich nun in der "Schnellen Ansicht" um eine Session zu starten</p> <p>Man befindet sich nun in der "Schnellen Ansicht" um eine Session zu starten</p>
@ -562,7 +562,7 @@ Manager Argodejo starten.</p>
<p>Sollte das Programm abstürzen bekommt man das signalisiert und kann es neustarten.</p> <p>Sollte das Programm abstürzen bekommt man das signalisiert und kann es neustarten.</p>
</li> </li>
<li> <li>
<p>Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Argodejo gespeichert.</p> <p>Audio- und Midiports können nun in einer Patchbay miteinander verbunden werden. Die Verbindungen werden in Agordejo gespeichert.</p>
</li> </li>
<li> <li>
<p>Um andere Programme und erweiterte Funktionen zu bekommen kann man in den Tab "Volle Ansicht" wechseln</p> <p>Um andere Programme und erweiterte Funktionen zu bekommen kann man in den Tab "Volle Ansicht" wechseln</p>
@ -574,7 +574,7 @@ Manager Argodejo starten.</p>
<p>Ist man soweit fertig kommt man durch den Knopf "Speichern und Schließen" wieder in die Sessionauswahl zurück</p> <p>Ist man soweit fertig kommt man durch den Knopf "Speichern und Schließen" wieder in die Sessionauswahl zurück</p>
</li> </li>
<li> <li>
<p>Nun könnte Argodejo geschlossen werden.</p> <p>Nun könnte Agordejo geschlossen werden.</p>
</li> </li>
<li> <li>
<p>Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (<code>~/NSM Sessions/Mein Lied</code>)</p> <p>Alle gespeicherten Daten liegen in einem einzigen Verzeichnis auf der Festplatte (<code>~/NSM Sessions/Mein Lied</code>)</p>
@ -602,7 +602,7 @@ eine alte Session starten oder eine neue erstellen können.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Aus Stabilitätsgründen werden nur Programme zum Starten angeboten, von denen bekannt ist, dass Sie <p>Aus Stabilitätsgründen werden nur Programme zum Starten angeboten, von denen bekannt ist, dass Sie
korrekt mit dem Session Management Argodejos zusammenarbeiten.</p> korrekt mit dem Session Management Agordejos zusammenarbeiten.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Die Schnelle Ansicht ist lediglich eine Ansicht. Es besteht kein technischer Unterschied zur vollen <p>Die Schnelle Ansicht ist lediglich eine Ansicht. Es besteht kein technischer Unterschied zur vollen
@ -702,7 +702,7 @@ sortieren zu können. Das ist nur eine Ansicht, ihre Daten bleiben unangetastet.
eine Session umbennen, löschen (inkl. aller dazugehörigen Dateien auf der Festplatte!) und mehr. eine Session umbennen, löschen (inkl. aller dazugehörigen Dateien auf der Festplatte!) und mehr.
Diese Funktionen sind gleichwertig zu ihrem Dateimanager. Falls Sie möchten, können Sie auch Diese Funktionen sind gleichwertig zu ihrem Dateimanager. Falls Sie möchten, können Sie auch
einfach die Sessionverzeichnisse selbst umbennen, verschieben oder löschen (sofern diese nicht einfach die Sessionverzeichnisse selbst umbennen, verschieben oder löschen (sofern diese nicht
gerade geöffnet ist). Dazu muss Argodejo nicht neugestartet werden, es reagiert selbst auf die gerade geöffnet ist). Dazu muss Agordejo nicht neugestartet werden, es reagiert selbst auf die
Änderungen.</p> Änderungen.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -762,7 +762,7 @@ um, sofern das Programm unterstüzt sein Fenster zu verstecken. Falls nicht pass
<p>Ready / Läuft und Bereit</p> <p>Ready / Läuft und Bereit</p>
</li> </li>
<li> <li>
<p>Launch / Startet. Wenn das Programm hier stehen bleibt, aber funktioniert, handelt es sich um eins, dass nicht speziell den Sessionmodus unterstützt. Argodejo kann nicht wissen, ob es bereits läuft oder nicht. Alles ist in Ordnung! :)</p> <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>
</li> </li>
<li> <li>
<p>Weitere Zustände sind nur Übergänge und meist nur sehr kurz zu sehen, z.B. Open / Läd gerade</p> <p>Weitere Zustände sind nur Übergänge und meist nur sehr kurz zu sehen, z.B. Open / Läd gerade</p>
@ -830,7 +830,7 @@ Samples etc.</p>
<p>Client Hinzufügen bietet die Option ein beliebiges Programm hinzuzufügen, egal ob es in der Programmdatenbank ist, oder nicht.</p> <p>Client Hinzufügen bietet die Option ein beliebiges Programm hinzuzufügen, egal ob es in der Programmdatenbank ist, oder nicht.</p>
</li> </li>
<li> <li>
<p>Es werden alle installierten Programme vorgeschlagen. Argodejo ü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>argodejo</code> selbst.</p> <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>
</li> </li>
</ul> </ul>
</div> </div>
@ -842,9 +842,9 @@ Samples etc.</p>
<h2 id="_programm_datenbank">4. Programm-Datenbank</h2> <h2 id="_programm_datenbank">4. Programm-Datenbank</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Argodejos Programmstarter basiert auf einer Programmdatenbank, die sich teilweise selbst erstellt, <p>Agordejos Programmstarter basiert auf einer Programmdatenbank, die sich teilweise selbst erstellt,
teilweise von Hand eingepflegt wurde. Das bedeutet nichts anderes, als das alle installieren teilweise von Hand eingepflegt wurde. Das bedeutet nichts anderes, als das alle installieren
Programme in ihrem System überprüft werden (wie ein Startmenü) und Ihnen im Argodejo-Starter nur Programme in ihrem System überprüft werden (wie ein Startmenü) und Ihnen im Agordejo-Starter nur
das angeboten wird, was Sie auch tatsächlich installiert haben.</p> das angeboten wird, was Sie auch tatsächlich installiert haben.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -854,7 +854,7 @@ Augenblicke bis einige Minuten dauern.</p>
<div class="paragraph"> <div class="paragraph">
<p>Wenn Sie Audio-Programme neu installieren, oder deinstallieren müssen Sie die Datenbank selbst <p>Wenn Sie Audio-Programme neu installieren, oder deinstallieren müssen Sie die Datenbank selbst
aktualisieren. Im Steuerungsmenü gibt es den Befehl. Programminstallationen sind sogar möglich aktualisieren. Im Steuerungsmenü gibt es den Befehl. Programminstallationen sind sogar möglich
während Argodejo läuft (auch in einer Session). Nach einem DB-Update stehen Ihnen sofort alle während Agordejo läuft (auch in einer Session). Nach einem DB-Update stehen Ihnen sofort alle
neuen Programme zur Verfügung.</p> neuen Programme zur Verfügung.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -893,11 +893,11 @@ Verzeichnis.</p>
<h2 id="_tray">5. Tray</h2> <h2 id="_tray">5. Tray</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Argodejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das <p>Agordejo verfügt über ein Tray-Icon, sofern ihr Windowmanager das unterstüzt. Ein Klick auf das
Trayicon zeigt oder versteckt Argodejo.</p> Trayicon zeigt oder versteckt Agordejo.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Schließt man Argodejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das <p>Schließt man Agordejo über die normale Windowmanagerfunktion, etwa ein Klick auf das [X], wird das
Programm und die Session nicht beendet, sondern in den Tray minimiert.</p> Programm und die Session nicht beendet, sondern in den Tray minimiert.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -910,7 +910,7 @@ Programm und die Session nicht beendet, sondern in den Tray minimiert.</p>
<p>Läuft bereits eine Session können Sie speichern, abbrechen etc.</p> <p>Läuft bereits eine Session können Sie speichern, abbrechen etc.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Argodejo kann hier auch komplett beendet werden.</p> <p>Agordejo kann hier auch komplett beendet werden.</p>
</div> </div>
</div> </div>
</div> </div>
@ -927,7 +927,7 @@ vorgesehen.</p>
<h2 id="_programmparameter">7. Programmparameter</h2> <h2 id="_programmparameter">7. Programmparameter</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Als fortgeschrittener Benutzer können Sie Argodejo im Terminal starten und dort einige Parameter <p>Als fortgeschrittener Benutzer können Sie Agordejo im Terminal starten und dort einige Parameter
angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.</p> angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -942,7 +942,7 @@ angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.<
<p><code>--continue</code> startet die zuletzt benutzte Session</p> <p><code>--continue</code> startet die zuletzt benutzte Session</p>
</li> </li>
<li> <li>
<p><code>--hide</code> startet Argodejo als Trayicon.</p> <p><code>--hide</code> startet Agordejo als Trayicon.</p>
</li> </li>
<li> <li>
<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> <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>
@ -955,8 +955,8 @@ angeben. Für eine vollständige Liste benutzen Sie bitte den --help Parameter.<
<div class="paragraph"> <div class="paragraph">
<p>Die Kombination von <code>--continue</code> und <code>--hide</code> ergibt einen Modus, den viele Leute vom Session Management <p>Die Kombination von <code>--continue</code> und <code>--hide</code> ergibt einen Modus, den viele Leute vom Session Management
erwarten: dort weiter machen wo man aufgehört hat, ohne dass Extrafenster angezeigt werden. erwarten: dort weiter machen wo man aufgehört hat, ohne dass Extrafenster angezeigt werden.
Falls Ihr System über ein Startmenü verfügt finden Sie daher neben dem normalen Argodejo-Starter Falls Ihr System über ein Startmenü verfügt finden Sie daher neben dem normalen Agordejo-Starter
auch eine "Argodejo Continue"-Verknüpfung für genau diesen Modus.</p> auch eine "Agordejo Continue"-Verknüpfung für genau diesen Modus.</p>
</div> </div>
</div> </div>
</div> </div>
@ -964,7 +964,7 @@ auch eine "Argodejo Continue"-Verknüpfung für genau diesen Modus.</p>
<h2 id="_verschiedenes_erklärungen_faq">8. Verschiedenes / Erklärungen / FAQ</h2> <h2 id="_verschiedenes_erklärungen_faq">8. Verschiedenes / Erklärungen / FAQ</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p><strong>Session Speichern und Beenden reagiert langsam</strong>: Argodejo ist kein Einzelprogramm wie ein <p><strong>Session Speichern und Beenden reagiert langsam</strong>: Agordejo ist kein Einzelprogramm wie ein
Office-Writer. Die teilnehmenden Programme in der Session sind auch keine Plugins. Wenn Sie die Office-Writer. Die teilnehmenden Programme in der Session sind auch keine Plugins. Wenn Sie die
Session beenden wird ein Signal an alle teilnehmenden Programme gesendet, dass sie speichern Session beenden wird ein Signal an alle teilnehmenden Programme gesendet, dass sie speichern
sollen. Das kann ein paar Momente dauern, in denen Sie "live" mitverfolgen, wie die einzelnen sollen. Das kann ein paar Momente dauern, in denen Sie "live" mitverfolgen, wie die einzelnen
@ -972,7 +972,7 @@ Programme sich beenden und aus der Session verschwinden. Es ist alles in Ordnung
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>Ich habe ein Programm hinzugefügt aber es speichert nicht mit der Session</strong>: <p><strong>Ich habe ein Programm hinzugefügt aber es speichert nicht mit der Session</strong>:
Unterstützt das Programm Session Management? Wenn nicht, kann Argodejo nichts tun. Unterstützt das Programm Session Management? Wenn nicht, kann Agordejo nichts tun.
Aber Sie können die Programmentwickler bitten mit uns Kontakt aufzunehmen (<a href="mailto:info@laborejo.org">info@laborejo.org</a>) Aber Sie können die Programmentwickler bitten mit uns Kontakt aufzunehmen (<a href="mailto:info@laborejo.org">info@laborejo.org</a>)
und wir können zusammen an der Unterstützung arbeiten.</p> und wir können zusammen an der Unterstützung arbeiten.</p>
</div> </div>
@ -982,14 +982,14 @@ Das tut uns leid. Eigentlich sind die Programme selbst schuld, aber auch wir sin
interessiert die Situation zu verbessen, indem wir in Zukunft zumindest eine Notlösung anbieten.</p> interessiert die Situation zu verbessen, indem wir in Zukunft zumindest eine Notlösung anbieten.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>Argodejo startet nicht mehr! Ich starte das Programm aber ich sehe nichts.</strong>: Wahrscheinlich ist <p><strong>Agordejo startet nicht mehr! Ich starte das Programm aber ich sehe nichts.</strong>: Wahrscheinlich ist
Argodejo unsichtbar, weil Sie es aus dem Tray heraus beendet hatten. Ist es im Tray? Eigentlich Agordejo unsichtbar, weil Sie es aus dem Tray heraus beendet hatten. Ist es im Tray? Eigentlich
hätte ein kleines Nachrichtenfenster aufpoppen sollen. Falls in ihrem Window-Manager kein Tray hätte ein kleines Nachrichtenfenster aufpoppen sollen. Falls in ihrem Window-Manager kein Tray
vorhanden ist sollte das Programm immer sichtbar sein. Bei besonderen Window-Managern (bei der vorhanden ist sollte das Programm immer sichtbar sein. Bei besonderen Window-Managern (bei der
großen Auswahl in Linux) kann es sein, dass die Tray-Erkennung nicht richtig funktioniert hat. großen Auswahl in Linux) kann es sein, dass die Tray-Erkennung nicht richtig funktioniert hat.
Notfallplan ist es <code>~/.config/LaborejoSoftwareSuite/argodejo</code> zu löschen. Dabei werden KEINE Notfallplan ist es <code>~/.config/LaborejoSoftwareSuite/agordejo</code> zu löschen. Dabei werden KEINE
Sessions gelöscht, sondern nur lokale Einstellungen wie die Sichtbarkeit des Programmfensters. Beim Sessions gelöscht, sondern nur lokale Einstellungen wie die Sichtbarkeit des Programmfensters. Beim
nächsten Start wird Argodejo sich verhalten wie beim allerersten.</p> nächsten Start wird Agordejo sich verhalten wie beim allerersten.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>JACK ist abgestürzt. Viele Programme hängen. Was tun um Datenverlust zu vermeiden?</strong>: <p><strong>JACK ist abgestürzt. Viele Programme hängen. Was tun um Datenverlust zu vermeiden?</strong>:
@ -1002,7 +1002,7 @@ manuell im Dateimanager eine Kopie des Session-Verzeichnisses machen.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>Ein Programmupdate hat meine Session kaputtgemacht, weil es seine Dateien nicht mehr laden kann.</strong>: <p><strong>Ein Programmupdate hat meine Session kaputtgemacht, weil es seine Dateien nicht mehr laden kann.</strong>:
Das ist leider ein Problem, dass auch Argodejo nicht lösen kann. Es passiert mit LV2-Plugins ebenso Das ist leider ein Problem, dass auch Agordejo nicht lösen kann. Es passiert mit LV2-Plugins ebenso
wie mit alle anderen Software, etwa Officeprogramme. Falls Sie befürchten, dass ein Programm in wie mit alle anderen Software, etwa Officeprogramme. Falls Sie befürchten, dass ein Programm in
Zukunft inkompatibel wird notieren Sie sich dessen Versionsnummer in den Session-Notizen, damit Sie Zukunft inkompatibel wird notieren Sie sich dessen Versionsnummer in den Session-Notizen, damit Sie
zumindest zur Not die alte Programmversion wieder installieren können (auch wenn das sehr zumindest zur Not die alte Programmversion wieder installieren können (auch wenn das sehr
@ -1017,7 +1017,7 @@ immer.</p>
<div class="paragraph"> <div class="paragraph">
<p>Sie sollten sich nicht genötigt fühlen plötzlich alles modular mit Einzelprogrammen zu machen, nur <p>Sie sollten sich nicht genötigt fühlen plötzlich alles modular mit Einzelprogrammen zu machen, nur
weil Sie einen Session Manager benutzen. weil Sie einen Session Manager benutzen.
Argodejo ist dafür da, ihre Musikproduktion einfacher zu machen. Wenn es schneller und bequemer ist Agordejo ist dafür da, ihre Musikproduktion einfacher zu machen. Wenn es schneller und bequemer ist
alle Plugins und Effekte z.B. in einer einzelnen Carla-Instanz zu verwalten dann sollten Sie genau alle Plugins und Effekte z.B. in einer einzelnen Carla-Instanz zu verwalten dann sollten Sie genau
das machen. das machen.
Wenn Sie prinzipiell alles in Ardour machen wollen, machen Sie das, aber starten Sie Ardour trotzdem Wenn Sie prinzipiell alles in Ardour machen wollen, machen Sie das, aber starten Sie Ardour trotzdem
@ -1038,7 +1038,7 @@ aber trotzdem inhaltlich dazu gehört: Open Broadcast Studio (OBS), Musikplayer,
und Grafikprogramme etc.</p> und Grafikprogramme etc.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p><strong>Argodejo beinhaltet Funktionalität, die nicht seine Aufgabe ist</strong>: Musikproduktion ist sehr komplex <p><strong>Agordejo beinhaltet Funktionalität, die nicht seine Aufgabe ist</strong>: Musikproduktion ist sehr komplex
und Komplexität ist unvermeidlich. Sie ist wie ein Wasserbett: Drückt man die auf der einen Seite und Komplexität ist unvermeidlich. Sie ist wie ein Wasserbett: Drückt man die auf der einen Seite
runter, muss etwas an einen anderen Stelle hochdrücken. Macht man ein programm "clean and lean", runter, muss etwas an einen anderen Stelle hochdrücken. Macht man ein programm "clean and lean",
und implementiert damit nur einen Teil des kompletten Arbeitsablaufs, dann kommt der fehlende Teil und implementiert damit nur einen Teil des kompletten Arbeitsablaufs, dann kommt der fehlende Teil
@ -1050,7 +1050,7 @@ ist, und er es tun kann, dann soll er es machen.</p>
<div class="paragraph"> <div class="paragraph">
<p>Oder Abstürze: Technisch gesehen sind abstürzende Programme nicht das "Problem" des Session <p>Oder Abstürze: Technisch gesehen sind abstürzende Programme nicht das "Problem" des Session
Managers, aber sie sind Teil der Softwarewirklichkeit. Abstürze passieren jeden Tag und nun muss Managers, aber sie sind Teil der Softwarewirklichkeit. Abstürze passieren jeden Tag und nun muss
man damit umgehen. Kann Argodejo die Arbeit vereinfachen und helfen den guten Zustand wieder man damit umgehen. Kann Agordejo die Arbeit vereinfachen und helfen den guten Zustand wieder
herzustellen? Dann sollte das geschehen.</p> herzustellen? Dann sollte das geschehen.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -1063,12 +1063,12 @@ Sessions über das Netzwerk zu verteilen.</p>
<h2 id="_installation_und_start">9. Installation und Start</h2> <h2 id="_installation_und_start">9. Installation und Start</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Argodejo ist exklusiv für Linux. Am besten installieren Sie Argodejo über deinen Paketmanager. <p>Agordejo ist exklusiv für Linux. Am besten installieren Sie Agordejo über deinen Paketmanager.
Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre Falls es dort nicht vorhanden ist, oder nur in einer veralteten Version, bitten sie ihre
Linuxdistribution Argodejo bereitzustellen.</p> Linuxdistribution Agordejo bereitzustellen.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Falls nicht in den Paketquellen vorhanden kann man Argodejo auch selbst "bauen".</p> <p>Falls nicht in den Paketquellen vorhanden kann man Agordejo auch selbst "bauen".</p>
</div> </div>
<div class="ulist"> <div class="ulist">
<div class="title">Abhängigkeiten*</div> <div class="title">Abhängigkeiten*</div>
@ -1084,7 +1084,7 @@ Linuxdistribution Argodejo bereitzustellen.</p>
<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> <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>
<li> <li>
<p><code>git clone <a href="https://git.laborejo.org/lss/argodejo.git" class="bare">https://git.laborejo.org/lss/argodejo.git</a></code></p> <p><code>git clone <a href="https://git.laborejo.org/lss/agordejo.git" class="bare">https://git.laborejo.org/lss/agordejo.git</a></code></p>
</li> </li>
</ul> </ul>
</div> </div>
@ -1109,10 +1109,10 @@ Linuxdistribution Argodejo bereitzustellen.</p>
</ul> </ul>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>Nun ist das Programm durch <code>argodejo</code> in ihrem Terminal oder Programmstarter vorhanden.</p> <p>Nun ist das Programm durch <code>agordejo</code> in ihrem Terminal oder Programmstarter vorhanden.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
<p>In der Datei README.md befinden sich weitere Möglichkeiten argodejo zu starten. Diese sind zum <p>In der Datei README.md befinden sich weitere Möglichkeiten agordejo zu starten. Diese sind zum
Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.</p> Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.</p>
</div> </div>
</div> </div>
@ -1121,7 +1121,7 @@ Musikmachen nicht praktikabel, aber nützlich für Tests und Entwicklung.</p>
<h2 id="_helfen_und_entwicklung">10. Helfen und Entwicklung</h2> <h2 id="_helfen_und_entwicklung">10. Helfen und Entwicklung</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="paragraph"> <div class="paragraph">
<p>Sie können Argodejo auf viele Arten und Weisen helfen: Testen und Fehler melden, übersetzen, marketing, <p>Sie können Agordejo auf viele Arten und Weisen helfen: Testen und Fehler melden, übersetzen, marketing,
anderen Nutzern helfen und schließlich programmieren.</p> anderen Nutzern helfen und schließlich programmieren.</p>
</div> </div>
<div class="sect2"> <div class="sect2">
@ -1160,7 +1160,7 @@ Kurzversion: clone git, programmieren, einen git-patch erstellen oder uns eine g
<div class="sect2"> <div class="sect2">
<h3 id="_übersetzungen">11.1. Übersetzungen</h3> <h3 id="_übersetzungen">11.1. Übersetzungen</h3>
<div class="paragraph"> <div class="paragraph">
<p>Argodejo ist mit Hilfe der Qt-Toolchain sehr einfach zu übersetzen, ohne, dass man dafür Programmieren muss. <p>Agordejo 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> Die einfachste Variante ist es einfach die Entwickler anzusprechen und sie werden die neue Sprache einrichten.</p>
</div> </div>
<div class="paragraph"> <div class="paragraph">
@ -1239,12 +1239,12 @@ Python Kentnisse nötig.</p>
<div class="paragraph"> <div class="paragraph">
<p>Um die neue Übersetzung zu testen starten Sie das Programm, falls ihr System bereits auf diese <p>Um die neue Übersetzung zu testen starten Sie das Programm, falls ihr System bereits auf diese
Sprache eingstellt ist. Sprache eingstellt ist.
Ansonsten starten Sie argodejo mit diesem Befehl, Sprachcode ändern, vom Terminal aus:</p> Ansonsten starten Sie agordejo mit diesem Befehl, Sprachcode ändern, vom Terminal aus:</p>
</div> </div>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
<p><code>LANGUAGE=de_DE.UTF-8 ./argodejo -V</code></p> <p><code>LANGUAGE=de_DE.UTF-8 ./agordejo -V</code></p>
</li> </li>
</ul> </ul>
</div> </div>

4
documentation/out/index.html

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10"> <meta name="generator" content="Asciidoctor 2.0.10">
<title>Argodejo Multi-Language Documentation</title> <title>Agordejo Multi-Language Documentation</title>
<style> <style>
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */ /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment @import statement to use as custom stylesheet */ /* Uncomment @import statement to use as custom stylesheet */
@ -440,7 +440,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div> </div>
<div id="content"> <div id="content">
<div class="sect1"> <div class="sect1">
<h2 id="_argodejo_multi_language_documentation">Argodejo Multi-Language Documentation</h2> <h2 id="_agordejo_multi_language_documentation">Agordejo Multi-Language Documentation</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="imageblock"> <div class="imageblock">
<div class="content"> <div class="content">

2
engine/api.py

@ -337,7 +337,7 @@ def clientShowAll():
nsmServerControl.allClientsShow() nsmServerControl.allClientsShow()
def clientNameOverride(clientId:str, name:str): def clientNameOverride(clientId:str, name:str):
"""An argodejo-specific function that requires the client nsm-data in the session. """An agordejo-specific function that requires the client nsm-data in the session.
If nsm-data is not present this function will write nothing, not touch any data. If nsm-data is not present this function will write nothing, not touch any data.
It will still send a callback to revert any GUI changes back to the original name. It will still send a callback to revert any GUI changes back to the original name.

12
engine/config.py

@ -7,7 +7,7 @@ METADATA={
#The pretty name of this program. Used for NSM display and Jack client name #The pretty name of this program. Used for NSM display and Jack client name
#Can contain everything a linux file/path supports. Never change this or it will break the #Can contain everything a linux file/path supports. Never change this or it will break the
#session, making your file unable to load and destroying saved Jack connections. #session, making your file unable to load and destroying saved Jack connections.
"name" : "Argodejo", "name" : "Agordejo",
#Set this to the name the user types into a terminal. #Set this to the name the user types into a terminal.
#MUST be the same as the binary name as well as the name in configure. #MUST be the same as the binary name as well as the name in configure.
@ -15,7 +15,7 @@ METADATA={
#Should not contain spaces or special characters. We use this as save file extension as well #Should not contain spaces or special characters. We use this as save file extension as well
#to distinguish between compatible program versions. In basic programs this will just be e.g. #to distinguish between compatible program versions. In basic programs this will just be e.g.
#patroneo. But in complex programs with a bright future it will be "laborejo1" "laborejo2" etc. #patroneo. But in complex programs with a bright future it will be "laborejo1" "laborejo2" etc.
"shortName" : "argodejo", "shortName" : "agordejo",
#A very short description used in various places: Desktop file, overview on the website, #A very short description used in various places: Desktop file, overview on the website,
#release announcements, entries in software directories etc. #release announcements, entries in software directories etc.
@ -24,7 +24,7 @@ METADATA={
"version" : "0.1", "version" : "0.1",
"year" : "2020", "year" : "2020",
"author" : "Laborejo Software Suite", "author" : "Laborejo Software Suite",
"url" : "https://www.laborejo.org/argodejo", "url" : "https://www.laborejo.org/agordejo",
#English is automatic. #English is automatic.
"supportedLanguages" : {"German":"de.qm"}, "supportedLanguages" : {"German":"de.qm"},
@ -40,14 +40,14 @@ METADATA={
#Various strings for the README #Various strings for the README
#Extra whitespace will be stripped so we don't need to worry about docstring indentation #Extra whitespace will be stripped so we don't need to worry about docstring indentation
"description" : """ "description" : """
Argodejo (Esperanto: 'place to set things up') is a music production session manager. Agordejo (Esperanto: 'place to set things up') is a music production session manager.
It is used to start your programs, remember their (JACK) interconnections and make your life easier It is used to start your programs, remember their (JACK) interconnections and make your life easier
in general. in general.
""" + "\n" + """ """ + "\n" + """
You can seamlessly change between two view modes to quickly start a few programs or have complete You can seamlessly change between two view modes to quickly start a few programs or have complete
control and a detailed overview. control and a detailed overview.
""" + "\n" + """ """ + "\n" + """
Argodejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances Agordejo does not re-invent the wheel but instead uses the New-Session-Manager daemon and enhances
it with some tricks of its own, that always remain 100% compatible with the original sessions. it with some tricks of its own, that always remain 100% compatible with the original sessions.
""" + "\n" + """ """ + "\n" + """
This is a proof of concept version. It aims to show that session management with NSM can be quick This is a proof of concept version. It aims to show that session management with NSM can be quick
@ -55,7 +55,7 @@ and convenient and make the user feel in control. Some functionality has not yet
implemented, most prominently anything related to NSM over network. There is always the possibility to implemented, most prominently anything related to NSM over network. There is always the possibility to
break things when trying out corner cases and hacks. break things when trying out corner cases and hacks.
""" + "\n" + """ """ + "\n" + """
That said, for single-computer sessions with just one daemon and one GUI at the same time Argodejo That said, for single-computer sessions with just one daemon and one GUI at the same time Agordejo
should provide a good user experience. should provide a good user experience.
""", #this is the dict-comma. """, #this is the dict-comma.

32
engine/findprograms.py

@ -34,8 +34,8 @@ def nothing(*args): pass
class SupportedProgramsDatabase(object): class SupportedProgramsDatabase(object):
"""Find all binaries with NSM support. Resources are: """Find all binaries with NSM support. Resources are:
* Argodejo internal program list of known working programs. * Agordejo internal program list of known working programs.
* Internal blacklist of known redundant programs (such as non-daw) or nonsense entries, like Argodejo itself * Internal blacklist of known redundant programs (such as non-daw) or nonsense entries, like Agordejo itself
* A search through the users path to find stray programs that contain NSM announce messages * A search through the users path to find stray programs that contain NSM announce messages
* Finally, local to a users system: User whitelist for any program, user blacklist. * Finally, local to a users system: User whitelist for any program, user blacklist.
Those two have the highest priority. Those two have the highest priority.
@ -59,8 +59,8 @@ class SupportedProgramsDatabase(object):
missing data. missing data.
We add two keys ourselves: We add two keys ourselves:
"argodejoExec" : this is the one we will send to nsmd. "agordejoExec" : this is the one we will send to nsmd.
"argodejoIconPath" : absolute path as str if we found an icon, so that a GUI does need to search on its own "agordejoIconPath" : absolute path as str if we found an icon, so that a GUI does need to search on its own
""" """
def __init__(self): def __init__(self):
@ -68,7 +68,7 @@ class SupportedProgramsDatabase(object):
self.grepexcluded = (pathlib.Path(PATHS["share"], "grepexcluded.txt")) #created by hand. see docstring self.grepexcluded = (pathlib.Path(PATHS["share"], "grepexcluded.txt")) #created by hand. see docstring
#assert self.grepexcluded.exists() #assert self.grepexcluded.exists()
self.blacklist = ("nsmd", "non-daw", "carla", "argodejo", "adljack", "argodejo.bin") #only programs that have to do with audio and music. There is another general blacklist that speeds up discovery self.blacklist = ("nsmd", "non-daw", "carla", "agordejo", "adljack", "agordejo.bin") #only programs that have to do with audio and music. There is another general blacklist that speeds up discovery
self.whiteList = ("thisdoesnotexisttest", "patroneo", "vico", self.whiteList = ("thisdoesnotexisttest", "patroneo", "vico",
"fluajho", "carla-rack", "carla-patchbay", "carla-jack-multi", "carla-jack-single", "fluajho", "carla-rack", "carla-patchbay", "carla-jack-multi", "carla-jack-single",
"ardour5", "ardour6", "nsm-data", "jackpatch", "nsm-proxy", "ADLplug", "ams", "ardour5", "ardour6", "nsm-data", "jackpatch", "nsm-proxy", "ADLplug", "ams",
@ -89,7 +89,7 @@ class SupportedProgramsDatabase(object):
"amsynth" : "amsynth.desktop", "amsynth" : "amsynth.desktop",
} }
self._reverseKnownDesktopFiles = dict(zip(self.knownDesktopFiles.values(),self.knownDesktopFiles.keys())) #to lookup the exe by desktoip name self._reverseKnownDesktopFiles = dict(zip(self.knownDesktopFiles.values(),self.knownDesktopFiles.keys())) #to lookup the exe by desktoip name
self.programs = [] #list of dicts. guaranteed keys: argodejoExec, name, argodejoFullPath. And probably others, like description and version. self.programs = [] #list of dicts. guaranteed keys: agordejoExec, name, agordejoFullPath. And probably others, like description and version.
self.nsmExecutables = set() #set of executables for fast membership, if a GUI wants to know if they are available. Needs to be build "manually" with self.programs. no auto-property for a list. at least we don't want to do the work. self.nsmExecutables = set() #set of executables for fast membership, if a GUI wants to know if they are available. Needs to be build "manually" with self.programs. no auto-property for a list. at least we don't want to do the work.
#.build needs to be called from the api/GUI. #.build needs to be called from the api/GUI.
#self.unfilteredExecutables = self.buildCache_unfilteredExecutables() #This doesn't take too long. we can start that every time. It will get updated in build as well. #self.unfilteredExecutables = self.buildCache_unfilteredExecutables() #This doesn't take too long. we can start that every time. It will get updated in build as well.
@ -170,7 +170,7 @@ class SupportedProgramsDatabase(object):
self.programs = cache["programs"] #list of dicts self.programs = cache["programs"] #list of dicts
findicons.updateCache(cache["iconPaths"]) findicons.updateCache(cache["iconPaths"])
logger.info("Restoring program list from serialized cache") logger.info("Restoring program list from serialized cache")
self.nsmExecutables = set(d["argodejoExec"] for d in self.programs) self.nsmExecutables = set(d["agordejoExec"] for d in self.programs)
def getCache(self)->dict: def getCache(self)->dict:
"""To carry the DB over restarts. Saved by Qt Settings at the moment""" """To carry the DB over restarts. Saved by Qt Settings at the moment"""
@ -194,7 +194,7 @@ class SupportedProgramsDatabase(object):
self.progressHook("") self.progressHook("")
self.programs = self._build() #builds iconPaths as side-effect self.programs = self._build() #builds iconPaths as side-effect
self.unfilteredExecutables = self.buildCache_unfilteredExecutables() self.unfilteredExecutables = self.buildCache_unfilteredExecutables()
self.nsmExecutables = set(d["argodejoExec"] for d in self.programs) self.nsmExecutables = set(d["agordejoExec"] for d in self.programs)
self._buildWhitelist() self._buildWhitelist()
self.progressHook("") self.progressHook("")
self.progressHook = nothing self.progressHook = nothing
@ -226,18 +226,18 @@ class SupportedProgramsDatabase(object):
self.progressHook(f"{fullPath}") self.progressHook(f"{fullPath}")
entry = self._exeToDesktopEntry(exe) entry = self._exeToDesktopEntry(exe)
if entry: #Found match! if entry: #Found match!
entry["argodejoFullPath"] = fullPath entry["agordejoFullPath"] = fullPath
#We don't want .desktop syntax like "qmidiarp %F" #We don't want .desktop syntax like "qmidiarp %F"
entry["argodejoExec"] = exe entry["agordejoExec"] = exe
if entry["icon"]: if entry["icon"]:
foundIcon = findicons.findIconPath(entry["icon"]) foundIcon = findicons.findIconPath(entry["icon"])
else: else:
foundIcon = findicons.findIconPath(entry["argodejoExec"]) foundIcon = findicons.findIconPath(entry["agordejoExec"])
if foundIcon: if foundIcon:
entry["argodejoIconPath"] = str(foundIcon[0]) #pick best resolution entry["agordejoIconPath"] = str(foundIcon[0]) #pick best resolution
else: else:
entry["argodejoIconPath"] = None entry["agordejoIconPath"] = None
matches.append(entry) matches.append(entry)
@ -247,7 +247,7 @@ class SupportedProgramsDatabase(object):
pass #Double entries like zyn-jack zyn-alsa etc. pass #Double entries like zyn-jack zyn-alsa etc.
for exe,fullPath in leftovers: for exe,fullPath in leftovers:
pseudoEntry = {"name": exe.title(), "argodejoExec":exe, "argodejoFullPath":fullPath} pseudoEntry = {"name": exe.title(), "agordejoExec":exe, "agordejoFullPath":fullPath}
matches.append(pseudoEntry) matches.append(pseudoEntry)
return matches return matches
@ -270,7 +270,7 @@ class SupportedProgramsDatabase(object):
#Assumes to be called only from self.build #Assumes to be called only from self.build
startexecutables = set(self.whiteList + self.userWhitelist) startexecutables = set(self.whiteList + self.userWhitelist)
for prog in self.programs: for prog in self.programs:
prog["whitelist"] = prog["argodejoExec"] in startexecutables prog["whitelist"] = prog["agordejoExec"] in startexecutables
""" """
matches = [] matches = []
@ -278,7 +278,7 @@ class SupportedProgramsDatabase(object):
entry = self._exeToDesktopEntry(exe) entry = self._exeToDesktopEntry(exe)
if entry: #Found match! if entry: #Found match!
#We don't want .desktop syntax like "qmidiarp %F" #We don't want .desktop syntax like "qmidiarp %F"
entry["argodejoExec"] = exe entry["agordejoExec"] = exe
matches.append(entry) matches.append(entry)
return matches return matches
""" """

42
engine/nsmservercontrol.py

@ -421,21 +421,21 @@ class NsmServerControl(object):
This socket is only This socket is only
""" """
self.singleInstanceSocket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) self.singleInstanceSocket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
logger.info("Testing if another non-specific Argodejo is running.") logger.info("Testing if another non-specific Agordejo is running.")
try: try:
## Create an abstract socket, by prefixing it with null. ## Create an abstract socket, by prefixing it with null.
# this relies on a feature only in linux, when current process quits, the # this relies on a feature only in linux, when current process quits, the
# socket will be deleted. # socket will be deleted.
self.singleInstanceSocket.bind('\0' + "argodejo") self.singleInstanceSocket.bind('\0' + "agordejo")
self.singleInstanceSocket.listen(1) self.singleInstanceSocket.listen(1)
self.singleInstanceSocket.setblocking(False) self.singleInstanceSocket.setblocking(False)
logger.info("No other non-specific Argodejo found. Starting GUI") logger.info("No other non-specific Agordejo found. Starting GUI")
#Continue in self.processSingleInstance() #Continue in self.processSingleInstance()
return True return True
except socket.error: except socket.error:
logger.error("GUI for this nsmd server already running. Informing the existing application to show itself.") logger.error("GUI for this nsmd server already running. Informing the existing application to show itself.")
self.singleInstanceSocket.connect('\0' + "argodejo") self.singleInstanceSocket.connect('\0' + "agordejo")
self.singleInstanceSocket.send("argodejoactivate".encode()); self.singleInstanceSocket.send("agordejoactivate".encode());
self.singleInstanceSocket.close() self.singleInstanceSocket.close()
sysexit(1) #triggers atexit sysexit(1) #triggers atexit
#print ("not executed") #print ("not executed")
@ -449,7 +449,7 @@ class NsmServerControl(object):
try: try:
connection, client_address = self.singleInstanceSocket.accept() #This blocks and waits for a message connection, client_address = self.singleInstanceSocket.accept() #This blocks and waits for a message
incoming = connection.recv(1024) incoming = connection.recv(1024)
if incoming and incoming == b"argodejoactivate": if incoming and incoming == b"agordejoactivate":
self.singleInstanceActivateWindowHook() self.singleInstanceActivateWindowHook()
except BlockingIOError: #happens while no data is received. Has nothing to do with blocking or not. In fact: this happens when in non-blocking mode. except BlockingIOError: #happens while no data is received. Has nothing to do with blocking or not. In fact: this happens when in non-blocking mode.
pass pass
@ -990,7 +990,7 @@ class NsmServerControl(object):
the rest is a list of arguments. the rest is a list of arguments.
Attention: a broadcast is not saved by the server. You either are in the session to receive Attention: a broadcast is not saved by the server. You either are in the session to receive
it or you will miss it. If we run Argodejo as attached GUI (incl. --load-session) a broadcast it or you will miss it. If we run Agordejo as attached GUI (incl. --load-session) a broadcast
after the session was loaded, where programs announce themselves to all other clients, after the session was loaded, where programs announce themselves to all other clients,
will not be received here. Such is the case with our data-client. will not be received here. Such is the case with our data-client.
""" """
@ -1000,10 +1000,10 @@ class NsmServerControl(object):
#Our little trick. We know and like some clients better than others. #Our little trick. We know and like some clients better than others.
#If we detect our own data-storage we remember our friends. #If we detect our own data-storage we remember our friends.
#It is possible that another datastorage broadcasts, then we overwrite the URL. #It is possible that another datastorage broadcasts, then we overwrite the URL.
if parameters and parameters[0] == "/argodejo/datastorage/announce": if parameters and parameters[0] == "/agordejo/datastorage/announce":
path, clientId, messageSizeLimit, url = parameters path, clientId, messageSizeLimit, url = parameters
assert "osc.udp" in url assert "osc.udp" in url
logger.info(f"Got announce from argodejo datastorage clientId {clientId} @ {url}") logger.info(f"Got announce from agordejo datastorage clientId {clientId} @ {url}")
o = urlparse(url) o = urlparse(url)
self.dataStorage = DataStorage(self, clientId, messageSizeLimit, (o.hostname, o.port), self.sock) self.dataStorage = DataStorage(self, clientId, messageSizeLimit, (o.hostname, o.port), self.sock)
@ -1378,7 +1378,7 @@ class NsmServerControl(object):
#data-storage / nsm-data #data-storage / nsm-data
def clientNameOverride(self, clientId:str, name:str): def clientNameOverride(self, clientId:str, name:str):
"""An argodejo-specific function that requires the client nsm-data in the session. """An agordejo-specific function that requires the client nsm-data in the session.
If nsm-data is not present this function will write nothing, not touch any data. If nsm-data is not present this function will write nothing, not touch any data.
It will still send a callback to revert any GUI changes back to the original name. It will still send a callback to revert any GUI changes back to the original name.
@ -1609,24 +1609,24 @@ class DataStorage(object):
def getAll(self): def getAll(self):
"""Mirror everything from nsm-data""" """Mirror everything from nsm-data"""
msg = _OutgoingMessage("/argodejo/datastorage/getall") msg = _OutgoingMessage("/agordejo/datastorage/getall")
msg.add_arg(self.ip) msg.add_arg(self.ip)
msg.add_arg(self.port) msg.add_arg(self.port)
self.sock.sendto(msg.build(), self.url) self.sock.sendto(msg.build(), self.url)
jsonString = self._waitForMultipartMessage("/argodejo/datastorage/reply/getall") jsonString = self._waitForMultipartMessage("/agordejo/datastorage/reply/getall")
return json.loads(jsonString) return json.loads(jsonString)
def setClientOverrideName(self, clientId:str, value): def setClientOverrideName(self, clientId:str, value):
"""We accept empty string as a name to remove the name override""" """We accept empty string as a name to remove the name override"""
assert clientId in self.clients, self.clients assert clientId in self.clients, self.clients
msg = _OutgoingMessage("/argodejo/datastorage/setclientoverridename") msg = _OutgoingMessage("/agordejo/datastorage/setclientoverridename")
msg.add_arg(clientId) msg.add_arg(clientId)
msg.add_arg(json.dumps(value)) msg.add_arg(json.dumps(value))
self.sock.sendto(msg.build(), self.url) self.sock.sendto(msg.build(), self.url)
self.getClientOverrideName(clientId) #verifies data and triggers callback self.getClientOverrideName(clientId) #verifies data and triggers callback
def getClientOverrideName(self, clientId:str): def getClientOverrideName(self, clientId:str):
msg = _OutgoingMessage("/argodejo/datastorage/getclientoverridename") msg = _OutgoingMessage("/agordejo/datastorage/getclientoverridename")
msg.add_arg(clientId) msg.add_arg(clientId)
msg.add_arg(self.ip) msg.add_arg(self.ip)
msg.add_arg(self.port) msg.add_arg(self.port)
@ -1641,7 +1641,7 @@ class DataStorage(object):
break break
msg = _IncomingMessage(data) msg = _IncomingMessage(data)
if msg.oscpath == "/argodejo/datastorage/reply/getclient": if msg.oscpath == "/agordejo/datastorage/reply/getclient":
replyClientId, jsonName = msg.params replyClientId, jsonName = msg.params
assert replyClientId == clientId, (replyClientId, clientId) assert replyClientId == clientId, (replyClientId, clientId)
break break
@ -1666,7 +1666,7 @@ class DataStorage(object):
chunks = self._chunkstring(text) chunks = self._chunkstring(text)
descriptionId = str(id(text))[:8] descriptionId = str(id(text))[:8]
for index, chunk in enumerate(chunks): for index, chunk in enumerate(chunks):
msg = _OutgoingMessage("/argodejo/datastorage/setdescription") msg = _OutgoingMessage("/agordejo/datastorage/setdescription")
msg.add_arg(descriptionId) msg.add_arg(descriptionId)
msg.add_arg(index) msg.add_arg(index)
msg.add_arg(chunk) msg.add_arg(chunk)
@ -1696,7 +1696,7 @@ class DataStorage(object):
def read(self, key:str): def read(self, key:str):
"""Request one value""" """Request one value"""
msg = _OutgoingMessage("/argodejo/datastorage/read") msg = _OutgoingMessage("/agordejo/datastorage/read")
msg.add_arg(key) msg.add_arg(key)
msg.add_arg(self.ip) msg.add_arg(self.ip)
msg.add_arg(self.port) msg.add_arg(self.port)
@ -1704,27 +1704,27 @@ class DataStorage(object):
def readAll(self): def readAll(self):
"""Request all data""" """Request all data"""
msg = _OutgoingMessage("/argodejo/datastorage/readall") msg = _OutgoingMessage("/agordejo/datastorage/readall")
msg.add_arg(self.ip) msg.add_arg(self.ip)
msg.add_arg(self.port) msg.add_arg(self.port)
self.sock.sendto(msg.build(), self.url) self.sock.sendto(msg.build(), self.url)
def create(self, key:str, value): def create(self, key:str, value):
"""Write/Create one value.""" """Write/Create one value."""
msg = _OutgoingMessage("/argodejo/datastorage/create") msg = _OutgoingMessage("/agordejo/datastorage/create")
msg.add_arg(key) msg.add_arg(key)
msg.add_arg(json.dumps(value)) msg.add_arg(json.dumps(value))
self.sock.sendto(msg.build(), self.url) self.sock.sendto(msg.build(), self.url)
def update(self, key:str, value): def update(self, key:str, value):
"""Update a value, but only if it exists""" """Update a value, but only if it exists"""
msg = _OutgoingMessage("/argodejo/datastorage/update") msg = _OutgoingMessage("/agordejo/datastorage/update")
msg.add_arg(key) msg.add_arg(key)
msg.add_arg(json.dumps(value)) msg.add_arg(json.dumps(value))
self.sock.sendto(msg.build(), self.url) self.sock.sendto(msg.build(), self.url)
def delete(self, key:str): def delete(self, key:str):
"""Delete a key/value completely""" """Delete a key/value completely"""
msg = _OutgoingMessage("/argodejo/datastorage/delete") msg = _OutgoingMessage("/agordejo/datastorage/delete")
msg.add_arg(key) msg.add_arg(key)
self.sock.sendto(msg.build(), self.url) self.sock.sendto(msg.build(), self.url)

2
qtgui/designer/mainwindow.py

@ -347,7 +347,7 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow): def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Argodejo")) MainWindow.setWindowTitle(_translate("MainWindow", "Agordejo"))
self.quickNewSession.setText(_translate("MainWindow", "Start New Session")) self.quickNewSession.setText(_translate("MainWindow", "Start New Session"))
self.quickSessionNameLineEdit.setText(_translate("MainWindow", "Session Name Goes Here")) self.quickSessionNameLineEdit.setText(_translate("MainWindow", "Session Name Goes Here"))
self.quickSaveOpenSession.setText(_translate("MainWindow", "Save")) self.quickSaveOpenSession.setText(_translate("MainWindow", "Save"))

2
qtgui/designer/mainwindow.ui

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Argodejo</string> <string>Agordejo</string>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">

2
qtgui/designer/settings.py

@ -77,6 +77,6 @@ class Ui_Dialog(object):
self.label_help_launcher_whitelist.setText(_translate("Dialog", "Whitelist - Add executable names (not paths) to the program launcher. One executable per line.")) self.label_help_launcher_whitelist.setText(_translate("Dialog", "Whitelist - Add executable names (not paths) to the program launcher. One executable per line."))
self.label_help_launcher_blacklist.setText(_translate("Dialog", "Blacklist - Exclude executable names (not paths) from the program launcher. One executable per line.")) self.label_help_launcher_blacklist.setText(_translate("Dialog", "Blacklist - Exclude executable names (not paths) from the program launcher. One executable per line."))
self.SettingsTab.setTabText(self.SettingsTab.indexOf(self.tab_2), _translate("Dialog", "Launcher")) self.SettingsTab.setTabText(self.SettingsTab.indexOf(self.tab_2), _translate("Dialog", "Launcher"))
self.label_help_programstart.setText(_translate("Dialog", "For advanced users only! Add executable paths to the environment, just for Argodejo and NSM. Changes need a program restart afterwards. If you want your programs in the application launcher use the launcher tab.")) self.label_help_programstart.setText(_translate("Dialog", "For advanced users only! Add executable paths to the environment, just for Agordejo and NSM. Changes need a program restart afterwards. If you want your programs in the application launcher use the launcher tab."))
self.label_help_path_rules.setText(_translate("Dialog", "Add one absolute path to a directory (e.g. /home/user/audio-bin) per line. No wildcards. Trailing slashes/ don\'t matter.")) self.label_help_path_rules.setText(_translate("Dialog", "Add one absolute path to a directory (e.g. /home/user/audio-bin) per line. No wildcards. Trailing slashes/ don\'t matter."))
self.SettingsTab.setTabText(self.SettingsTab.indexOf(self.tab), _translate("Dialog", "$PATH")) self.SettingsTab.setTabText(self.SettingsTab.indexOf(self.tab), _translate("Dialog", "$PATH"))

2
qtgui/designer/settings.ui

@ -66,7 +66,7 @@
<item> <item>
<widget class="QLabel" name="label_help_programstart"> <widget class="QLabel" name="label_help_programstart">
<property name="text"> <property name="text">
<string>For advanced users only! Add executable paths to the environment, just for Argodejo and NSM. Changes need a program restart afterwards. If you want your programs in the application launcher use the launcher tab.</string> <string>For advanced users only! Add executable paths to the environment, just for Agordejo and NSM. Changes need a program restart afterwards. If you want your programs in the application launcher use the launcher tab.</string>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>

16
qtgui/mainwindow.py

@ -55,7 +55,7 @@ from .settings import SettingsDialog
api.eventLoop = EventLoop() api.eventLoop = EventLoop()
#Setup the translator before classes are set up. Otherwise we can't use non-template translation. #Setup the translator before classes are set up. Otherwise we can't use non-template translation.
#to test use LANGUAGE=de_DE.UTF-8 ./argodejo #to test use LANGUAGE=de_DE.UTF-8 ./agordejo
language = QtCore.QLocale().languageToString(QtCore.QLocale().language()) language = QtCore.QLocale().languageToString(QtCore.QLocale().language())
logger.info("{}: Language set to {}".format(METADATA["name"], language)) logger.info("{}: Language set to {}".format(METADATA["name"], language))
if language in METADATA["supportedLanguages"]: if language in METADATA["supportedLanguages"]:
@ -205,8 +205,8 @@ class MainWindow(QtWidgets.QMainWindow):
if not self.isVisible(): if not self.isVisible():
text = QtCore.QCoreApplication.translate("mainWindow", "Argodejo ready") text = QtCore.QCoreApplication.translate("mainWindow", "Agordejo ready")
self.systemTray.showMessage("Argodejo", text, QtWidgets.QSystemTrayIcon.Information, 2000) #title, message, icon, timeout. #has messageClicked() signal. self.systemTray.showMessage("Agordejo", text, QtWidgets.QSystemTrayIcon.Information, 2000) #title, message, icon, timeout. #has messageClicked() signal.
logger.info("Ready for user input. Exec_ Qt.") logger.info("Ready for user input. Exec_ Qt.")
qtApp.exec_() qtApp.exec_()
@ -241,7 +241,7 @@ class MainWindow(QtWidgets.QMainWindow):
getattr(self, "raise")() #raise is python syntax. Can't use that directly getattr(self, "raise")() #raise is python syntax. Can't use that directly
self.activateWindow() self.activateWindow()
text = QtCore.QCoreApplication.translate("mainWindow", "Another GUI tried to launch.") text = QtCore.QCoreApplication.translate("mainWindow", "Another GUI tried to launch.")
self.systemTray.showMessage("Argodejo", text, QtWidgets.QSystemTrayIcon.Information, 2000) #title, message, icon, timeout. #has messageClicked() signal. self.systemTray.showMessage("Agordejo", text, QtWidgets.QSystemTrayIcon.Information, 2000) #title, message, icon, timeout. #has messageClicked() signal.
def _updateGUIWithCachedPrograms(self): def _updateGUIWithCachedPrograms(self):
logger.info("Updating entire program with cached program lists") logger.info("Updating entire program with cached program lists")
@ -259,11 +259,11 @@ class MainWindow(QtWidgets.QMainWindow):
self.programIcons.clear() self.programIcons.clear()
for entry in programs: for entry in programs:
exe = entry["argodejoExec"] exe = entry["agordejoExec"]
icon = None icon = None
if "argodejoIconPath" in entry and entry["argodejoIconPath"]: #not null if "agordejoIconPath" in entry and entry["agordejoIconPath"]: #not null
icon = QtGui.QIcon(entry["argodejoIconPath"]) icon = QtGui.QIcon(entry["agordejoIconPath"])
if not icon or icon.isNull(): #the DB cache could be wrong. Deinstalled a program and not updated the DB. if not icon or icon.isNull(): #the DB cache could be wrong. Deinstalled a program and not updated the DB.
if "icon" in entry: if "icon" in entry:
@ -450,7 +450,7 @@ class MainWindow(QtWidgets.QMainWindow):
actions[key](settings.value(key)) actions[key](settings.value(key))
#Deprecated. Always open the GUI when started normally, saving minimzed has little value. #Deprecated. Always open the GUI when started normally, saving minimzed has little value.
#Instead we introduced a command line options and .desktop option to auto-load the last session and start Argodejo GUI hidden. #Instead we introduced a command line options and .desktop option to auto-load the last session and start Agordejo GUI hidden.
""" """
if self.systemTray.available and settings.contains("visible") and settings.value("visible") == "false": if self.systemTray.available and settings.contains("visible") and settings.value("visible") == "false":
self.setVisible(False) self.setVisible(False)

18
qtgui/opensessioncontroller.py

@ -291,7 +291,7 @@ class ClientTable(object):
else: else:
#Real data #Real data
#assert "origin" in data, data . Not in a fresh session, after adding! #assert "origin" in data, data . Not in a fresh session, after adding!
#assert data["origin"] == "https://www.laborejo.org/argodejo/nsm-data", data["origin"] #assert data["origin"] == "https://www.laborejo.org/agordejo/nsm-data", data["origin"]
self.clientOverrideNamesCache = clientOverrideNames #Can be empty dict as well self.clientOverrideNamesCache = clientOverrideNames #Can be empty dict as well
clients = ClientItem.allItems clients = ClientItem.allItems
for clientId, name in clientOverrideNames.items(): for clientId, name in clientOverrideNames.items():
@ -398,18 +398,18 @@ class LauncherProgram(QtWidgets.QTreeWidgetItem):
'x-nsm-capable': 'true'} 'x-nsm-capable': 'true'}
Also: Also:
'argodejoExec' : the actual nsm exe 'agordejoExec' : the actual nsm exe
'argodejoIconPath' : a priority path the engine found for us 'agordejoIconPath' : a priority path the engine found for us
""" """
allItems = {} # clientId : ClientItem allItems = {} # clientId : ClientItem
def __init__(self, parentController, launcherDict:dict): def __init__(self, parentController, launcherDict:dict):
LauncherProgram.allItems[launcherDict["argodejoExec"]] = self LauncherProgram.allItems[launcherDict["agordejoExec"]] = self
self.parentController = parentController self.parentController = parentController
self.launcherDict = launcherDict self.launcherDict = launcherDict
self.executable = launcherDict["argodejoExec"] self.executable = launcherDict["agordejoExec"]
@ -430,8 +430,8 @@ class LauncherProgram(QtWidgets.QTreeWidgetItem):
programIcons = self.parentController.mainWindow.programIcons programIcons = self.parentController.mainWindow.programIcons
assert programIcons assert programIcons
if launcherDict["argodejoExec"] in programIcons: if launcherDict["agordejoExec"] in programIcons:
icon = programIcons[launcherDict["argodejoExec"]] icon = programIcons[launcherDict["agordejoExec"]]
self.setIcon(self.parentController.columns.index("name"), icon) #name is correct here. this is just the column. self.setIcon(self.parentController.columns.index("name"), icon) #name is correct here. this is just the column.
class LauncherTable(object): class LauncherTable(object):
@ -446,7 +446,7 @@ class LauncherTable(object):
self.launcherWidget = self.mainWindow.ui.loadedSessionsLauncher self.launcherWidget = self.mainWindow.ui.loadedSessionsLauncher
self.launcherWidget.setIconSize(iconSize) self.launcherWidget.setIconSize(iconSize)
self.columns = ("name", "comment", "argodejoFullPath") #basically an enum self.columns = ("name", "comment", "agordejoFullPath") #basically an enum
self.headerLables = [ self.headerLables = [
QtCore.QCoreApplication.translate("Launcher", "Name"), QtCore.QCoreApplication.translate("Launcher", "Name"),
QtCore.QCoreApplication.translate("Launcher", "Description"), QtCore.QCoreApplication.translate("Launcher", "Description"),
@ -481,7 +481,7 @@ class LauncherTable(object):
Entry is a dict modelled after a .desktop file. Entry is a dict modelled after a .desktop file.
But not all entries have all data. Some are barebones executable name and path. But not all entries have all data. Some are barebones executable name and path.
Only guaranteed keys are argodejoExec and argodejoFullPath, which in turn are files Only guaranteed keys are agordejoExec and agordejoFullPath, which in turn are files
guaranteed to exist in the path. guaranteed to exist in the path.
""" """
self.launcherWidget.clear() self.launcherWidget.clear()

36
qtgui/quickopensessioncontroller.py

@ -50,12 +50,12 @@ class StarterClientItem(QtWidgets.QListWidgetItem):
'startupnotify': 'false', 'startupnotify': 'false',
'categories': 'AudioVideo;Audio;X-Recorders;X-Multitrack;X-Jack;', 'categories': 'AudioVideo;Audio;X-Recorders;X-Multitrack;X-Jack;',
'x-nsm-capable': 'true', 'version': '1.0.1', 'x-nsm-capable': 'true', 'version': '1.0.1',
'argodejoFullPath': '/usr/bin/vico', 'agordejoFullPath': '/usr/bin/vico',
'argodejoExec': 'vico', 'agordejoExec': 'vico',
'whitelist': True} 'whitelist': True}
This is the icon that is starter and status-indicator at once. This is the icon that is starter and status-indicator at once.
QuickSession has only one icon per argodejoExec. QuickSession has only one icon per agordejoExec.
If at least one program is running as nsmClient in the session we switch ourselves on and If at least one program is running as nsmClient in the session we switch ourselves on and
save the status as self.nsmClientDict save the status as self.nsmClientDict
@ -63,12 +63,12 @@ class StarterClientItem(QtWidgets.QListWidgetItem):
We do not react to name overrides by nsm-data, nor do we react to labels or name changes We do not react to name overrides by nsm-data, nor do we react to labels or name changes
through reportedNames. through reportedNames.
""" """
allItems = {} #argodejoExec:StarterClientItem allItems = {} #agordejoExec:StarterClientItem
def __init__(self, parentController, desktopEntry:dict): def __init__(self, parentController, desktopEntry:dict):
self.parentController = parentController self.parentController = parentController
self.desktopEntry = desktopEntry self.desktopEntry = desktopEntry
self.argodejoExec = desktopEntry["argodejoExec"] self.agordejoExec = desktopEntry["agordejoExec"]
super().__init__(desktopEntry["name"], type=1000) #type 0 is default qt type. 1000 is subclassed user type) super().__init__(desktopEntry["name"], type=1000) #type 0 is default qt type. 1000 is subclassed user type)
self.nsmClientDict = None #aka nsmStatusDict if this exists it means at least one instance of this application is running in the session self.nsmClientDict = None #aka nsmStatusDict if this exists it means at least one instance of this application is running in the session
@ -79,9 +79,9 @@ class StarterClientItem(QtWidgets.QListWidgetItem):
self.setToolTip(desktopEntry["name"]) self.setToolTip(desktopEntry["name"])
programIcons = self.parentController.mainWindow.programIcons programIcons = self.parentController.mainWindow.programIcons
assert programIcons assert programIcons
assert "argodejoExec" in desktopEntry, desktopEntry assert "agordejoExec" in desktopEntry, desktopEntry
if desktopEntry["argodejoExec"] in programIcons: if desktopEntry["agordejoExec"] in programIcons:
icon = programIcons[desktopEntry["argodejoExec"]] icon = programIcons[desktopEntry["agordejoExec"]]
self.setIcon(icon) self.setIcon(icon)
self.updateStatus(None) #removed/off self.updateStatus(None) #removed/off
@ -127,7 +127,7 @@ class StarterClientItem(QtWidgets.QListWidgetItem):
painter.fillRect(overlayPixmap.rect(), QtGui.QColor("cyan")) painter.fillRect(overlayPixmap.rect(), QtGui.QColor("cyan"))
painter.end() painter.end()
icon = self.parentController.mainWindow.programIcons[self.argodejoExec] icon = self.parentController.mainWindow.programIcons[self.agordejoExec]
pixmap = icon.pixmap(QtCore.QSize(70,70)) pixmap = icon.pixmap(QtCore.QSize(70,70))
p = QtGui.QPainter(pixmap) p = QtGui.QPainter(pixmap)
@ -138,8 +138,8 @@ class StarterClientItem(QtWidgets.QListWidgetItem):
ico = QtGui.QIcon(pixmap) ico = QtGui.QIcon(pixmap)
self.setIcon(ico) self.setIcon(ico)
else: else:
if self.argodejoExec in self.parentController.mainWindow.programIcons: #there was a strange bug once where this happened exactly one, and then everything was fine, including this icon. Some DB backwards compatibility. if self.agordejoExec in self.parentController.mainWindow.programIcons: #there was a strange bug once where this happened exactly one, and then everything was fine, including this icon. Some DB backwards compatibility.
ico = self.parentController.mainWindow.programIcons[self.argodejoExec] ico = self.parentController.mainWindow.programIcons[self.agordejoExec]
self.setIcon(ico) self.setIcon(ico)
@ -164,7 +164,7 @@ class StarterClientItem(QtWidgets.QListWidgetItem):
self._setIconOverlay("stopped") self._setIconOverlay("stopped")
def handleClick(self): def handleClick(self):
alreadyInSession = api.executableInSession(self.argodejoExec) alreadyInSession = api.executableInSession(self.agordejoExec)
#Paranoia Start #Paranoia Start
if self.nsmClientDict is None and alreadyInSession: if self.nsmClientDict is None and alreadyInSession:
#Caught double-click. do nothing, this is a user-accident #Caught double-click. do nothing, this is a user-accident
@ -176,7 +176,7 @@ class StarterClientItem(QtWidgets.QListWidgetItem):
#Paranoia End #Paranoia End
if not alreadyInSession: if not alreadyInSession:
api.clientAdd(self.argodejoExec) #triggers status update callback which activates our item. api.clientAdd(self.agordejoExec) #triggers status update callback which activates our item.
elif self.nsmClientDict["lastStatus"] == "stopped": elif self.nsmClientDict["lastStatus"] == "stopped":
api.clientResume(self.nsmClientDict["clientId"]) api.clientResume(self.nsmClientDict["clientId"])
else: else:
@ -281,7 +281,7 @@ class QuickOpenSessionController(object):
programs = engineCache["programs"] programs = engineCache["programs"]
whitelist = [e for e in programs if e["whitelist"]] whitelist = [e for e in programs if e["whitelist"]]
leftovers = set(StarterClientItem.allItems.keys()) #"argodejoExec" leftovers = set(StarterClientItem.allItems.keys()) #"agordejoExec"
notForQuickView = ("nsm-data", "jackpatch", "nsm-proxy", "non-midi-mapper", "non-mixer-noui", "ray-proxy", "ray-jackpatch", "carla-jack-single", "carla-jack-multi") notForQuickView = ("nsm-data", "jackpatch", "nsm-proxy", "non-midi-mapper", "non-mixer-noui", "ray-proxy", "ray-jackpatch", "carla-jack-single", "carla-jack-multi")
@ -289,16 +289,16 @@ class QuickOpenSessionController(object):
forIcon._setIconOverlay("") #empty initial state forIcon._setIconOverlay("") #empty initial state
for entry in whitelist: for entry in whitelist:
exe = entry["argodejoExec"] exe = entry["agordejoExec"]
if exe in StarterClientItem.allItems: if exe in StarterClientItem.allItems:
if entry["argodejoExec"] in leftovers: #It happened that it was not. Don't ask me... if entry["agordejoExec"] in leftovers: #It happened that it was not. Don't ask me...
leftovers.remove(entry["argodejoExec"]) leftovers.remove(entry["agordejoExec"])
else: else:
#Create new. Item will be parented by Qt, so Python GC will not delete #Create new. Item will be parented by Qt, so Python GC will not delete
if not exe in notForQuickView: if not exe in notForQuickView:
item = StarterClientItem(parentController=self, desktopEntry=entry) item = StarterClientItem(parentController=self, desktopEntry=entry)
self.listWidget.addItem(item) self.listWidget.addItem(item)
StarterClientItem.allItems[entry["argodejoExec"]] = item StarterClientItem.allItems[entry["agordejoExec"]] = item
#Remove starters that were available until they got removed in the last db update #Remove starters that were available until they got removed in the last db update
for loexe in leftovers: for loexe in leftovers:

BIN
qtgui/resources/translations/de.qm

Binary file not shown.

28
qtgui/resources/translations/de.ts

@ -57,8 +57,8 @@
</message> </message>
<message> <message>
<location filename="../../designer/settings.py" line="80"/> <location filename="../../designer/settings.py" line="80"/>
<source>For advanced users only! Add executable paths to the environment, just for Argodejo and NSM. Changes need a program restart afterwards. If you want your programs in the application launcher use the launcher tab.</source> <source>For advanced users only! Add executable paths to the environment, just for Agordejo and NSM. Changes need a program restart afterwards. If you want your programs in the application launcher use the launcher tab.</source>
<translation>Nur für fortgeschrittene Benutzer! Hier absolute Pfade hinzufügen, in denen sich ausführbare Dateien befinden. Diese Einstellungen gelten nur für Argodejo/NSM. Änderungen benötigen einen kompletten Programmneustart. Um Programme zum Schnellstarter hinzuzufügen bitte den Tab &quot;Programmstarter&quot; benutzen.</translation> <translation>Nur für fortgeschrittene Benutzer! Hier absolute Pfade hinzufügen, in denen sich ausführbare Dateien befinden. Diese Einstellungen gelten nur für Agordejo/NSM. Änderungen benötigen einen kompletten Programmneustart. Um Programme zum Schnellstarter hinzuzufügen bitte den Tab &quot;Programmstarter&quot; benutzen.</translation>
</message> </message>
<message> <message>
<location filename="../../designer/settings.py" line="81"/> <location filename="../../designer/settings.py" line="81"/>
@ -103,8 +103,8 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../../designer/mainwindow.py" line="350"/> <location filename="../../designer/mainwindow.py" line="350"/>
<source>Argodejo</source> <source>Agordejo</source>
<translation>Argodejo</translation> <translation>Agordejo</translation>
</message> </message>
<message> <message>
<location filename="../../designer/mainwindow.py" line="351"/> <location filename="../../designer/mainwindow.py" line="351"/>
@ -649,18 +649,18 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<name>TrayIcon</name> <name>TrayIcon</name>
<message> <message>
<location filename="../../systemtray.py" line="65"/> <location filename="../../systemtray.py" line="65"/>
<source>Hide/Show Argodejo</source> <source>Hide/Show Agordejo</source>
<translation>Verstecke/Zeige Argodejo</translation> <translation>Verstecke/Zeige Agordejo</translation>
</message> </message>
<message> <message>
<location filename="../../systemtray.py" line="79"/> <location filename="../../systemtray.py" line="79"/>
<source>Save &amp;&amp; Quit Argodejo</source> <source>Save &amp;&amp; Quit Agordejo</source>
<translation>Speichern und Argodejo Beenden</translation> <translation>Speichern und Agordejo Beenden</translation>
</message> </message>
<message> <message>
<location filename="../../systemtray.py" line="78"/> <location filename="../../systemtray.py" line="78"/>
<source>Abort &amp;&amp; Quit Argodejo</source> <source>Abort &amp;&amp; Quit Agordejo</source>
<translation type="obsolete">Abbrechen und Argodejo Beenden</translation> <translation type="obsolete">Abbrechen und Agordejo Beenden</translation>
</message> </message>
<message> <message>
<location filename="../../systemtray.py" line="86"/> <location filename="../../systemtray.py" line="86"/>
@ -674,16 +674,16 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
</message> </message>
<message> <message>
<location filename="../../systemtray.py" line="80"/> <location filename="../../systemtray.py" line="80"/>
<source>Close without Saving &amp;&amp; Quit Argodejo</source> <source>Close without Saving &amp;&amp; Quit Agordejo</source>
<translation>Schließen ohne zu Speichern &amp;&amp; Argodejo beenden</translation> <translation>Schließen ohne zu Speichern &amp;&amp; Agordejo beenden</translation>
</message> </message>
</context> </context>
<context> <context>
<name>mainWindow</name> <name>mainWindow</name>
<message> <message>
<location filename="../../mainwindow.py" line="208"/> <location filename="../../mainwindow.py" line="208"/>
<source>Argodejo ready</source> <source>Agordejo ready</source>
<translation>Argodejo ist bereit</translation> <translation>Agordejo ist bereit</translation>
</message> </message>
<message> <message>
<location filename="../../mainwindow.py" line="243"/> <location filename="../../mainwindow.py" line="243"/>

6
qtgui/systemtray.py

@ -61,7 +61,7 @@ class SystemTray(QtWidgets.QSystemTrayIcon):
nsmSessionName = api.currentSession() nsmSessionName = api.currentSession()
_add(QtCore.QCoreApplication.translate("TrayIcon", "Hide/Show Argodejo"), lambda: self.mainWindow.toggleVisible(force=None)) #explicit force=None because the qt signal is sending a bool _add(QtCore.QCoreApplication.translate("TrayIcon", "Hide/Show Agordejo"), lambda: self.mainWindow.toggleVisible(force=None)) #explicit force=None because the qt signal is sending a bool
menu.addSeparator() menu.addSeparator()
#Add other pre-defined actions #Add other pre-defined actions
@ -75,8 +75,8 @@ class SystemTray(QtWidgets.QSystemTrayIcon):
_add(QtCore.QCoreApplication.translate("TrayIcon", "Save && Close {}".format(nsmSessionName)), api.sessionClose) _add(QtCore.QCoreApplication.translate("TrayIcon", "Save && Close {}".format(nsmSessionName)), api.sessionClose)
_add(QtCore.QCoreApplication.translate("TrayIcon", "Close without Saving {}".format(nsmSessionName)), api.sessionAbort) _add(QtCore.QCoreApplication.translate("TrayIcon", "Close without Saving {}".format(nsmSessionName)), api.sessionAbort)
menu.addSeparator() menu.addSeparator()
_add(QtCore.QCoreApplication.translate("TrayIcon", "Save && Quit Argodejo"), self.mainWindow.closeAndQuit) _add(QtCore.QCoreApplication.translate("TrayIcon", "Save && Quit Agordejo"), self.mainWindow.closeAndQuit)
_add(QtCore.QCoreApplication.translate("TrayIcon", "Close without Saving && Quit Argodejo"), self.mainWindow.abortAndQuit) _add(QtCore.QCoreApplication.translate("TrayIcon", "Close without Saving && Quit Agordejo"), self.mainWindow.abortAndQuit)
menu.addSeparator() menu.addSeparator()
else: else:
for recentName in self.mainWindow.recentlyOpenedSessions.get(): for recentName in self.mainWindow.recentlyOpenedSessions.get():

48
tools/nsm-data

@ -22,13 +22,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging; logger = logging.getLogger("nsm-data"); logger.info("import") import logging; logger = logging.getLogger("nsm-data"); logger.info("import")
URL="https://www.laborejo.org/argodejo/nsm-data" URL="https://www.laborejo.org/agordejo/nsm-data"
HARD_LIMIT = 512 # no single message longer than this HARD_LIMIT = 512 # no single message longer than this
VERSION= 1.0 VERSION= 1.0
#In case the user tries to run this standalone. #In case the user tries to run this standalone.
import argparse import argparse
parser = argparse.ArgumentParser(description="nsm-data is a module for Argodejo. It only communicates over OSC in an NSM-Session and has no standalone functionality.") parser = argparse.ArgumentParser(description="nsm-data is a module for Agordejo. It only communicates over OSC in an NSM-Session and has no standalone functionality.")
parser.add_argument("-v", "--version", action='version', version=str(VERSION)) parser.add_argument("-v", "--version", action='version', version=str(VERSION))
args = parser.parse_args() args = parser.parse_args()
@ -60,14 +60,14 @@ class DataClient(object):
In theory every application can read and write us (like a book!) In theory every application can read and write us (like a book!)
We listen to OSC paths and reply to the sender, which must give its address explicitly. We listen to OSC paths and reply to the sender, which must give its address explicitly.
/argodejo/datastorage/readall s:request-host i:request-port #Request all data /agordejo/datastorage/readall s:request-host i:request-port #Request all data
/argodejo/datastorage/read s:key s:request-host i:request-port #Request one value /agordejo/datastorage/read s:key s:request-host i:request-port #Request one value
The write functions have no reply. They will print out to stdout/err but not send an error The write functions have no reply. They will print out to stdout/err but not send an error
message back. message back.
/argodejo/datastorage/create s:key any:value #Write/Create one value /agordejo/datastorage/create s:key any:value #Write/Create one value
/argodejo/datastorage/update s:kecy any:value #Update a value, but only if it exists /agordejo/datastorage/update s:kecy any:value #Update a value, but only if it exists
/argodejo/datastorage/delete s:key #Remove a key/value completely /agordejo/datastorage/delete s:key #Remove a key/value completely
""" """
def __init__(self): def __init__(self):
@ -91,19 +91,19 @@ class DataClient(object):
) )
#Add custom callbacks. They all receive _IncomingMessage(data) #Add custom callbacks. They all receive _IncomingMessage(data)
self.nsmClient.reactions["/argodejo/datastorage/setclientoverridename"] = self.setClientOverrideName self.nsmClient.reactions["/agordejo/datastorage/setclientoverridename"] = self.setClientOverrideName
self.nsmClient.reactions["/argodejo/datastorage/getclientoverridename"] = self.getClientOverrideName self.nsmClient.reactions["/agordejo/datastorage/getclientoverridename"] = self.getClientOverrideName
self.nsmClient.reactions["/argodejo/datastorage/getall"] = self.getAll self.nsmClient.reactions["/agordejo/datastorage/getall"] = self.getAll
self.nsmClient.reactions["/argodejo/datastorage/getdescription"] = self.getDescription self.nsmClient.reactions["/agordejo/datastorage/getdescription"] = self.getDescription
self.nsmClient.reactions["/argodejo/datastorage/setdescription"] = self.setDescription self.nsmClient.reactions["/agordejo/datastorage/setdescription"] = self.setDescription
#self.nsmClient.reactions["/argodejo/datastorage/read"] = self.reactRead #self.nsmClient.reactions["/agordejo/datastorage/read"] = self.reactRead
#self.nsmClient.reactions["/argodejo/datastorage/readall"] = self.reactReadAll #self.nsmClient.reactions["/agordejo/datastorage/readall"] = self.reactReadAll
#self.nsmClient.reactions["/argodejo/datastorage/create"] = self.reactCreate #self.nsmClient.reactions["/agordejo/datastorage/create"] = self.reactCreate
#self.nsmClient.reactions["/argodejo/datastorage/update"] = self.reactUpdate #self.nsmClient.reactions["/agordejo/datastorage/update"] = self.reactUpdate
#self.nsmClient.reactions["/argodejo/datastorage/delete"] = self.reactDelete #self.nsmClient.reactions["/agordejo/datastorage/delete"] = self.reactDelete
#NsmClients only returns from init when it has a connection, and on top (for us) when session is ready. It is safe to announce now. #NsmClients only returns from init when it has a connection, and on top (for us) when session is ready. It is safe to announce now.
self.nsmClient.broadcast("/argodejo/datastorage/announce", [self.nsmClient.ourClientId, HARD_LIMIT, self.nsmClient.ourOscUrl]) self.nsmClient.broadcast("/agordejo/datastorage/announce", [self.nsmClient.ourClientId, HARD_LIMIT, self.nsmClient.ourOscUrl])
while True: while True:
self.nsmClient.reactToMessage() self.nsmClient.reactToMessage()
@ -113,7 +113,7 @@ class DataClient(object):
"""A complete data dumb, intended to use once after startup. """A complete data dumb, intended to use once after startup.
Will split into multiple reply messages, if needed""" Will split into multiple reply messages, if needed"""
senderHost, senderPort = msg.params senderHost, senderPort = msg.params
path = "/argodejo/datastorage/reply/getall" path = "/agordejo/datastorage/reply/getall"
encoded = json.dumps(self.data) encoded = json.dumps(self.data)
chunks = chunkstring(encoded) chunks = chunkstring(encoded)
l = len(chunks) l = len(chunks)
@ -124,7 +124,7 @@ class DataClient(object):
def getDescription(self, msg)->str: def getDescription(self, msg)->str:
"""Returns a normal string, not json""" """Returns a normal string, not json"""
senderHost, senderPort = msg.params senderHost, senderPort = msg.params
path = "/argodejo/datastorage/reply/getdescription" path = "/agordejo/datastorage/reply/getdescription"
chunks = chunkstring(self.data["description"]) chunks = chunkstring(self.data["description"])
l = len(chunks) l = len(chunks)
for index, chunk in enumerate(chunks): for index, chunk in enumerate(chunks):
@ -157,7 +157,7 @@ class DataClient(object):
"""Answers with empty string if clientId does not exist or has not data. This is a signal """Answers with empty string if clientId does not exist or has not data. This is a signal
for the GUI/host to use the original name!""" for the GUI/host to use the original name!"""
clientId, senderHost, senderPort = msg.params clientId, senderHost, senderPort = msg.params
path = "/argodejo/datastorage/reply/getclient" path = "/agordejo/datastorage/reply/getclient"
if clientId in self.data["clientOverrideNames"]: if clientId in self.data["clientOverrideNames"]:
name = self.data["clientOverrideNames"][clientId] name = self.data["clientOverrideNames"][clientId]
else: else:
@ -183,7 +183,7 @@ class DataClient(object):
#Callback Reactions to OSC. They all receive _IncomingMessage(data) #Callback Reactions to OSC. They all receive _IncomingMessage(data)
def reactReadAll(self, msg): def reactReadAll(self, msg):
senderHost, senderPort = msg.params senderHost, senderPort = msg.params
path = "/argodejo/datastorage/reply/readall" path = "/agordejo/datastorage/reply/readall"
encoded = json.dumps("") encoded = json.dumps("")
chunks = chunkstring(encoded, 512) chunks = chunkstring(encoded, 512)
l = len(chunks) l = len(chunks)
@ -194,7 +194,7 @@ class DataClient(object):
def reactRead(self, msg): def reactRead(self, msg):
key, senderHost, senderPort = msg.params key, senderHost, senderPort = msg.params
if key in self.data: if key in self.data:
path = "/argodejo/datastorage/reply/read" path = "/agordejo/datastorage/reply/read"
listOfParameters = [key, json.dumps(self.data[key])] listOfParameters = [key, json.dumps(self.data[key])]
self.nsmClient.send(path, listOfParameters, host=senderHost, port=senderPort) self.nsmClient.send(path, listOfParameters, host=senderHost, port=senderPort)
else: else:
@ -272,7 +272,7 @@ class DataClient(object):
logger.error(f"""{absoluteJsonFilePath} was saved with {result["version"]} but we need {VERSION}""") logger.error(f"""{absoluteJsonFilePath} was saved with {result["version"]} but we need {VERSION}""")
sysexit() sysexit()
else: else:
logger.error(f"""Error. {absoluteJsonFilePath} not loaded. Not a sane argodejo/nsm-data file in json format""") logger.error(f"""Error. {absoluteJsonFilePath} not loaded. Not a sane agordejo/nsm-data file in json format""")
sysexit() sysexit()

1
tools/nsmservercontrol.py

@ -1 +0,0 @@
../engine/nsmservercontrol.py

1730
tools/nsmservercontrol.py

File diff suppressed because it is too large
Loading…
Cancel
Save