pax_global_header 0000666 0000000 0000000 00000000064 14170525676 0014527 g ustar 00root root 0000000 0000000 52 comment=830a432d7754c7b30838af83950604d364bd3bcd
RaySession-0.12.2/ 0000775 0000000 0000000 00000000000 14170525676 0013710 5 ustar 00root root 0000000 0000000 RaySession-0.12.2/.github/ 0000775 0000000 0000000 00000000000 14170525676 0015250 5 ustar 00root root 0000000 0000000 RaySession-0.12.2/.github/FUNDING.yml 0000664 0000000 0000000 00000000027 14170525676 0017064 0 ustar 00root root 0000000 0000000 liberapay: Houston4444
RaySession-0.12.2/.gitignore 0000664 0000000 0000000 00000000542 14170525676 0015701 0 ustar 00root root 0000000 0000000 #ignore hidden files except git and github
/.*
!/.github
!/.git
#UI builds
/src/gui/ui/*.py
/src/clients/proxy/ui_*.py
#resources qt build
/src/gui/resources_rc.py
/src/.*
/src/*/.*
/src/*/*/.*
#translations
/locale/*.qm
#python cache
/src/*/__pycache__/
/src/*/*/__pycache__/
# ignore kdevelop file
RaySession.kdev4
# ignore memo
memo_snapshots
RaySession-0.12.2/CHANGELOG 0000664 0000000 0000000 00000036403 14170525676 0015130 0 ustar 00root root 0000000 0000000 0.12.0 / 2021-1?-??
Features:
Add "Startup" dialog which let you open a recent session. This way, just lanch RaySession and press Enter to load the last session.
Add optional systray icon, activated only when a session is loaded, but user can also decide to use it always or never.
"Open Session" dialog largely improved, user can now see clients, notes and snapshots in the session to load. We can also see session folder size and date, and if session contains scripts. It is also now possible to rename, duplicate or save as template a not loaded session, or to load in the current session a client from another session.
add "long jack naming" checkbox in "add executable" dialog.
Add "utility scripts" to menubar:
convert an ardour session to a Ray session (containing this ardour session)
Convert the current session to the NSM file format
Convert Ray-Hack clients to NSM, for Jack-Mixer and Hydrogen
Add "recent sessions" to menubar and to systray icon.
Add "prevent overlap" default option, with this, when a box is moved on front of other ones, theses other boxes are moved elsewhere (near).
double click on patchbay box to show/hide optional-gui, if this box is recognized as a client box
Add 'Find a box' (Ctrl+F) filter bar, to highlight boxes matching with a given pattern
Add 'Find patchbay boxes' in client menu, it highlights boxes of the client (if recognized with their name)
Add box wrap button if box is fat.
Limit patchbay port width, truncking port name in the middle, the max width can be changed in canvas options dialog
Ports in portgroups can now be larger if their name requires that
Specific decorations for pipewire Monitor clients
ray_control: trashed_client remove_keep_files option added.
Add :monitor: NSM capability, a client can now be aware of other clients events.
Behavior changes:
Patchbay is now shown by default.
"Keep Focus while opening clients" option is now de-activated by default, its shortcut has been changed to Ctrl+H.
In patchbay, if zoom is lower than 40%, a mouse click and drag anywhere in a box moves this box.
Session file is now automatically saved in case of consequent changes: session renamed, client prefix changed, client definitely removed.
Sessions in a session directory are not listed anymore, mostly for faster listing.
Bug Fixes:
Display true client names if "use graceful names" canvas option is unchecked
Remove the vertical white line on the left, in fullscreen patchbay
No more possibility to see boxes with no ports
Fix connections moving with a delay in case of fast box move.
Fix too long or empty Midi-Bridge port names with pipewire option jack.filter_name=true
fix crashes with recent versions of python or python-qt
consider '/' as box title divisor only if it seems to be a client of session, and this way prevent some pipewire titles to be wrongly splitted
fix crashes because of recursives error while moving a patchbay box.
fix crash with Ray-Net (Network Session) save client template action
sooperlooper_nsm now follows given jack_client_name (with option, to prevent connections loses)
New Templates:
seq192
0.11.1 / 2021-08-27
Bug Fixes:
fix GUI crash when showing snapshots without config for info dialog
fix missing icons and applications infos in "Add Application" dialog under Fedora
fix patchbay context menu displayed at wrong place under Wayland
grey background for all QGroupBox, because some qt styles doesn't separate them from the rest of window (grrr...), and it becomes not understandable).
patchbay: ardour "physical_audio_input_monitor_enable" becomes "physical monitor" with graceful names enable, same for midi
Improvements:
Manual : style review and patchbay section added
Patchbay boxes allow 3 or 4 lines title, because PipeWire uses sometimes veryyyy long group names for hardware boxes
0.11.0 / 2021-08-05
The most important new feature in this release is the apparition of the JACK patchbay. You also can press Ctrl+J to show/hide the patchbay.
The patchbay has been forked from Carla, with some improvements.
For the moment, there are only 3 advantages to have the patchbay directly in RaySession's GUI
Boxes positions are memorized and replaced per session
Boxes have icons of the corresponding NSM client
of course: only one window for two things you generally need in a session
Note that :
The session frame is now "responsive design" to be reduced in width and allow more space to the patchbay.
messages were moved from the right to the bottom left (under the session frame)
The list below concerns the improvements of patchbay:
Most important probably: portgroups and stereo detection. Ports are automatically grouped into a portgroup if they seems to form a stereo pair. This allows faster connections, and also a more readable canvas, with less and less useless text. This improve has been proposed for PR to Carla. Portgroups can be also set by JACK metadatas, and without limitation of number of ports.
wrap/unwrap boxes: you can hide all ports of a box, very useful for big groups as Ardour or Hydrogen boxes. Hide what you don't need let's you see better what you need !
hardware boxes have specific decorations
Port order follows JACK metadata "port-order"
Boxes have their application icon if possible. Box header is a little higher, but it allows box to be consequently shorter in width in case group name is long.
connect menu by right click: by right click on a port, you can directly connect the port to any connectable port of the canvas. Connect a port doesn't close the context menu, so you can connect to many ports quickly. It also works for portgroups.
Clipboard: cut/copy connections of a port to another port, in port context menu. Also works for portgroups.
filter ports: by right click in the background, you can display only Audio ports, or only MIDI ports, or all ports of course.
when you click and drag to connect 2 ports, you also can connect with right click (while keeping left mouse button down), this way you can connect quickly one port to many others.
with click and drag on a port, you can also move to a port with same mode (input/output), it will cut and copy connections from the first port to the second one. To prevent wrong movements, it works only if the second port has no connections
Beziers connections lines have been reviewed to be more visible when the ports are close in abscissa and distant in ordinate
canvas option window is a tool dialog where options take effect on place
graceful names (default option): port names are shortened with custom rules, it doesn't uses JACK aliases. Allow boxes to be less large.
elastic canvas (default option): the scene is automatically resized to the contents, so the view is directly optimized when group is added or moved
option to group or not hardware A2J ports
Box moves are animated when they are moved to their session position, when the port type filter change, or when they are joined/splitted
Double-click anywhere in patchbay to toggle fullscreen patchbay
Regressions:
No option to use straight lines instead of bezier lines, I find it very ugly and unusable
No option to animate box apparition
No theme support, only color scheme
0.10.1 / 2021-02-04
Manual:
Add a complete online and offline manual accessible from the help tab of the menu bar. It opens RaySession's manual in your web browser.
Note that english is not my mother language, corrections are welcome.
Bug Fixes:
Client label is now grayed out when client is added stopped
Jack config memory script won't prevent anymore to load the session if ALSA device is set to 'none'
French translation fixes (thanks to Olivier Humbert)
New Template:
Rakarack-plus
0.10.0 / 2020-11-10
New Features:
Add option "Remember optional GUI states" which recalls the optional GUIs visibility state
Add Application dialog largely improved with access to all possible informations about the templates
Session Notes dialog where you can edit...session notes
'duplicate', 'save session as template' and 'rename session' moved to a menu at top left of the session frame
provide log files in ~/.config/RaySession/logs/
improve open session dialog behavior between filter bar and treelist
add "Make Reappear all hidden dialogs" action
add RayNet client protocol, which is used only for Network Sessions
change icon for optional GUI visible/hidden (shamelessly pricked idea at Agordejo)
ray_control : add_client_template not started option added
clients now remember their template origin
"save as template" button becomes "Update the Template" in save as template (session/client) dialog if template exists
Jack config script now saves all pulse2jack configurations, even the more complex ones
API change:
raysession's --session argument has been replaced with --start-session because --session was taken by Qt, -s still works fine
Bug Fixes:
Now translated in french for french speaking users out of France
Add all default Qt translations
raysession should connect to a running daemon without GUI, even after a GUI crash (GUI crash should not happen of course ;) )
ray_control start now start with the good session root if it is not the default one (~/Ray Sessions)
remove Hydrogen NSM template because RayHack template is safer for now
Sequencer64 template has a -m option to work fine with JACK connections
New Templates:
Xtuner
Mamba
0.9.2 / 2020-08-01
Bug Fix:
Strong: Fix empty client templates list if there was no user client template
0.9.1 / 2020-07-21
Bug Fix:
Remove a binary file added by error to source code
0.9.0 / 2020-07-16
New Features:
CLI: Control allmost all GUI actions and more with the CLI ray_control.
Session scripts: allow user to edit shell scripts at session load, save and close.
JACK config session script: script that saves and recalls the JACK configuration for the session.
Add this from session templates in "New Session" window.
RayHack: New client protocol which is an alternative to ray-proxy.
This allows to launch directly the process and to edit its properties even if process is stopped.
I know this feature will be considered as heretic by someones, this is not strong, I know it doesn't changes things too much.
Factory client templates are installed in /etc/xdg/raysession to allow packagers to add some templates.
Get client label, icon and description from their .desktop file.
Subfolder combobox removed in New Session Dialog
Daemon option "Save from client" has been removed. Please affect a global keyboard shortcut (Meta+Ctrl+S) to ray_control save instead.
0.8.3 / 2019-11-25
This release fixes the link for src/bin/ray_control from absolute to relative path.
Sorry for the inconvenience.
0.8.2 / 2019-11-20
this new version is here to fix a big bug with snapshots.
If user name and user email were not mentioned to git, snapshot always failed with some versions of git.
Fix snapshot/git bug
Fix network session not working
Provide fallback icons for allmost all system icons
add little script 'ray_control', this way you can use 'ray_control save' to save your running session (and affect this to a global keyboard shortcut (eg, Meta+Ctrl+S)).
0.8.1 / 2019-10-23
Just a bug fix release. In v0.8.0 , first session creation failed (first session of the directory (e.g. ~/Ray Sessions/first session).
Ray Session has also been renamed to RaySession everywhere it was.
0.8.0 / 2019-10-15 Autumn Release.
This release contains many new features. Mainly the snapshot manager.
Snapshot manager (requires git): Take a snapshot at each session save. User can go back to a previous snapshot with the "rewind" button at the right of "executable" button. See "snapshots explain" file in code root for more info.
Proxy: Improve integration of non savable clients. Possibility to display a special save icon and prevent accidental close on RaySession in this case. Try to close gracefully client window is possible (requires wmctrl).
Favorites: User can quickly add a favorite template with "Favorites" button or with a right click below clients.
Add Application dialog: Now shows an "User" icon at right of each user template, click on it to remove this template. Click on favorite icon to add the template to favorites. Double click on template to launch it.
Open Session dialog: Now shows all session in a tree-view (if some sessions are under a sub-folder). Double-click on session to open it.
New Session Dialog: If some sessions are in a sub-folder, shows a sub-folder combo box for the new session.
Add Executable Dialog: Click on "Show More Options" to change Prefix or client_id. Useful to integrate in the session files made outside (for advanced users).
Client Properties Dialog: global re-design, edit line added to edit extensions ignored for snapshots.
add a donations Dialog
NSM Compatibility review: Possibility to launch a client externally with the environment variable NSM_URL, Absolute PATH are not allowed anymore when adding an executable. Integration of server-control NSM OSC messages which try to reproduce exact NSM behavior.
Bug Fix: fix prevent desktop session disconnection (on KDE and maybe other ones desktops).
0.7.2 / 2019-07-15
New Application Templates for OPNplug* and amsynth.
fix unsaved stop signal in ray-proxy
faster pid check for desktops memory
Thanks to jpcima for the OPNplug template pull request.
0.7.1 / 2019-01-16
Bug Fixes:
Fix bug with drag and drop client items. Clients order wasn't saved.
Fix untranslated proxy window.
Fix non removed stopped clients at session close.
Fix search of switchable clients if client executable or arguments have been recently modified
Now send hide_optional_gui to client only once "open" has been sent. This can now makes some window flashes but it did make crash some softwares as Patroneo and Fluajho.
New Templates:
Add Patroneo and Fluajho templates to Factory
0.7.0 / 2019-01-07
New features:
New Option (activated by default): provide bookmark (shortcut) of the session folder for gtk2, gtk3, qt4, qt5, fltk and kde5 file pickers.
New Option: Desktops Memory (requires wmctrl). If activated, clients windows will be moved to the given desktop when session is ready, or when a client is ready. It may not works depending on your D.E.
Edit executable and arguments in client properties window. Arguments are supposed to be not supported by NSM. Sometimes it works and it can be useful.
option -s to load session at startup
ray-proxy: new option "wait window for reply" (requires wmctrl)
sooperlooper_nsm: option to pause and trig with jack_transport events (play/pause)
new factory templates for ADLplug, Petri-Foo, Shuriken, Sequencer64 and SooperLooper +Transport
RaySession-0.12.2/COPYING 0000664 0000000 0000000 00000035564 14170525676 0014760 0 ustar 00root root 0000000 0000000 GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
RaySession-0.12.2/INSTALL.md 0000664 0000000 0000000 00000002215 14170525676 0015340 0 ustar 00root root 0000000 0000000 # --- INSTALL for RAYSESSION ---
Before installing, please uninstall any existing RaySession installation:
`$ [sudo] make uninstall`
To install RaySession, simply run as usual:
`$ make`
`$ [sudo] make install`
depending of the distribution you'll need to use LRELEASE variable to install.
If you don't have 'lrelease' executable but 'lrelease-qt5' use:
`$ make LRELEASE=lrelease-qt5`
`$ [sudo] make install`
You can run RaySession without install, by using instead:
`$ make`
`$ ./src/bin/raysession`
Packagers can make use of the 'PREFIX' and 'DESTDIR' variable during install, like this:
`$ make install PREFIX=/usr DESTDIR=./test-dir`
To uninstall RaySession, run:
`$ [sudo] make uninstall`
===== BUILD DEPENDENCIES =====
--------------------------------
The required build dependencies are: (devel packages of these)
- PyQt5
- Qt5 dev tools
- qtchooser
On Debian and Ubuntu, use these commands to install all build dependencies:
`$ sudo apt-get install python3-pyqt5 pyqt5-dev-tools qtchooser qttools5-dev-tools`
To run it, you'll additionally need:
- python3-liblo
- pyxdg
RaySession-0.12.2/Makefile 0000664 0000000 0000000 00000020430 14170525676 0015347 0 ustar 00root root 0000000 0000000 #!/usr/bin/make -f
# Makefile for RaySession #
# ---------------------- #
# Created by houston4444
#
PREFIX ?= /usr/local
DESTDIR =
DEST_RAY := $(DESTDIR)$(PREFIX)/share/raysession
LINK = ln -s -f
PYUIC := pyuic5
PYRCC := pyrcc5
LRELEASE := lrelease
ifeq (, $(shell which $(LRELEASE)))
LRELEASE := lrelease-qt5
endif
ifeq (, $(shell which $(LRELEASE)))
LRELEASE := lrelease-qt4
endif
PYTHON := python3
ifeq (, $(shell which $(PYTHON)))
PYTHON := python
endif
# -----------------------------------------------------------------------------------------------------------------------------------------
all: RES UI LOCALE
# -----------------------------------------------------------------------------------------------------------------------------------------
# Resources
RES: src/gui/resources_rc.py
src/gui/resources_rc.py: resources/resources.qrc
$(PYRCC) $< -o $@
# -----------------------------------------------------------------------------------------------------------------------------------------
# UI code
UI: mkdir_ui raysession ray_proxy
mkdir_ui:
@if ! [ -e src/gui/ui ];then mkdir -p src/gui/ui; fi
raysession: src/gui/ui/abort_copy.py \
src/gui/ui/abort_session.py \
src/gui/ui/about_raysession.py \
src/gui/ui/add_application.py \
src/gui/ui/ardour_convert.py \
src/gui/ui/canvas_options.py \
src/gui/ui/canvas_port_info.py \
src/gui/ui/client_properties.py \
src/gui/ui/client_rename.py \
src/gui/ui/client_slot.py \
src/gui/ui/client_trash.py \
src/gui/ui/donations.py \
src/gui/ui/daemon_url.py \
src/gui/ui/error_dialog.py \
src/gui/ui/filter_frame.py \
src/gui/ui/hydro_rh_nsm.py \
src/gui/ui/jack_config_info.py \
src/gui/ui/list_snapshots.py \
src/gui/ui/new_executable.py \
src/gui/ui/new_session.py \
src/gui/ui/nsm_properties.py \
src/gui/ui/ray_hack_copy.py \
src/gui/ui/nsm_open_info.py \
src/gui/ui/open_session.py \
src/gui/ui/patchbay_tools.py \
src/gui/ui/preview_client_slot.py \
src/gui/ui/quit_app.py \
src/gui/ui/ray_hack_properties.py \
src/gui/ui/ray_net_properties.py \
src/gui/ui/ray_to_nsm.py \
src/gui/ui/raysession.py \
src/gui/ui/remove_template.py \
src/gui/ui/save_template_session.py \
src/gui/ui/session_scripts_info.py \
src/gui/ui/script_info.py \
src/gui/ui/script_user_action.py \
src/gui/ui/session_notes.py \
src/gui/ui/snapshot_name.py \
src/gui/ui/snapshots_info.py \
src/gui/ui/snapshot_progress.py \
src/gui/ui/startup_dialog.py \
src/gui/ui/systray_close.py \
src/gui/ui/systray_management.py \
src/gui/ui/stop_client.py \
src/gui/ui/stop_client_no_save.py \
src/gui/ui/template_slot.py \
src/gui/ui/waiting_close_user.py
src/gui/ui/%.py: resources/ui/%.ui
$(PYUIC) $< -o $@
ray_proxy: src/clients/proxy/ui_proxy_copy.py \
src/clients/proxy/ui_proxy_gui.py
src/clients/proxy/ui_%.py: resources/ui/%.ui
$(PYUIC) $< -o $@
PY_CACHE:
$(PYTHON) -m compileall src/
# -----------------------------------------------------------------------------------------------------------------------------------------
# # Translations Files
LOCALE: locale
locale: locale/raysession_en.qm locale/raysession_fr.qm
locale/%.qm: locale/%.ts
$(LRELEASE) $< -qm $@
# -----------------------------------------------------------------------------------------------------------------------------------------
clean:
rm -f *~ src/*~ src/*.pyc src/clients/proxy/ui_*.py \
src/gui/resources_rc.py locale/*.qm
rm -f -R src/gui/ui
rm -f -R src/__pycache__ src/*/__pycache__ src/*/*/__pycache__
# -----------------------------------------------------------------------------------------------------------------------------------------
debug:
$(MAKE) DEBUG=true
# -----------------------------------------------------------------------------------------------------------------------------------------
install:
# Create directories
install -d $(DESTDIR)$(PREFIX)/bin/
install -d $(DESTDIR)$(PREFIX)/share/applications/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/24x24/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/32x32/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/96x96/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
install -d $(DEST_RAY)/
install -d $(DEST_RAY)/locale/
install -d $(DESTDIR)/etc/xdg/
install -d $(DESTDIR)/etc/xdg/raysession/
install -d $(DESTDIR)/etc/xdg/raysession/client_templates/
# Copy Templates Factory
cp -r client_templates/40_ray_nsm $(DESTDIR)/etc/xdg/raysession/client_templates/
cp -r client_templates/60_ray_lash $(DESTDIR)/etc/xdg/raysession/client_templates/
cp -r client_templates $(DEST_RAY)/
cp -r session_templates $(DEST_RAY)/
cp -r session_scripts $(DEST_RAY)/
cp -r data $(DEST_RAY)/
# Copy Desktop Files
install -m 644 data/share/applications/*.desktop \
$(DESTDIR)$(PREFIX)/share/applications/
# Install icons
install -m 644 resources/16x16/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
install -m 644 resources/24x24/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/24x24/apps/
install -m 644 resources/32x32/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/32x32/apps/
install -m 644 resources/48x48/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
install -m 644 resources/48x48/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
install -m 644 resources/64x64/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/apps/
install -m 644 resources/96x96/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/96x96/apps/
install -m 644 resources/128x128/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
install -m 644 resources/256x256/raysession.png \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
# Install icons, scalable
install -m 644 resources/scalable/raysession.svg \
$(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
# Install main code
cp -r src $(DEST_RAY)/
$(LINK) $(DEST_RAY)/src/bin/ray-jack_checker_daemon $(DESTDIR)$(PREFIX)/bin/
$(LINK) $(DEST_RAY)/src/bin/ray-jack_config_script $(DESTDIR)$(PREFIX)/bin/
$(LINK) $(DEST_RAY)/src/bin/ray-pulse2jack $(DESTDIR)$(PREFIX)/bin/
$(LINK) $(DEST_RAY)/src/bin/ray_git $(DESTDIR)$(PREFIX)/bin/
# compile python files
$(PYTHON) -m compileall $(DEST_RAY)/src/
# install local manual
cp -r manual $(DEST_RAY)/
# install utility-scripts
cp -r utility-scripts $(DEST_RAY)/
# install main bash scripts to bin
install -m 755 data/raysession $(DESTDIR)$(PREFIX)/bin/
install -m 755 data/ray-daemon $(DESTDIR)$(PREFIX)/bin/
install -m 755 data/ray_control $(DESTDIR)$(PREFIX)/bin/
install -m 755 data/ray-proxy $(DESTDIR)$(PREFIX)/bin/
# modify PREFIX in main bash scripts
sed -i "s?X-PREFIX-X?$(PREFIX)?" \
$(DESTDIR)$(PREFIX)/bin/raysession \
$(DESTDIR)$(PREFIX)/bin/ray-daemon \
$(DESTDIR)$(PREFIX)/bin/ray_control \
$(DESTDIR)$(PREFIX)/bin/ray-proxy
# Install Translations
install -m 644 locale/*.qm $(DEST_RAY)/locale/
-----------------------------------------------------------------------------------------------------------------------------------------
uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/raysession
rm -f $(DESTDIR)$(PREFIX)/bin/ray-daemon
rm -f $(DESTDIR)$(PREFIX)/bin/ray-proxy
rm -f $(DESTDIR)$(PREFIX)/bin/ray-jack_checker_daemon
rm -f $(DESTDIR)$(PREFIX)/bin/ray-jack_config_script
rm -f $(DESTDIR)$(PREFIX)/bin/ray-pulse2jack
rm -f $(DESTDIR)$(PREFIX)/bin/ray_control
rm -f $(DESTDIR)$(PREFIX)/bin/ray_git
rm -f $(DESTDIR)$(PREFIX)/share/applications/raysession.desktop
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/raysession.png
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/raysession.svg
rm -rf $(DESTDIR)/etc/xdg/raysession/client_templates/40_ray_nsm
rm -rf $(DESTDIR)/etc/xdg/raysession/client_templates/60_ray_lash
rm -rf $(DEST_RAY)
RaySession-0.12.2/README.md 0000664 0000000 0000000 00000004306 14170525676 0015172 0 ustar 00root root 0000000 0000000 #  RaySession
What is RaySession ?
---------------------

RaySession is a GNU/Linux session manager for audio programs such as Ardour, Carla, QTractor, Guitarix, Patroneo, Jack Mixer, etc...
The principle is to load together audio programs, then be able to save or close all documents together.
Its main purpose is to manage NSM compatible programs, but it also helps for other programs.
it benefits from a nice patchbay, a [complete manual](https://raysession.tuxfamily.org/en/manual) as well as a splendid [web site](https://raysession.tuxfamily.org) .
An integrated client can save and restore JACK connections.
Except this, RaySession doesn't deals with JACK, the recommended user behavior is to use it when JACK is already started.
Features
---------------------
* Load many programs together and remember their documents and jack connections in an unified folder
* Nice patchbay with stereo connections, wrappable boxes and a search tool
* Snapshot at each save (optional), then you can go back to the snapshot (it uses `git`)
* Save client as template, and then restore it easily
* Save session as template
* Make almost all actions and get several informations with the CLI named `ray_control`
* Script sessions and clients actions with shell scripts
* Remember and recall JACK configuration with the jack_config session scripts
* Having sub-sessions working through the network with the "Network Session" template
* Remember the virtual desktop of the programs (requires `wmctrl`, doesn't works with Wayland)
* Bookmark the current session folder in your file manager and file pickers (gtk, kde, qt, fltk)
* Many others...

You can see documentation on NSM protocol at: https://linuxaudio.github.io/new-session-manager/api/index.html
RaySession is being developed by Mathieu Picot (houston4444), using Python3 and Qt5.
RaySession-0.12.2/RaySession.kdev4 0000664 0000000 0000000 00000000115 14170525676 0016743 0 ustar 00root root 0000000 0000000 [Project]
CreatedFrom=Makefile
Manager=KDevCustomMakeManager
Name=RaySession
RaySession-0.12.2/TODO 0000664 0000000 0000000 00000001557 14170525676 0014410 0 ustar 00root root 0000000 0000000 client noSavelLevel gardé comme ça pour l'instant parce client.no_save_level existe
-> Déprecier no_save_level de l'exterieur, uniquement en RayHack
afficher le sous dossier -> preview ; session en cours
Display server address in window title (network session).
Icons with multiple possibilities ???
Start/Stop all clients f
ray_control doc /ray/server/clear_client_templates_database
Patchbay:
Code linting
Custom Theming
Right click to wrap/unwrap box while connecting
Fix other box moving too far after join
Zones (far future) ?
PW video ports ?
Damn connections (with ray-jackpatch)
generic icon for client
set client id in add application dialog
list ardour templates and select a template in add_application dialog for Ardour templates
select client and patchbay boxes together (click another time to select another box)
Forget connections of removed client
RaySession-0.12.2/TRANSLATORS 0000664 0000000 0000000 00000001104 14170525676 0015443 0 ustar 00root root 0000000 0000000 If you want to translate RaySession, you're welcome !
go to ./locale :
cd locale
copy file raysession_en_US.ts to raysession_xx_XX.ts
replace xx and XX with the letters of your language.
cp raysession_en_US.ts raysession_xx_XX.ts
open your .ts file with QLinguist, make your translations and publish.
in order to try it:
go to parent dir:
cd ..
open Makefile in a text editor
add raysession_xx_XX.qm to the Makefile (line 42)
save Makefile
then make:
make
RaySession-0.12.2/client_templates/ 0000775 0000000 0000000 00000000000 14170525676 0017244 5 ustar 00root root 0000000 0000000 RaySession-0.12.2/client_templates/40_ray_nsm/ 0000775 0000000 0000000 00000000000 14170525676 0021217 5 ustar 00root root 0000000 0000000 RaySession-0.12.2/client_templates/40_ray_nsm/client_templates.xml 0000664 0000000 0000000 00000011667 14170525676 0025310 0 ustar 00root root 0000000 0000000
Ri(>]&[Q8w{5tS?OTN7َ_m䘷ubE*`Q|;y,ȳuQ'nU&(xtxY Ocܡ?JN^;,^kyIBZhv pz^'eM"ڈLcH/y*$[B9FIE}_J%I*u8&@HL$R;&