RaySession-0.14.4/ 0000755 0001750 0001750 00000000000 14714437253 015305 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/data/ 0000755 0001750 0001750 00000000000 14714437243 016215 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/data/ray_control 0000644 0001750 0001750 00000000152 14714437243 020471 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
INSTALL_PREFIX="X-PREFIX-X"
exec "$INSTALL_PREFIX/share/raysession/src/bin/ray_control" "$@"
RaySession-0.14.4/data/ray-daemon 0000644 0001750 0001750 00000000151 14714437243 020171 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
INSTALL_PREFIX="X-PREFIX-X"
exec "$INSTALL_PREFIX/share/raysession/src/bin/ray-daemon" "$@"
RaySession-0.14.4/data/share/ 0000755 0001750 0001750 00000000000 14714437243 017317 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/data/share/applications/ 0000755 0001750 0001750 00000000000 14714437243 022005 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/data/share/applications/ray-alsapatch.desktop 0000644 0001750 0001750 00000000531 14714437243 026130 0 ustar houstonlzk5 houstonlzk5 [Desktop Entry]
Name=Jack Connections
Name[fr]=Connexions ALSA
Comment=Stores and reconnects ALSA MIDI patch connections
Comment[fr]=Mémorise et reconnecte les connexions ALSA MIDI dans la baie de brassage
Exec=ray-alsapatch
Terminal=false
Type=Application
Icon=curve-connector
StartupNotify=false
NoDisplay=true
Hidden=true
Categories=System;
RaySession-0.14.4/data/share/applications/ray-jack_checker.desktop 0000644 0001750 0001750 00000000522 14714437243 026564 0 ustar houstonlzk5 houstonlzk5 [Desktop Entry]
Name=Ray Jack Checker
Name[fr]=Contremaître de JACK
Comment=Daemon that monitors JACK configuration
Comment[fr]=Démon qui surveille de la configuration de JACK
Exec=ray-jack_checker_daemon --force-reliable
Terminal=false
Type=Application
Icon=raysession
StartupNotify=false
NoDisplay=true
Hidden=true
Categories=System;
RaySession-0.14.4/data/share/applications/raysession.desktop 0000644 0001750 0001750 00000000341 14714437243 025575 0 ustar houstonlzk5 houstonlzk5 [Desktop Entry]
Name=RaySession
GenericName=RaySession
Comment=Audio Session Manager
Comment[fr]=Gestionnaire de sessions audios
Exec=raysession
Icon=raysession
Terminal=false
Type=Application
Categories=AudioVideo;Audio;Qt;
RaySession-0.14.4/data/share/applications/ray-jackpatch.desktop 0000644 0001750 0001750 00000000520 14714437243 026116 0 ustar houstonlzk5 houstonlzk5 [Desktop Entry]
Name=Jack Connections
Name[fr]=Connexions JACK
Comment=Stores and reconnects JACK patch connections
Comment[fr]=Mémorise et reconnecte les connexions de la baie de brassage de JACK
Exec=ray-jackpatch
Terminal=false
Type=Application
Icon=curve-connector
StartupNotify=false
NoDisplay=true
Hidden=true
Categories=System;
RaySession-0.14.4/data/share/applications/ray-network.desktop 0000644 0001750 0001750 00000000501 14714437243 025656 0 ustar houstonlzk5 houstonlzk5 [Desktop Entry]
Name=Network Session
Name[fr]=Session réseau
Comment=Manage a ray session working on another machine
Comment[fr]=Gère une session ray fonctionnant sur une autre machine
Exec=ray-network
Terminal=false
Type=Application
Icon=network-wired
StartupNotify=false
NoDisplay=true
Hidden=true
Categories=System;
RaySession-0.14.4/data/ray-proxy 0000644 0001750 0001750 00000000150 14714437243 020106 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
INSTALL_PREFIX="X-PREFIX-X"
exec "$INSTALL_PREFIX/share/raysession/src/bin/ray-proxy" "$@"
RaySession-0.14.4/data/raysession 0000644 0001750 0001750 00000000151 14714437243 020334 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
INSTALL_PREFIX="X-PREFIX-X"
exec "$INSTALL_PREFIX/share/raysession/src/bin/raysession" "$@"
RaySession-0.14.4/.github/ 0000755 0001750 0001750 00000000000 14714437243 016644 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/.github/FUNDING.yml 0000644 0001750 0001750 00000000027 14714437243 020460 0 ustar houstonlzk5 houstonlzk5 liberapay: Houston4444
RaySession-0.14.4/utility-scripts/ 0000755 0001750 0001750 00000000000 14714437243 020474 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/utility-scripts/ardour_from_external_to_session.sh 0000755 0001750 0001750 00000006420 14714437243 027523 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
# pass as argument to this script a *.ardour session file or an ardour session dir
# if it has been made with ardour not launched from RaySession.
# It will create (or load) a RaySession session with the same name
# and move (or copy) the ardour session files to the new RaySession session
executable=ardour
if [[ "$1" == "--executable" ]];then
shift
executable="$1"
shift
fi
current_session=false
if [[ "$1" == "--current-session" ]];then
shift
current_session=true
session_path=$(ray_control get_session_path)
if [ -z "$session_path" ];then
echo "option --current-session without running Ray session, abort."
exit 7
fi
fi
if [ -f "$1" ] && [[ "$1" =~ ".ardour"$ ]];then
# argument is a file and an ardour session
ardour_session_dir=`dirname "$1"`
ardour_session_name=`basename "$ardour_session_dir"`
if ! [ -f "$ardour_session_dir/$ardour_session_name.ardour" ];then
# argument is not the main ardour snapshot of the session
# moves it to be the main
if ! mv "$1" "$ardour_session_dir/$ardour_session_name.ardour";then
echo "$1 is not the main snapshot of the session, and it can't be moved to. abort."
exit 6
fi
fi
else
ardour_session_dir="$1"
[ -z "$1" ] && ardour_session_dir="$PWD"
ardour_session_name=`basename "$ardour_session_dir"`
if ! [ -f "$ardour_session_dir/$ardour_session_name.ardour" ];then
echo "$ardour_session_dir/$ardour_session_name.ardour doesn't exists."
echo "It means it is probably not an ardour session. abort."
exit 1
fi
fi
if ! $current_session;then
if ! ray_control start;then
echo "can not start ray_control. abort."
exit 2
fi
ray_root=`ray_control get_root`
if ! ray_control open_session_off "$ardour_session_name";then
echo "impossible to load $ardour_session_name with RaySession. abort."
exit 3
fi
ray_control add_factory_client_template "JACK Connections"
session_path="$ray_root/$ardour_session_name"
fi
if $current_session;then
client_id=`ray_control add_executable $executable "prefix:$ardour_session_name" not_start`
else
client_id=`ray_control add_executable $executable not_start`
fi
if [ -z "$client_id" ];then
echo "impossible to add $executable to session $ardour_session_name. abort."
exit 4
fi
echo "client_id:$client_id"
# check if we move or copy the ardour session folder
# if session is on the same partition than RaySession root folder -> move, else copy
move_or_copy=mv
[[ `stat -c '%d' "$ardour_session_dir"` == `stat -c '%d' "$ray_root"` ]] || move_or_copy="cp -R -v"
new_ardour_session_dir="$session_path/$ardour_session_name.$client_id"
if [[ "$move_or_copy" == mv ]];then
echo -n "moving "
else
echo -n "copying "
fi
echo "$ardour_session_dir to $new_ardour_session_dir"
$move_or_copy "$ardour_session_dir" "$new_ardour_session_dir"
if ! mv "$new_ardour_session_dir/interchange/$ardour_session_name" \
"$new_ardour_session_dir/interchange/$ardour_session_name.$client_id";then
# file copy/move failed. abort
ray_control client $client_id trash
exit 5
fi
echo "Done. Open RaySession if not done and start the ardour client to start the ardour session."
exit 0
RaySession-0.14.4/utility-scripts/a2j_non_unique.py 0000755 0001750 0001750 00000007503 14714437243 023772 0 ustar houstonlzk5 houstonlzk5 #!/usr/bin/python3
# run this script if you were using a2j bridge with unique port names
# (aka port name including the ALSA client ID)
# and you now use a2j bridge without unique port names.
# The script parse all sessions and modify all RAY-JACKPATCH xml files
# directly present in the session folder.
# for example:
# a2j:USB Keystation 61es [24] (capture): USB Keystation 61es MIDI 1
# will become :
# a2j:USB Keystation 61es (capture): USB Keystation 61es MIDI 1
# in all RAY-JACKPATCH files.
import xml.etree.ElementTree as ET
from typing import Iterator, Optional
import subprocess
import os
def ray_control(*args: list[str]) -> Optional[str]:
process: subprocess.CompletedProcess[bytes] = subprocess.run(
['ray_control', *args], capture_output=True)
stdout_bytes = process.stdout
if stdout_bytes is None:
print('ray_control', ' '.join(args), 'returns empty output')
return None
stdout_str = stdout_bytes.decode()
if stdout_str.endswith('\n'):
stdout_str = stdout_str[:-1]
return stdout_str
def modify_file(file_path: str) -> bool:
try:
tree = ET.parse(file_path)
except BaseException as e:
print(e)
return False
root = tree.getroot()
if root.tag != 'RAY-JACKPATCH':
print(f"{file_path} is not a RAY-JACKPATCH xml file")
return False
# prepare avoid duplicated connections
reworked_conns = set[tuple[str, str]]()
childs_to_remove = list[ET.Element]()
file_worked = False
for child in root:
if child.tag == 'connection':
port_from: str = child.attrib.get('from')
port_to: str = child.attrib.get('to')
conn_worked = False
if port_from.startswith('a2j:') and '] (capture): ' in port_from:
prefix, ch, suffix = port_from.partition('] (capture): ')
while prefix and prefix[-1].isdigit():
prefix = prefix[:-1]
if prefix.endswith('['):
prefix = prefix[:-1]
conn_worked = True
child.attrib['from'] = f"{prefix}(capture): {suffix}"
if port_to.startswith('a2j:') and '] (playback): ' in port_to:
prefix, ch, suffix = port_to.partition('] (playback): ')
while prefix and prefix[-1].isdigit():
prefix = prefix[:-1]
if prefix.endswith('['):
prefix = prefix[:-1]
conn_worked = True
child.attrib['to'] = f"{prefix}(playback): {suffix}"
if ((child.attrib.get('from'), child.attrib.get('to'))
in reworked_conns):
childs_to_remove.append(child)
if conn_worked:
reworked_conns.add(
(child.attrib.get('from'), child.attrib.get('to')))
file_worked = True
if not file_worked:
print('nothing to do in', file_path)
return False
for child in childs_to_remove:
root.remove(child)
print('modifying', file_path)
tree = ET.ElementTree(root)
try:
tree.write(file_path)
except Exception as e:
print(e)
return False
return True
def list_patch_files() -> Iterator[str]:
session_root = ray_control('get_root')
all_sessions = ray_control('list_sessions')
for session_name in all_sessions.splitlines():
session_dir = f"{session_root}/{session_name}"
for xml_file in os.listdir(session_dir):
if xml_file.endswith('.xml'):
if xml_file == 'raysession.xml':
continue
yield f"{session_dir}/{xml_file}"
if __name__ == '__main__':
for patchfile in list_patch_files():
modify_file(patchfile)
RaySession-0.14.4/utility-scripts/clear_trash.sh 0000755 0001750 0001750 00000000324 14714437243 023321 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
ray_control get_session_path >/dev/null || exit 1
trashed_clients=`ray_control list_trashed_clients`
for trashed in $trashed_clients;do
ray_control trashed_client $trashed remove_definitely
done RaySession-0.14.4/utility-scripts/all_ray_hack_to_nsm_jack_mixer.sh 0000755 0001750 0001750 00000012306 14714437243 027221 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
jack_mixer_rh_to_nsm(){
# variables 'session' and 'client_id' have to be set
# session must be open
# current directory must be in session path
folder="${session##*/}.$client_id"
current_xml_file="$folder/${session##*/}.xml"
if ! [ -f "$current_xml_file" ];then
echo "$current_xml_file doesn't exists, skip"
return 1
fi
# here move .xml jack_mixer conf file to match with how jack_mixer works with NSM
if ! mv "$current_xml_file" "${session##*/}.$client_id.xml";then
echo " impossible to move $current_xml_file file, skip"
return 1
fi
# trash and remove jack_mixer Ray-Hack client
ray_control client $client_id trash
ray_control trashed_client $client_id remove_keep_files
# add the new jack_mixer NSM client
ray_control add_executable $executable client_id:$client_id not_start
}
# check what to do with arguments
convert_current_session=false
convert_sessions=false
convert_client_templates=false
convert_session_templates=false
for arg in "$@";do
[[ "$arg" == sessions ]] && convert_sessions=true
[[ "$arg" == client_templates ]] && convert_client_templates=true
[[ "$arg" == session_templates ]] && convert_session_templates=true
done
if ! ($convert_sessions || $convert_client_templates || $convert_session_templates);then
convert_current_session=true
fi
executable=jack_mixer
config_file="\$RAY_SESSION_NAME.xml"
arguments="-c \"\$CONFIG_FILE\""
list_filters[0]="executable:$executable"
list_filters[1]="protocol:Ray-Hack"
list_filters[2]="prefix_mode:2"
list_filters[3]="config_file:$config_file"
list_filters[4]="arguments:$arguments"
# check if jack_mixer factory template uses NSM
jack_mixer_nsm_templates=$(ray_control list_factory_client_templates executable:$executable protocol:NSM)
if [ -z "$jack_mixer_nsm_templates" ];then
echo "Your current $executable version seems to be too old to have correct NSM support."
exit 1
fi
# better to not use session_scripts and bookmark options
# for performance and security
# during the execution of this script
reput_session_scripts=false
reput_bookmarks=false
if ! $convert_current_session;then
# no need to unset session_scripts and bookmarks
# if we only work in the current session
# because, in this case, session will not be saved or closed
ray_control has_option session_scripts && reput_session_scripts=true
ray_control has_option bookmark_session_folder && reput_bookmarks=true
ray_control set_options not_session_scripts not_bookmark_session_folder
fi
if $convert_current_session;then
echo "proceed in the current session"
session=$(ray_control get_session_path)
if [ -z "$session" ];then
echo "no arguments, no running session, nothing to do !"
exit 1
fi
clients=$(ray_control list_clients "${list_filters[@]}")
if [ -z "$clients" ];then
echo "no matching client in the current session, nothing to do !"
exit 1
fi
cd "$session"
for client_id in $clients;do
echo " client:$client_id"
ray_control client $client_id stop
jack_mixer_rh_to_nsm
done
fi
if $convert_sessions;then
echo "proceed in all sessions"
IFS=$'\n'
for session in $(ray_control list_sessions);do
unset IFS
ray_control open_session_off "$session" 2>/dev/null
clients=$(ray_control list_clients "${list_filters[@]}")
if [ -z "$clients" ];then
ray_control abort 2>/dev/null
continue
fi
echo "treating session:$session"
cd "$(ray_control get_session_path)"
echo cd $PWD
for client_id in $clients;do
echo " client:$client_id"
jack_mixer_rh_to_nsm
done
done
ray_control close
fi
if $convert_client_templates;then
echo "proceed in all client templates"
IFS=$'\n'
for template in $(ray_control list_user_client_templates "${list_filters[@]}");do
unset IFS
session=$(mktemp -u)
ray_control open_session_off "$session"
cd "$session"
client_id=$(ray_control add_user_client_template "$template" not_start)
jack_mixer_rh_to_nsm
ray_control client $client_id save_as_template "$template"
ray_control abort
done
fi
if $convert_session_templates;then
echo "proceed in all session templates"
IFS=$'\n'
for session_template in $(ray_control list_session_templates);do
session=$(mktemp -u)
ray_control open_session_off "$session"
cd "$session"
echo cd $PWD
clients=$(ray_control list_clients "${list_filters[@]}")
if [ -z "$clients" ];then
ray_control abort 2>/dev/null
continue
fi
echo " treating session template:$session"
for client_id in $clients;do
echo " client:$client_id"
jack_mixer_rh_to_nsm
done
# save the session and update the template
ray_control save
ray_control save_as_template "$session_template"
ray_control abort
done
fi
$reput_session_scripts && ray_control set_options session_scripts
$reput_bookmarks && ray_control set_options bookmark_session_folder
RaySession-0.14.4/utility-scripts/hydro_from_proxy_to_nsm.sh 0000755 0001750 0001750 00000007361 14714437243 026032 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
# This script can be used to transform all hydrogen clients launched via proxy
# to clients launching directly hydrogen
# it applies this change to all sessions.
# This script works for Hydrogen but could not works for any client
# It depends on the way the client saves its files under NSM (in a folder..)
executable=hydrogen
if ! which ray_control >/dev/null;then
echo "ray_control is missing, abort."
exit 1
fi
all_sessions=`ray_control list_sessions`
ns=`echo "$all_sessions"|wc -l` #number of sessions
if [ -z "$all_sessions" ];then
echo "No sessions...quit."
exit 0
fi
# parse all sessions
for ((i=1; i<=$ns; i++));do
session=`echo "$all_sessions"|sed -n ${i}p`
# open session ('off' means -> without launching any client)
if ! ray_control open_session_off "$session";then
echo "failed to open session: $session"
continue
fi
session_name=$(ray_control get_session_name)
echo "treating session: $session"
# parse all proxy clients of the session
for client_id in `ray_control list_clients "executable:ray-proxy"`;do
proxy_properties=`ray_control client $client_id get_proxy_properties`
if ! echo "$proxy_properties"|grep ^"executable:$executable"$ >/dev/null;then
# executable in the proxy is not hydrogen, skip it.
echo " skipping client $client_id"
continue
fi
client_files=`ray_control client $client_id list_files`
if [ -z "$client_files" ] || [ -z "$proxy_properties" ];then
# No client files or error asking ray_control, skip.
echo " client untreated $client_id"
continue
fi
if [ `echo "$client_files"|wc -l` != 1 ];then
echo " client untreated $client_id"
echo " A proxy should only contains one directory. and no more files."
echo "$client_files"
continue
fi
echo " treating client $client_id"
# here config_file is the *.h2song file (hydrogen project).
config_file=$(echo "$proxy_properties" |grep ^"config_file:" |sed 's/^config_file://' \
|sed "s/\$RAY_SESSION_NAME/$session_name/g" \
|sed "s/\${RAY_SESSION_NAME}/$session_name/g")
proxy_dir="$client_files"
full_config_file="$proxy_dir/$config_file"
if ! [ -f "$full_config_file" ];then
echo " file $full_config_file doesn't exists"
continue
fi
config_file_short=`basename "$config_file"`
extension="${config_file_short##*.}" # should be h2song here.
config_file_base="${config_file_short%.*}" # the file name without .h2song
# change executable from ray-proxy to hydrogen
if ! ray_control client $client_id set_properties "executable:$executable";then
echo " abort for client $client_id. Impossible to change its executable."
continue
fi
# move *.h2song file to the wanted path
if ! mv "$full_config_file" "$proxy_dir.$extension";then
echo " Impossible to move $full_config_file to $proxydir.$extension. abort"
# move didn't work, so reset client executable to ray-proxy
ray_control client $client_id set_properties "executable:ray-proxy"
continue
fi
# remove proxy directory if it only contains ray-proxy.xml
if [[ `ls "$proxy_dir"` == 'ray-proxy.xml' ]];then
rm -R "$proxy_dir"
else
echo " $proxy_dir has not been removed because it still contains other files"
fi
done
done
RaySession-0.14.4/utility-scripts/rayproxy_to_rayhack.sh 0000755 0001750 0001750 00000010323 14714437243 025133 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
print_help(){
echo "usage: $1 arguments
where options can be
--help print this help
all_sessions convert ray-proxy clients to RayHack in all sessions
all_templates convert all ray-proxy templates to Ray-Hack
running_client CLIENT_ID
convert running CLIENT_ID to ray_hack if it is a ray-proxy
"
}
proxy_to_ray_hack(){
client_id="$1"
echo " treating $client_id"
c_project_path=$(ray_control client $client_id list_files)
proxy_properties=$(ray_control client $client_id get_proxy_properties)
# more than 1 path for this client, skip
[[ $(echo "$c_project_path"|wc -l) == "1" ]] || continue
# move the folder didn't work, skip
if ! mv "$c_project_path" "${c_project_path}__bak";then
echo "error while moving files, ignore it"
continue
fi
echo "trash $client_id"
ray_control client $client_id trash
echo "remove_definitely $client_id"
ray_control trashed_client $client_id remove_definitely
normal_lines=$(ray_control client $client_id get_properties|grep -e ^label: -e ^description: -e ^icon: -e ^desktop_file:)
exec_line=$(echo "$proxy_properties"|grep ^executable:)
good_lines=$(echo "$proxy_properties"|grep -e ^arguments: -e ^no_save_level:)
save_sig_line=$(echo "$proxy_properties"|grep ^save_signal:)
stop_sig_line=$(echo "$proxy_properties"|grep ^stop_signal:)
wait_win_line=$(echo "$proxy_properties"|grep ^wait_window:)
config_file_line=$(echo "$proxy_properties"|grep ^config_file:)
config_file="${config_file_line#*:}"
if [ -z "$config_file" ] && [[ "${save_sig_line#*:}" != "0" ]];then
config_file=anything
fi
# mmmh, on very old proxies, stop signal was always saved to SIGUSR1
stop_sig=${stop_sig_line#*:}
[[ "$stop_sig" == "10" ]] && stop_sig=15
new_client_id=$(ray_control add_executable "${exec_line#*:}" ray_hack not_start client_id:${client_id})
if [ -n "$new_client_id" ];then
echo "set properties of new client '$new_client_id'"
ray_control client $new_client_id set_properties "$good_lines
config_file:${config_file}
save_sig:${save_sig_line#*:}
stop_sig:$stop_sig
wait_win:${wait_win_line#*:}
$normal_lines"
rm -R "$c_project_path"
else
echo "Add executable failed, sorry, no more client"
fi
mv "${c_project_path}__bak" "$c_project_path"
}
all_sessions(){
IFS=$'\n'
for session in $(ray_control list_sessions);do
echo "____"
echo "session:"$session
ray_control open_session_off "$session" || continue
clients=$(ray_control list_clients executable:ray-proxy)
for client_id in $clients;do
proxy_to_ray_hack "$client_id"
done
done
ray_control save
}
all_templates(){
ray_control open_session_off $(mktemp -u)
IFS=$'\n'
for client_template in $(ray_control list_user_client_templates);do
echo " client_template:$client_template"
client_id=$(ray_control add_user_client_template "$client_template" not_start) || continue
echo " client_id:$client_id"
if ray_control client $client_id get_properties|grep ^executable:ray-proxy;then
echo " ray-proxy -> Ray-Hack"
proxy_to_ray_hack $client_id
echo " save as template $client_template"
ray_control client $client_id save_as_template "$client_template"
fi
ray_control client $client_id trash
ray_control trashed_client $client_id remove_definitely
done
}
argument=$1
shift
case $argument in
all_sessions|all_templates)
export RAY_CONTROL_PORT=$(ray_control start_new_hidden)
$argument
ray_control quit
;;
running_client)
client_id="$1"
[ -z "$client_id" ] && print_help && exit 1
echo -n "session_path:"
ray_control get_session_path || exit 1
if ! ray_control list_clients|grep ^$client_id$;then
echo "no client with $client_id client_id"
exit 1
fi
ray_control client "$client_id" stop
proxy_to_ray_hack "$client_id"
;;
--help )
print_help
;;
*)
print_help
exit 1
esac
RaySession-0.14.4/utility-scripts/all_ray_hack_to_nsm_hydrogen.sh 0000755 0001750 0001750 00000012252 14714437243 026724 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
hydro_rh_to_nsm(){
# variables 'session' and 'client_id' have to be set
# session must be open
# current directory must be in session path
folder="${session##*/}.$client_id"
current_hsong_file="$folder/${session##*/}.h2song"
if ! [ -f "$current_hsong_file" ];then
echo "$current_hsong_file doesn't exists, skip"
return 1
fi
# here rename h2song file to match with how hydrogen works with NSM
if ! mv "$folder/${session##*/}.h2song" "$folder/${session##*/}.$client_id.h2song";then
echo " impossible to rename h2song file, skip"
return 1
fi
# trash and remove hydrogen Ray-Hack client
ray_control client $client_id trash
ray_control trashed_client $client_id remove_keep_files
# add the new hydrogen NSM client
ray_control add_executable $executable client_id:$client_id not_start
}
# check what to do with arguments
convert_current_session=false
convert_sessions=false
convert_client_templates=false
convert_session_templates=false
for arg in "$@";do
[[ "$arg" == sessions ]] && convert_sessions=true
[[ "$arg" == client_templates ]] && convert_client_templates=true
[[ "$arg" == session_templates ]] && convert_session_templates=true
done
if ! ($convert_sessions || $convert_client_templates || $convert_session_templates);then
convert_current_session=true
fi
executable=hydrogen
config_file="\$RAY_SESSION_NAME.h2song"
arguments="-n -s \"\$CONFIG_FILE\""
list_filters[0]="executable:$executable"
list_filters[1]="protocol:Ray-Hack"
list_filters[2]="prefix_mode:2"
list_filters[3]="config_file:$config_file"
list_filters[4]="arguments:$arguments"
# check if hydrogen factory template uses NSM
hydro_nsm_templates=$(ray_control list_factory_client_templates executable:$executable protocol:NSM)
if [ -z "$hydro_nsm_templates" ];then
echo "Your current $executable version seems to be too old to have correct NSM support."
exit 1
fi
# better to not use session_scripts and bookmark options
# for performance and security
# during the execution of this script
reput_session_scripts=false
reput_bookmarks=false
if ! $convert_current_session;then
# no need to unset session_scripts and bookmarks
# if we only work in the current session
# because, in this case, session will not be saved or closed
ray_control has_option session_scripts && reput_session_scripts=true
ray_control has_option bookmark_session_folder && reput_bookmarks=true
ray_control set_options not_session_scripts not_bookmark_session_folder
fi
if $convert_current_session;then
echo "proceed in the current session"
session=$(ray_control get_session_path)
if [ -z "$session" ];then
echo "no arguments, no running session, nothing to do !"
exit 1
fi
clients=$(ray_control list_clients "${list_filters[@]}")
if [ -z "$clients" ];then
echo "no matching client in the current session, nothing to do !"
exit 1
fi
cd "$session"
for client_id in $clients;do
echo " client:$client_id"
ray_control client $client_id stop
hydro_rh_to_nsm
done
fi
if $convert_sessions;then
echo "proceed in all sessions"
IFS=$'\n'
for session in $(ray_control list_sessions);do
unset IFS
ray_control open_session_off "$session" 2>/dev/null
clients=$(ray_control list_clients "${list_filters[@]}")
if [ -z "$clients" ];then
ray_control abort 2>/dev/null
continue
fi
echo "treating session:$session"
cd "$(ray_control get_session_path)"
echo cd $PWD
for client_id in $clients;do
echo " client:$client_id"
hydro_rh_to_nsm
done
done
ray_control close
fi
if $convert_client_templates;then
echo "proceed in all client templates"
IFS=$'\n'
for template in $(ray_control list_user_client_templates "${list_filters[@]}");do
unset IFS
session=$(mktemp -u)
ray_control open_session_off "$session"
cd "$session"
client_id=$(ray_control add_user_client_template "$template" not_start)
hydro_rh_to_nsm
ray_control client $client_id save_as_template "$template"
ray_control abort
done
fi
if $convert_session_templates;then
echo "proceed in all session templates"
IFS=$'\n'
for session_template in $(ray_control list_session_templates);do
session=$(mktemp -u)
ray_control open_session_off "$session"
cd "$session"
echo cd $PWD
clients=$(ray_control list_clients "${list_filters[@]}")
if [ -z "$clients" ];then
ray_control abort 2>/dev/null
continue
fi
echo " treating session template:$session"
for client_id in $clients;do
echo " client:$client_id"
hydro_rh_to_nsm
done
# save the session and update the template
ray_control save
ray_control save_as_template "$session_template"
ray_control abort
done
fi
$reput_session_scripts && ray_control set_options session_scripts
$reput_bookmarks && ray_control set_options bookmark_session_folder
RaySession-0.14.4/utility-scripts/ardour5to6ray.sh 0000755 0001750 0001750 00000002440 14714437243 023561 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
# This script can be used to transform all ardour5 executables to ardour6
# in all sessions.
# If you want to use it for other executables,
# just change old_executable and new_executable values
old_executable=ardour5
new_executable=ardour6
if ! which ray_control >/dev/null;then
echo "ray_control is missing, abort."
exit 1
fi
all_sessions=`ray_control list_sessions`
ns=`echo "$all_sessions"|wc -l` #number of sessions
if [ -z "$all_sessions" ];then
echo "No sessions...quit."
exit 0
fi
# parse all sessions
for ((i=1; i<=$ns; i++));do
session=`echo "$all_sessions"|sed -n ${i}p`
# open session ('off' means -> without launching any client)
if ! ray_control open_session_off "$session";then
echo "failed to open session: $session"
continue
fi
echo "treating session: $session"
# parse all proxy clients of the session
for client_id in `ray_control list_clients "executable:$old_executable"`;do
# change executable from old_executable to new_executable
if ray_control client $client_id set_properties "executable:$new_executable";then
echo " done for $client_id."
else
echo " abort for client $client_id. Impossible to change its executable."
fi
done
done
RaySession-0.14.4/utility-scripts/session_ray_to_nsm.sh 0000755 0001750 0001750 00000013054 14714437243 024753 0 ustar houstonlzk5 houstonlzk5 #!/bin/bash
get_property(){
# $properties must be set before
line=$(echo "$properties"|grep -m 1 ^"$1:")
echo "${line#*:}"
}
# read arguments
replace_jackpatch=false
if [[ "$1" == '--replace-jackpatch' ]];then
replace_jackpatch=true
shift
fi
# we need to know the script dir to launch the python script
# that writes connections file
bash_dir=`realpath "$(dirname "${BASH_SOURCE[0]}")"`
# get the session to convert
# if no argument, the current session is chosen
session="$1"
if [ -z "$session" ];then
session=$(ray_control get_session_path)
if [ -z "$session" ];then
echo "No session loaded, nothing to do"
exit
fi
fi
# better to not use session_scripts and bookmark options
# for performance and security
# during the execution of this script
reput_session_scripts=false
reput_bookmarks=false
ray_control has_option session_scripts && reput_session_scripts=true
ray_control has_option bookmark_session_folder && reput_bookmarks=true
ray_control set_options not_session_scripts not_bookmark_session_folder
# close and re-open the session
# It prevents to have to save the session with clients off
ray_control close
ray_control open_session_off "$session"
ray_control take_snapshot "Just before NSM conversion"
cd "$(ray_control get_session_path)"
# in bash, init empty vars is unneeded, that is true ;)
nsm_file_contents=''
connections_file_old=''
connections_file_new=''
group_replaces=''
rayjackpatch_client_id=''
# list clients and operate on them
for client_id in $(ray_control list_clients);do
# change the client prefix to change their working directory
# and adapt it to the nsmd way: client_name.client_id
ray_control client $client_id change_prefix client_name
# read all needed client properties
properties=$(ray_control client "$client_id" get_properties)
executable=$(get_property executable)
client_name=$(get_property name)
protocol=$(get_property protocol)
jack_naming=$(get_property jack_naming)
jack_name=$(get_property jack_name)
case $protocol in
NSM)
if [[ "$executable" == ray-jackpatch ]];then
connections_file="$client_name.$client_id.xml"
rayjackpatch_client_id="$client_id"
continue
fi
nsm_file_contents+="$client_name:$executable:$client_id\n"
;;
Ray-Hack)
# we will adapt the Ray-Hack client with nsm-proxy
arguments=$(get_property arguments|sed 's/$RAY_JACK_CLIENT_NAME/$NSM_CLIENT_ID/g')
config_file=$(get_property config_file|sed "s/\$RAY_SESSION_NAME/${session_path##*/}/g")
save_sig=$(get_property save_sig)
stop_sig=$(get_property stop_sig)
label=$(get_property label)
# save the nsm-proxy config file contents
proxy_contents="executable
$executable
arguments
$arguments
config file
$config_file
save signal
$save_sig
stop signal
$stop_sig
label
$label
"
linkdir="NSM Proxy.$client_id"
if [ -d "$linkdir" ] && [ -L "$linkdir" ] && [[ "$(readlink "$linkdir")" == "$client_name.$client_id" ]];then
echo "$linkdir already linked, keep it"
echo "$proxy_contents" > "NSM Proxy.$client_id/nsm-proxy.config"
nsm_file_contents+="NSM Proxy:nsm-proxy:$client_id\n"
# link the NSM Proxy new directory to the Ray-Hack client dir
elif ln -s -r "$client_name.$client_id" "NSM Proxy.$client_id";then
echo "$proxy_contents" > "NSM Proxy.$client_id/nsm-proxy.config"
nsm_file_contents+="NSM Proxy:nsm-proxy:$client_id\n"
else
echo "impossible to link $client_name.$client_id to NSM Proxy.$client_id"
fi
;;
esac
if [[ "$jack_naming" != 1 ]];then
# the way to name JACK clients is different in RaySession and NSM
# in NSM, long JACK naming is used,
# JACK client is named this way: client_name.client_id
# in RS, by default it is only:
# client_name (+ _N) if client_id ends with digits
ray_control client $client_id set_properties jack_naming:1
# a long string with jack client names will be sent as argument to
# the python script which add new connections to the config file
group_replaces+="old_name:$jack_name
new_name:$client_name.$client_id
"
fi
done
jackpatch_id=nWASRAY
if $replace_jackpatch and [ -n "$rayjackpatch_client_id" ];then
# remove ray-jackpatch from session and replace it with jackpatch
ray_control client $rayjackpatch_client_id trash
ray_control add_executable jackpatch not_start client_id:$jackpatch_id prefix_mode:client_name
fi
if [ -n "$connections_file" ];then
# get the connections as written by the NSM jackpatch
# Note it will also update the ray-jackpatch file with new connections
conns=`"$bash_dir/connections_nsm_adapter.py" "$connections_file" "$group_replaces"`
if $replace_jackpatch;then
# write the jackpatch connections file and add jackpatch to the NSM session
echo "$conns" > JACKPatch.$jackpatch_id.jackpatch
nsm_file_contents="JACKPatch:jackpatch:$jackpatch_id
$nsm_file_contents"
fi
fi
# save and close session
# very important to save because client prefixes have been moved
ray_control close
# write the NSM session file
echo -e "$nsm_file_contents" > session.nsm
# reput options unset at the script start
$reput_session_scripts && ray_control set_options session_scripts
$reput_bookmarks && ray_control set_options bookmark_session_folder
echo "Done."
RaySession-0.14.4/utility-scripts/connections_nsm_adapter.py 0000755 0001750 0001750 00000010262 14714437243 025751 0 ustar houstonlzk5 houstonlzk5 #!/usr/bin/python3
import xml.etree.ElementTree as ET
import sys
READ_OFF = 0
READ_FILE_PATH = 1
READ_OLD_NAME = 2
READ_NEW_NAME = 3
READ_BIG_VAR = 4
def get_new_port_name(port:str, old_group:str, new_group:str)->str:
if port.startswith((old_group + ':', old_group + '/')):
return port.replace(old_group, new_group, 1)
if port.startswith((old_group + '.0/', old_group + '.0:')):
return port.replace(old_group + '.0', new_group, 1)
return ''
def main_process():
input_file_path = ''
read_mode = READ_FILE_PATH
all_groups = []
new_group = {'old_name': '', 'new_name': ''}
for arg in sys.argv[1:]:
if read_mode == READ_FILE_PATH:
input_file_path = arg
read_mode = READ_OFF
elif arg == '-g':
read_mode = READ_OLD_NAME
elif read_mode == READ_OLD_NAME:
new_group['old_name'] = arg
read_mode = READ_NEW_NAME
elif read_mode == READ_NEW_NAME:
new_group['new_name'] = arg
all_groups.append(new_group)
new_group = {'old_name': '', 'new_name': ''}
read_mode = READ_OFF
elif arg.startswith('old_name:'):
read_mode = READ_BIG_VAR
for line in arg.splitlines():
if line.startswith('old_name:'):
new_group['old_name'] = line.replace('old_name:', '', 1)
elif line.startswith('new_name:'):
new_group['new_name'] = line.replace('new_name:', '', 1)
all_groups.append(new_group)
new_group = {'old_name': '', 'new_name': ''}
read_mode = READ_OFF
if not input_file_path:
sys.stderr.write('no input file, nothing to do.\n')
sys.exit(1)
if read_mode != READ_OFF:
sys.stderr.write('malformed arguments\n')
sys.exit(1)
try:
tree = ET.parse(input_file_path)
except:
sys.stderr.write('fail to parse %s as a XML file\n' % input_file_path)
sys.exit(1)
jackpatch_lines = []
new_connections = []
root = tree.getroot()
if root.tag != "RAY-JACKPATCH":
sys.stderr.write('xml file %s is not a RAY-JACKPATCH file\n' % input_file_path)
sys.exit(1)
for child in root:
if child.tag != "connection":
continue
port_from = ''
port_to = ''
for key in child.attrib.keys():
if key == 'from':
port_from = child.attrib[key]
elif key == 'to':
port_to = child.attrib[key]
if port_from and port_to:
break
else:
continue
jackpatch_lines.append("%s |> %s" % (port_from, port_to))
new_port_from = ''
new_port_to = ''
for group in all_groups:
# get_new_port_name returns an empty string
# if port may not belong to old group
if not new_port_from:
new_port_from = get_new_port_name(
port_from, group['old_name'], group['new_name'])
if not new_port_to:
new_port_to = get_new_port_name(
port_to, group['old_name'], group['new_name'])
if new_port_from and new_port_to:
break
if new_port_from:
if new_port_to:
jackpatch_lines.append("%s |> %s" % (new_port_from, new_port_to))
new_connections.append({'from': new_port_from, 'to': new_port_to})
jackpatch_lines.append("%s |> %s" % (new_port_from, port_to))
new_connections.append({'from': new_port_from, 'to': port_to})
if new_port_to:
jackpatch_lines.append("%s |> %s" % (port_from, new_port_to))
new_connections.append({'from': port_from, 'to': new_port_to})
for con in new_connections:
new_conn_xml = ET.SubElement(root, 'connection')
new_conn_xml.attrib['from'] = con['from']
new_conn_xml.attrib['to'] = con['to']
print('\n'.join(jackpatch_lines))
tree.write(input_file_path)
if __name__ == '__main__':
main_process()
RaySession-0.14.4/INSTALL.md 0000644 0001750 0001750 00000003016 14714437243 016734 0 ustar houstonlzk5 houstonlzk5 # Preparing the source tree
If you just cloned the git repository, make sure you also
cloned the submodules, which you can do using:
$ git submodule update --init
# Building
## Build dependencies
The required build dependencies are: (devel packages of these)
- PyQt5
- Qt5 dev tools
- qtchooser
On Debian and Ubuntu, use these commands as root to install all build
dependencies:
apt-get install \
python3-pyqt5 pyqt5-dev-tools \
qtchooser qttools5-dev-tools
To build RaySession, simply run as usual:
make
Depending of the distribution you might need to use the LRELEASE variable
to build. If you don't have 'lrelease' executable but 'lrelease-qt5' use:
make LRELEASE=lrelease-qt5
# Installing
To install RaySession, simply run as usual:
make install
Packagers can make use of the 'PREFIX' and 'DESTDIR' variable during install,
like this:
make install PREFIX=/usr DESTDIR=./test-dir
# Uninstalling
To uninstall RaySession, run:
make uninstall
# Running
You can run RaySession without install, by using:
./src/bin/raysession
To run it, you'll additionally need:
- python3-liblo
- python3-pyqt5.qtsvg
On a debian-based operating system you can install them all using:
sudo apt install python3-liblo python3-pyqt5.qtsvg
IMPORTANT: since python 3.11, because pyliblo has been totally abandonned
by Dominic Sacre, for liblo you need to use the following fork:
https://github.com/gesellkammer/pyliblo3
Simply install it with:
python3 -m pip install pyliblo3
RaySession-0.14.4/resources/ 0000755 0001750 0001750 00000000000 14714437243 017316 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/resources/ui/ 0000755 0001750 0001750 00000000000 14714437243 017733 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/resources/ui/client_trash.ui 0000644 0001750 0001750 00000020416 14714437243 022754 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
333
311
Trashed client
-
-
QToolButton{border:none}
...
..
64
64
-
12
75
true
Prettier Name
-
true
Description
-
Qt::Horizontal
-
-
Client id
-
0
0
Executable
-
0
0
:
-
0
0
:
-
nsmid
-
Qt::Horizontal
40
20
-
executable
-
-
Qt::Horizontal
40
20
-
<html><head/><body><p>Get more informations on this trashed client.</p></body></html>
...
..
-
Qt::Horizontal
-
Qt::Vertical
20
40
-
<html><head/><body><p align="center">Do you want to restore this client in the session ?<br/>You can also definitely remove the client and its files.</p></body></html>
-
Qt::Vertical
20
40
-
-
<html><head/><body><p>Remove definitely the client and its files.</p></body></html>
Remove
..
-
<html><head/><body><p>Restore this client in current session.</p></body></html>
Restore Client
..
-
Cancel
..
FakeToolButton
QToolButton
pushButtonCancel
clicked()
Dialog
reject()
279
286
166
155
pushButtonRestore
clicked()
Dialog
accept()
166
286
166
155
RaySession-0.14.4/resources/ui/nsm_properties.ui 0000644 0001750 0001750 00000022154 14714437243 023347 0 ustar houstonlzk5 houstonlzk5
Frame
0
0
416
475
Frame
-
-
client_name
-
0
0
:
-
0
0
client_capabilities
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
0
0
Name
-
:
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
0
0
Capabilities
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
48
48
QToolButton{border:none}
...
../../../.designer/backup../../../.designer/backup
48
48
-
Qt::Vertical
20
40
-
-
-
9
true
<html><head/><body><p>Edit executable is strongly discouraged !<br/>It can be useful if you use many versions of a same software.<br/>Change it only if you are sure of what you are doing.</p></body></html>
-
Qt::Vertical
20
40
-
Executable :
-
-
Qt::Vertical
20
40
-
-
9
true
<html><head/><body><p>Arguments are supposed to not be supported by NSM protocol.<br/>In some cases it can works, but no warranty !</p></body></html>
-
Qt::Vertical
20
40
-
Arguments :
-
-
Qt::Vertical
20
40
-
-
Environment variables :
-
<html><head/><body><p>Set here the environment variables you want to set to the process, separate them with spaces.<br/><br/>for example :</p><pre style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Hack';">MY_VAR1=my_value MY_VAR2="other value"</span></pre></body></html>
-
Launch in a terminal
FakeToolButton
QToolButton
RaySession-0.14.4/resources/ui/daemon_url.ui 0000644 0001750 0001750 00000004211 14714437243 022415 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
289
146
Daemon URL
-
Qt::AlignCenter
-
ray-daemon url to connect to :
Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft
-
osc.udp://192.168.XX.XX:1234/
true
-
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/ardour_convert.ui 0000644 0001750 0001750 00000004557 14714437243 023341 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
400
378
Convert Ardour session to Ray
-
This script helps you to load an ardour session made with Ardour into a RaySession session.
For performance reasons, the ardour project will be moved (and not copied) to the session directory. This script seems to work well, but there is absolutely no warranty that some problems could appear, so it is advisable to backup your ardour session first.
In the future, think to always start Ardour from RaySession ! You can never be sure to not need another software, and auto snapshots can help you a lot.
Now let choose the Ardour session you want to convert to a Ray session.
true
-
Do not display this message again
-
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/open_session.ui 0000644 0001750 0001750 00000046542 14714437243 023011 0 ustar houstonlzk5 houstonlzk5
DialogOpenSession
Qt::NonModal
0
0
580
551
Open Session
false
-
0
0
0
0
0
-
Qt::Horizontal
6
false
-
-
-
Filter :
-
Qt::LeftToRight
Sort by dates
-
Qt::Vertical
QSizePolicy::Fixed
6
6
-
PreviewFrame{background-color: rgba(127, 127, 127, 35);border-radius:4px}
6
6
-
-
16
16
16
16
75
true
QLabel{color:green;background-color:black}
>_
-
0
0
16777215
16777215
0
-1
-
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
..
QToolButton::InstantPopup
-
-
QToolButton{border:none}
...
..
24
24
-
9
50
true
false
0 Mo
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
250
0
QTabWidget::Rounded
0
false
Clients
-
QFrame{border:none}
Notes
-
true
Snapshots
-
false
1
-
-
0
-
<html><head/><body><p><span style=" font-size:9pt; font-weight:600;">Sessions Folder :</span></p></body></html>
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
font-style : italic
/ho&me/user/Ray Sessions
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
Folder
..
-
Qt::Vertical
QSizePolicy::Fixed
20
10
-
2
-
-
0
0
true
Listing sessions
Qt::AlignCenter
-
0
0
Cancel
..
-
24
false
Qt::Horizontal
false
QProgressBar::BottomToTop
%p%
-
180
0
Qt::CustomContextMenu
0
false
false
false
4
true
20
20
false
Name
Notes
Scripts
Date
-
QLayout::SetMinimumSize
-
Save the current session
true
-
true
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
OpenSessionFilterBar
QLineEdit
PreviewFrame
QFrame
1
ListWidgetPreviewClients
QListWidget
list_widget_preview_clients
StackedSessionName
QStackedWidget
1
buttonBox
accepted()
DialogOpenSession
accept()
248
254
157
274
buttonBox
rejected()
DialogOpenSession
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/ray_hack_copy.ui 0000644 0001750 0001750 00000006110 14714437243 023103 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
459
145
Copy File ?
-
file is not in client working directory.
-
<html><head/><body><p>Do you want to copy this file to client working directory or to use directly this file ?</p></body></html>
-
-
Qt::Horizontal
40
20
-
Copy file and rename it with session name
Copy And Rename File
..
-
Copy File
..
-
Use This File
..
pushButtonCopy
clicked()
Dialog
accept()
288
118
229
72
pushButtonUseThisFile
clicked()
Dialog
reject()
395
118
229
72
RaySession-0.14.4/resources/ui/hydro_rh_nsm.ui 0000644 0001750 0001750 00000010637 14714437243 022774 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
318
349
Hydrogen NSM script
-
Qt::Vertical
20
40
-
<html><head/><body><p>This script converts all regular <span style=" font-weight:600;">Hydrogen<br/></span>Ray-Hack clients to the NSM protocol.</p><p>Where do you want the script to proceed:</p></body></html>
Qt::AlignCenter
false
-
Qt::Vertical
20
40
-
In the current session
-
Qt::Horizontal
-
In all sessions
true
-
In application templates
true
-
In session templates
true
-
Qt::Vertical
20
40
-
<html><head/><body><p><span style=" font-style:italic;">Note that you could lose some JACK connections,<br/>but it's still worth it.</span></p></body></html>
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/snapshot_progress.ui 0000644 0001750 0001750 00000007072 14714437243 024063 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
357
202
Abort Copy ?
-
-
Qt::Vertical
20
40
-
<html><head/><body><p>Snapshot process seems to be long.<br/>Maybe your session's folder contains too many new files<br/>whose extension is not ignored.</p><p>You can abort this snapshot,<br/>it will de-activate snapshots for this session.</p></body></html>
-
0
-
Qt::Vertical
20
40
-
-
Qt::Horizontal
40
20
-
Abort Snapshot
..
-
Cancel
..
pushButtonCancel
clicked()
Dialog
reject()
198
92
124
58
pushButtonAbort
clicked()
Dialog
accept()
98
92
124
58
RaySession-0.14.4/resources/ui/abort_session.ui 0000644 0001750 0001750 00000003776 14714437243 023161 0 ustar houstonlzk5 houstonlzk5
AbortSession
Qt::NonModal
0
0
342
72
Abort Session ?
false
-
<html><head/><body><p>Are you sure to want to abort session without saving ?</p></body></html>
Qt::AlignCenter
-
-
Abort
..
-
Cancel
..
pushButtonCancel
clicked()
AbortSession
reject()
326
120
187
79
RaySession-0.14.4/resources/ui/ray_net_properties.ui 0000644 0001750 0001750 00000021401 14714437243 024205 0 ustar houstonlzk5 houstonlzk5
Frame
0
0
510
437
Frame
-
-
-
48
48
QToolButton{border:none}
...
../../../.designer/backup../../../.designer/backup
48
48
-
Qt::Vertical
20
40
-
:
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
0
0
Name
-
0
0
:
-
0
0
Capabilities
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
0
0
client_capabilities
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
client_name
-
-
9
true
<html><head/><body><p>Edit the daemon URL only if you meet troubles !!!</p></body></html>
-
Qt::Vertical
20
40
-
Daemon URL :
-
-
-
Qt::Vertical
20
40
-
-
9
true
<html><head/><body><p>Here, sessions root folder is the sessions root folder used by the slave daemon.<br/>Edit it only if you have changed the sessions root folder<br/>used by the slave daemon.</p></body></html>
-
Qt::Vertical
20
40
-
Sessions root folder :
-
-
Qt::Vertical
20
40
-
<html><head/><body><p>Template session that will be used on the slave daemon if there is no existing session at the same path than the master one (relatively to their sessions root folder).</p><p>The templates used in network sessions are in a hidden folder of the sessions root folder.</p></body></html>
-
Template :
-
FakeToolButton
QToolButton
RaySession-0.14.4/resources/ui/save_template_session.ui 0000644 0001750 0001750 00000012352 14714437243 024671 0 ustar houstonlzk5 houstonlzk5
DialogSaveTemplateSession
Qt::NonModal
0
0
371
162
New Template
false
-
-
0
0
Session :
-
...
48
48
-
75
true
Client Label
-
Qt::Horizontal
-
Qt::Vertical
20
40
-
0
0
Session Template Name :
-
0
0
-
Qt::Vertical
20
40
-
QLayout::SetFixedSize
-
Qt::Horizontal
QSizePolicy::Expanding
40
20
-
0
0
Create Template
..
-
0
0
Cancel
..
FakeToolButton
QToolButton
pushButtonCancel
clicked()
DialogSaveTemplateSession
reject()
240
88
144
55
RaySession-0.14.4/resources/ui/startup_dialog.ui 0000644 0001750 0001750 00000015042 14714437243 023315 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
414
323
Previous session
-
-
Qt::Horizontal
-
0
0
:/main_icon/48x48/raysession.png
-
<html><head/><body><p>Welcome to <span style=" font-weight:600;">RaySession</span> !</p></body></html>
-
Qt::Horizontal
-
Qt::Vertical
QSizePolicy::MinimumExpanding
20
20
-
-
-
Qt::Vertical
20
40
-
New session
..
-
Open session
..
-
Qt::Vertical
20
40
-
-
Do you want to load this previous session ?
-
0
50
QListView::Fixed
true
-
Qt::Vertical
QSizePolicy::MinimumExpanding
20
20
-
-
Display at startup
true
-
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
StartupDialogButtonBox
QDialogButtonBox
StartupDialogPushButtonNew
QPushButton
StartupDialogPushButtonOpen
QPushButton
buttonBox
accepted()
Dialog
accept()
134
272
134
147
buttonBox
rejected()
Dialog
reject()
134
272
134
147
RaySession-0.14.4/resources/ui/raysession.ui 0000644 0001750 0001750 00000167530 14714437243 022505 0 ustar houstonlzk5 houstonlzk5
MainWindow
0
0
1126
723
0
0
Qt::CustomContextMenu
RaySession
true
QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::VerticalTabs
true
0
0
16777215
16777215
0
0
0
0
0
-
Qt::Horizontal
0
true
0
QLayout::SetMaximumSize
-
Qt::Vertical
0
QLayout::SetMaximumSize
-
0
-
false
201
0
480
16777215
SessionFrame{background-color: rgba(127, 127, 127, 35);border-radius:4px}
3
3
3
3
-
2
-
0
-
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
..
-
QToolButton{border:none}
...
..
true
false
-
QToolButton{border:none}
-
Qt::Horizontal
0
20
-
0
0
16777215
16777215
0
-1
-
Qt::Horizontal
0
20
-
QToolButton{border: none}
...
../../../.designer/backup../../../.designer/backup
22
22
-
0
0
22
22
22
22
<html><head/><body><p>Save & Close Session</p></body></html>
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
../../../.designer/backup../../../.designer/backup
22
22
-
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
..
-
Qt::Vertical
QSizePolicy::Fixed
20
2
-
4
2
-
0
0
-
0
0
0
0
0
-
Qt::Horizontal
QSizePolicy::Fixed
4
20
-
false
32
32
Open Session Folder
QToolButton{border: none}
...
../../../.designer/backup../../../.designer/backup
32
32
-
Qt::Horizontal
QSizePolicy::Fixed
4
20
-
Favorite Applications
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
:/scalable/breeze/star-yellow.svg:/scalable/breeze/star-yellow.svg
-
0
0
3200
32
Run Command
QToolButton{margin:0px}
Application
../../../.designer/backup../../../.designer/backup
22
22
Qt::ToolButtonTextBesideIcon
-
Qt::Horizontal
QSizePolicy::Preferred
6
20
-
0
0
3200
32
Run Command
QToolButton{margin:0px}
Executable
../../../.designer/backup../../../.designer/backup
22
22
Qt::ToolButtonTextBesideIcon
-
0
0
-
-
Qt::Horizontal
QSizePolicy::MinimumExpanding
0
20
-
32
32
<html><head/><body><p>Go back to a previous state of the session.</p></body></html>
QToolButton { border: none}
Snapshots
:/scalable/breeze/document-save.svg:/scalable/breeze/document-save.svg
16
16
-
60
0
60
16777215
Qt::NoContextMenu
Server Status
off
Qt::AlignCenter
true
-
32
32
Save Session
QToolButton { border: none}
Save Session
:/scalable/breeze/document-save.svg:/scalable/breeze/document-save.svg
32
32
-
Qt::Horizontal
QSizePolicy::Fixed
7
20
-
<html><head/><body><p>Trash</p><p>You will find here removed clients.</p></body></html>
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
../../../.designer/backup../../../.designer/backup
-
true
QFrame{border:none}
QAbstractScrollArea::AdjustToContentsOnFirstShow
true
QAbstractItemView::InternalMove
QAbstractItemView::SingleSelection
false
80
-
Qt::Vertical
QSizePolicy::Fixed
20
3
-
0
0
0
30
480
16777215
QPlainTextEdit { font-size: 12px;border-radius:4px}
true
0
-
0
0
20
0
-1
0
QGraphicsView{border:none}
QAbstractScrollArea::AdjustToContents
QGraphicsView::AnchorUnderMouse
QGraphicsView::NoAnchor
-
QFrame{border:none}
QFrame::StyledPanel
QFrame::Raised
0
0
Qt::NoContextMenu
toolBar
false
Qt::ToolButtonTextBesideIcon
false
TopToolBarArea
false
true
../../../.designer/backup../../../.designer/backup
&Show Messages
Ctrl+L
false
../../../.designer/backup../../../.designer/backup
&Save
Ctrl+S
Qt::ApplicationShortcut
../../../.designer/backup../../../.designer/backup
&Open Session
Ctrl+O
../../../.designer/backup../../../.designer/backup
&New Session
Ctrl+N
../../../.designer/backup../../../.designer/backup
&Quit
Ctrl+Q
:/main_icon/48x48/raysession.png:/main_icon/48x48/raysession.png
&About Ray Session
true
true
../../../.designer/backup../../../.designer/backup
Show &Menu Bar
Ctrl+M
../../../.designer/backup../../../.designer/backup
Control
Control
false
:/scalable/breeze/window-close.svg
:/scalable/breeze/disabled/window-close.svg:/scalable/breeze/window-close.svg
&Close
Save and Close Session
Ctrl+W
false
:/scalable/breeze/list-remove.svg
:/scalable/breeze/disabled/list-remove.svg
:/scalable/breeze/list-remove.svg:/scalable/breeze/list-remove.svg
&Abort
Abort Current Session
Ctrl+Shift+W
true
../../../.designer/backup../../../.designer/backup
&Open Session Folder
Open session folder with file manager
true
true
../../../.designer/backup../../../.designer/backup
&Keep focus while opening clients
<html><head/><body><p>Keep focus for the RaySession window while opening clients.</p><p>This option does not works with Wayland (window protocol used by Gnome). It makes more sense to use it if RaySession window is little, without the patchbay.</p></body></html>
Ctrl+H
..
About &Qt
false
:/scalable/breeze/xml-node-duplicate.svg:/scalable/breeze/xml-node-duplicate.svg
&Duplicate
<html><head/><body><p>Duplicate the current session</p></body></html>
Ctrl+D
../../../.designer/backup../../../.designer/backup
&Executable
Add executable to current session
Ctrl+E
Qt::WindowShortcut
../../../.designer/backup../../../.designer/backup
Sa&ve As Template
Save current session as template
../../../.designer/backup../../../.designer/backup
&Application
Add application to current session
Ctrl+A
false
..
&Rename
true
true
..
&Provide bookmarks for session folder
Provide bookmarks for session folder in your file manager.
In audio production, creating audio or midi file with one program and load it into another is an usual case. This option offers something purely practical: a shortcut to the current session folder in your file manager and in the dialog boxes provided for fetching or saving files. It simply avoids wasting time browsing through your personal folder tree to find a file that you have put in your session folder, since that is where it belongs. Of course, this shortcut is deleted when the session is unloaded.
Technically, shortcuts are created for GTK2, GTK3, QT4, QT5, KDE and FLTK.
true
:/scalable/breeze/view-list-icons.svg:/scalable/breeze/view-list-icons.svg
&Desktops Memory (requires wmctrl)
<html><head/><body><p>If this option is activated, RaySession will save (or attempt to save) the number of the virtual desktop on which the client windows were located when the session was saved. So when you restart the session or the clients, the windows will be redispatched to the desktops on which they appeared.</p><p>This option requires you to have the program `wmctrl` installed to work, and probably will not work with Wayland.</p></body></html>
false
..
Return To A &Previous State (requires git)
true
true
..
&Auto Snapshot At Save (requires git)
<html><head/><body><p>This option is far from being trivial, it allows you to take a snapshot of the session after each session save. This means that in case of a technical or artistic error you will be able to find the session in the state it was in at the moment of the snapshot.</p><p>This option requires that you have the `git` program installed.</p></body></html>
..
&Donate
true
..
&Session Scripts
<html><head/><body><p>Disable this option to not activate any session script, and thus open, save or close a session completely ignoring the scripts associated with these actions. </p><p>These scripts are used by sessions with jack configuration memory.</p></body></html>
true
..
&Remember optional GUI states
<html><head/><body><p>This option only concerns NSM clients capable of showing/hiding their graphical interface.</p><p>Without this option, some of them will always start hidden, others will remember if they were visible when they were last saved. With this option enabled, the graphical interfaces will be displayed when the session is ready if they were visible during the last save or if the client has never been launched.</p></body></html>
..
&Edit Session Notes
../../../.designer/backup../../../.designer/backup
Save as Template the current session
Save current session as template
false
:/scalable/breeze/xml-node-duplicate.svg:/scalable/breeze/xml-node-duplicate.svg
Duplicate the current session
<html><head/><body><p>Duplicate the current session</p></body></html>
Ctrl+D
false
..
Rename the current session
..
&Online Manual
Open the online manual in the web browser
..
&Internal Manual
Displays internal manual in a web browser
true
..
Show &JACK patchbay
Ctrl+J
:/main_icon/scalable/raysession.svg:/main_icon/scalable/raysession.svg
System tray &icon options
..
Convert an &Ardour session to a Ray session
..
Convert all &Hydrogen Ray-Hack clients to NSM
..
Convert all &Jack Mixer Ray-Hack clients to NSM
..
Convert &session to NSM file format
..
Preferences
Ctrl+P
SessionFrame
QFrame
1
ListWidgetClients
QListWidget
StatusBarNegativ
QLineEdit
StackedSessionName
QStackedWidget
1
CanvasSplitter
QSplitter
1
CanvasGroupFilterFrame
QFrame
1
PatchGraphicsView
QGraphicsView
RayToolBar
QToolBar
actionShowMenuBar
toggled(bool)
menuBar
setVisible(bool)
-1
-1
251
12
RaySession-0.14.4/resources/ui/stop_client.ui 0000644 0001750 0001750 00000007325 14714437243 022624 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
315
159
Stop Client ?
-
Qt::Vertical
20
40
-
<html><head/><body><p><span style=" font-weight:600;">%s</span> contains unsaved changes. </p><p>Do you really want to stop it ?</p></body></html>
Qt::AlignCenter
-
Qt::Vertical
20
40
-
Don't prevent to stop this client again !
-
-
Qt::Horizontal
40
20
-
Save && Stop
..
-
Just Stop
..
-
Cancel
..
pushButtonClancel
clicked()
Dialog
reject()
265
89
157
56
pushButtonStop
clicked()
Dialog
accept()
172
89
157
56
RaySession-0.14.4/resources/ui/nsm_open_info.ui 0000644 0001750 0001750 00000004015 14714437243 023123 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
500
237
Opening NSM Session
-
<html><head/><body><p>You are opening a session created by Non Session Manager.</p><p><br/>RaySession will open it, but changes won't be applied to NSM file (session.nsm).</p><p>Also, Once you start to work with RaySession, you have to continue with it !</p></body></html>
-
Don't Show this Message Again
-
Qt::Horizontal
QDialogButtonBox::Ok
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/new_session.ui 0000644 0001750 0001750 00000014471 14714437243 022635 0 ustar houstonlzk5 houstonlzk5
DialogNewSession
Qt::NonModal
0
0
228
260
New Session
false
-
-
0
-
<html><head/><body><p><span style=" font-size:9pt; font-weight:600;">Sessions Folder :</span></p></body></html>
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
font-style : italic
/home/user/Ray Sessions
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
Folder
..
-
Qt::Vertical
20
40
-
0
0
0
0
-
Original session :
-
75
true
session name
-
-
0
0
Template :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
0
0
-
Qt::Horizontal
-
0
0
New Session Name :
-
-
Qt::Vertical
20
40
-
true
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
buttonBox
accepted()
DialogNewSession
accept()
248
254
157
274
buttonBox
rejected()
DialogNewSession
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/proxy_gui.ui 0000644 0001750 0001750 00000035210 14714437243 022320 0 ustar houstonlzk5 houstonlzk5
MainWindow
0
0
456
370
Ray Proxy
-
<html><head/><body><p>Command-line options are incompatible with robust session management for a variety of reasons, so the NSM server does not support them directly.</p><p>Some audio programs doesn't have NSM implementation yet, but they can have a LASH/LADISH implementation, and we can use it for the save signal.</p><p>Be warned that referring to files outside of the session directory will impair your ability to reliably archive and transport sessions. <br/><br/>Patching the program to use NSM natively will result in a better experience. </p></body></html>
-
<html><head/><body><p>The program will be started with its current directory being a uniquely named directory under the current session directory. </p><p>It is recommended that you only refer to files in the current directory.</p></body></html>
-
<html><head/><body><p>The program will be started with its current directory being a uniquely named directory under the current session directory. </p><p>It is recommended that you only refer to files in the current directory.</p></body></html>
Config File :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
<html><head/><body><p>Command-line options are incompatible with robust session management for a variety of reasons, so the NSM server does not support them directly.</p><p>Some audio programs doesn't have NSM implementation yet, but they can have a LASH/LADISH implementation, and we can use it for the save signal.</p><p>Be warned that referring to files outside of the session directory will impair your ability to reliably archive and transport sessions. <br/><br/>Patching the program to use NSM natively will result in a better experience. </p></body></html>
Executable :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
<html><head/><body><p>Command-line options are incompatible with robust session management for a variety of reasons, so the NSM server does not support them directly.</p><p>Some audio programs doesn't have NSM implementation yet, but they can have a LASH/LADISH implementation, and we can use it for the save signal.</p><p>Be warned that referring to files outside of the session directory will impair your ability to reliably archive and transport sessions. <br/><br/>Patching the program to use NSM natively will result in a better experience. </p></body></html>
-
<html><head/><body><p>The program will be started with its current directory being a uniquely named directory under the current session directory. </p><p>It is recommended that you only refer to files in the current directory.</p></body></html>
Browse
..
Qt::ToolButtonTextBesideIcon
-
<html><head/><body><p>The environment variables $NSM_CLIENT_ID and $RAY_SESSION_NAME will contain the unique client ID (suitable for use as e.g. a JACK client name) and the display name for the session, respectively.<br/>The variable $CONFIG_FILE will contain the name of the config file selected above.</p></body></html>
Arguments :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
<html><head/><body><p>The environment variables $NSM_CLIENT_ID and $RAY_SESSION_NAME will contain the unique client ID (suitable for use as e.g. a JACK client name) and the display name for the session, respectively.<br/>The variable $CONFIG_FILE will contain the name of the config file selected above.</p></body></html>
-
Qt::Vertical
20
40
-
-
Wait window before reply (needs wmctrl)
-
<html><head/><body><p>Some (very few) programs may respond to a specific Unix signal by somehow saving their state.</p><p>If 'Save Signal' is set to something other than 'None', then Ray Proxy will deliver the specified signal to the proxied process upon an NSM 'Save' event.</p><p>If program is compatible with LASH/LADISH, save signal is SIGUSR1.</p><p>Most programs will treat these signals just like SIGTERM and die.</p><p>You have been warned.</p></body></html>
-
0
0
<html><head/><body><p>Most programs will shutdown gracefully when sent a SIGTERM or SIGINT signal.<br/>It's impossible to know which signal a specific program will respond to.<br/>A unhandled signal will simply kill the process, and may cause problems with the audio subsystem (e.g. JACK).<br/>Check the program's documentation or source code to determine which signal to use to stop it gracefully.</p></body></html>
Stop Signal :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
Test
..
Qt::ToolButtonTextBesideIcon
-
<html><head/><body><p>Most programs will shutdown gracefully when sent a SIGTERM or SIGINT signal.<br/>It's impossible to know which signal a specific program will respond to.<br/>A unhandled signal will simply kill the process, and may cause problems with the audio subsystem (e.g. JACK).<br/>Check the program's documentation or source code to determine which signal to use to stop it gracefully.</p></body></html>
-
0
0
<html><head/><body><p>Some (very few) programs may respond to a specific Unix signal by somehow saving their state.</p><p>If 'Save Signal' is set to something other than 'None', then Ray Proxy will deliver the specified signal to the proxied process upon an NSM 'Save' event.</p><p>If program is compatible with LASH/LADISH, save signal is SIGUSR1.</p><p>Most programs will treat these signals just like SIGTERM and die.</p><p>You have been warned.</p></body></html>
Save Signal :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
0
0
No Save Level :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
1
0
<html><head/><body><p>If this proxy has no save signal,<br/>it can sends to session manager this information.</p><p><ul><li>0 - this information is not sent.</li><li>1 - this information is sent, session manager will ask user to close programs himself at session unload.</li><li>2 - this information is sent, session manager can try to close window gracefully before to ask user to close programs himself at session unload. Good choice if the program displays a dialog if changes are not saved.</li></ul></p></body></html>
-
color: red
executable failed to launch !
Qt::AlignCenter
-
-
Qt::Horizontal
40
20
-
Launch
..
-
Stop
..
RaySession-0.14.4/resources/ui/new_executable.ui 0000644 0001750 0001750 00000016066 14714437243 023275 0 ustar houstonlzk5 houstonlzk5
DialogNewExecutable
Qt::NonModal
0
0
212
376
New Executable Client
false
-
Executable :
-
-
-
<html><head/><body><p>If program is not compatible with the NSM API, </p><p>you should launch it in proxy to define a config file !</p></body></html>
NSM Protocol
true
-
<html><head/><body><p>Show more options ...</p></body></html>
...
..
-
Advanced
-
-
<html><head/><body><p>The Prefix Mode determines the pattern of the client files.</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Session Name (Default) :<br/>The client files names start with the session name.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Client Name :<br/>The client files names start with the client name given by the client itself<br/>(as in Non Session Manager).</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Custom :<br/>The client files names start with the prefix written below.</li></ul></body></html>
-
Prefix :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
Client ID :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
<html><head/><body><p>Use it If you want to add to session a file made outside from a session.</p><p>If you let this line empty, the client_id will be automaticely generated.</p></body></html>
-
Prefix Mode :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
Start the client
true
-
<html><head/><body><p>With this option checked, NSM programs should name their JACK client names starting with ClientName.ClientId (as in NSM), else it will be ClientName (with a digit suffix if needed).</p></body></html>
Long JACK Naming
-
Qt::Vertical
20
40
-
true
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
buttonBox
accepted()
DialogNewExecutable
accept()
248
254
157
274
buttonBox
rejected()
DialogNewExecutable
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/donations.ui 0000644 0001750 0001750 00000005557 14714437243 022304 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
427
320
Donations
-
<html><head/><body><p>Hi !</p><p>it seems that you appreciate RaySession, that is already a good new.<br/>This software is free as in Speech and as in Beer,<br/>but it has required and still takes time.</p><p>Make a donation (even small) is a simple way to say "Thank you".<br/>You can donate <a href="https://liberapay.com/Houston4444"><span style=" text-decoration: underline; color:#2980b9;">here</span></a>.</p><p>If ever you donate nothing,<br/>this program will continue to work without limits of functionnality,<br/>without limit of duration, and even without insulting you ;) .</p></body></html>
true
-
Qt::Vertical
20
40
-
Do not show this message again
false
-
Qt::Horizontal
QDialogButtonBox::Ok
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/stop_client_no_save.ui 0000644 0001750 0001750 00000007013 14714437243 024330 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
400
172
Stop Client ?
-
Qt::Vertical
20
40
-
<html><head/><body><p>We have no possibility to save the client <span style=" font-weight:600;">%s</span>.</p><p>For this reason, it's preferable that you close yourself this client,<br/>probably by closing its window, saving its changes or not.</p></body></html>
Qt::AlignCenter
-
Qt::Vertical
20
40
-
Don't prevent to stop this client again (discouraged)
-
-
Qt::Horizontal
40
20
-
Stop Anyway
..
-
Cancel
..
pushButtonCancel
clicked()
Dialog
reject()
265
89
157
56
pushButtonStop
clicked()
Dialog
accept()
172
89
157
56
RaySession-0.14.4/resources/ui/settings.ui 0000644 0001750 0001750 00000031632 14714437243 022137 0 ustar houstonlzk5 houstonlzk5
dialogPreferences
0
0
472
370
Preferences
-
QTabWidget::North
QTabWidget::Rounded
0
Qt::ElideLeft
true
..
Daemon
-
Sessions
-
-
-
-
Clients
-
-
-
-
<html><head/><body><p>Edit here the command used to run the program in a terminal.</p><p>NSM programs can be launched in a terminal modifying the NSM tab of their properties dialog.</p></body></html>
Terminal command :
-
-
<html><head/><body><p>Reset the terminal command to the default value.</p><p>The default terminal command depends on your desktop environment and on your installed terminals.</p></body></html>
Reset
..
-
QToolButton{border:none}
...
..
24
24
-
-
-
Qt::Vertical
20
40
..
Display
-
-
-
-
-
Qt::Horizontal
QSizePolicy::Maximum
40
20
-
Show patchbay preferences
..
-
Qt::Horizontal
40
20
-
Qt::Horizontal
-
-
Qt::Horizontal
-
Show startup dialog
-
-
Qt::Horizontal
QSizePolicy::Maximum
40
20
-
Make reappear all dialog windows
..
-
Qt::Horizontal
40
20
-
Qt::Vertical
20
40
..
Tray Icon
-
Pro&vide system tray icon
true
-
Only when session is running
true
-
Enable it if your systray is at bottom of the screen.
Reversed menu order
-
<html><head/><body><p>Never ask what to do and close GUI process<br/>if you close RaySession while a session is running. </p><p>The session will still running and you just have<br/>to restart RaySession to manage it.</p><p>This method uses less RAM than<br/>keeping window in system tray.</p></body></html>
Quit shutdowns the GUI
-
Qt::Vertical
20
40
FakeToolButton
QToolButton
RaySession-0.14.4/resources/ui/ray_hack_properties.ui 0000644 0001750 0001750 00000053717 14714437243 024344 0 ustar houstonlzk5 houstonlzk5
Frame
0
0
428
585
Frame
-
<html><head/><body><p>here many fields are available to you. This is not necessarily good news, the idea is to be able to load a program into the session that is not (yet) compatible with NSM. If properly implemented in the client, the NSM protocol will always be much more comfortable to use and more reliable than this hack. That said, if we can expect the NSM implementation in all audio programs, this is not the case for other programs which can still be useful in the session.</p><p><br/></p><p>The Ray-Hack pseudo-protocol uses the attributes of proxies (nsm-proxy or ray-proxy), except that the client is launched directly in the session.</p></body></html>
-
Folder :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
<html><head/><body><p>Command-line options are incompatible with robust session management for a variety of reasons, so the NSM server does not support them directly.</p><p>Some audio programs doesn't have NSM implementation yet, but they can have a LASH/LADISH implementation, and we can use it for the save signal.</p><p>Be warned that referring to files outside of the session directory will impair your ability to reliably archive and transport sessions. <br/><br/>Patching the program to use NSM natively will result in a better experience. </p></body></html>
Executable :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
<html><head/><body><p>The program will be started with its current directory being a uniquely named directory under the current session directory. </p><p>It is recommended that you only refer to files in the current directory.</p></body></html>
Config File :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
<html><head/><body><p>The environment variables $NSM_CLIENT_ID and $RAY_SESSION_NAME will contain the unique client ID (suitable for use as e.g. a JACK client name) and the display name for the session, respectively.<br/>The variable $CONFIG_FILE will contain the name of the config file selected above.</p></body></html>
Arguments :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
Environment :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
<html><head/><body><p>The program will be started in the folder named above.</p><p>It is recommended that you only refer to files in the current directory.</p><p>$RAY_SESSION_NAME will be replaced with the name of the session.</p></body></html>
-
<html><head/><body><p>The program will be started with its current directory being a uniquely named directory under the current session directory. </p><p>It is recommended that you only refer to files in the current directory.</p></body></html>
Browse
..
Qt::ToolButtonTextBesideIcon
-
<html><head/><body><p>The environment variable $RAY_CLIENT_ID will contain the RaySession client_id of this client.$RAY_SESSION_NAME will contain the display name for the session.<br/>$RAY_JACK_CLIENT_NAME will contain a string suitable for use as e.g. a JACK client name.<br/>$CONFIG_FILE will contain the name of the config file selected above.</p></body></html>
-
-
48
48
QToolButton{border:none}
...
../../../.designer/backup../../../.designer/backup
48
48
-
Qt::Vertical
20
40
-
<html><head/><body><p>Ray Hack protocol is a convenience way to manage non NSM compatible programs in the session.</p><p>Some audio programs don't have NSM implementation yet, but they can have a LASH/LADISH implementation, and we can use it for the save signal.</p><p>Be warned that referring to files outside of the session directory will impair your ability to reliably archive and transport sessions. <br/><br/>Patching the program to use NSM natively will result in a better experience. </p></body></html>
-
session_name.client_id
-
<html><head/><body><p>Set here the environment variables you want to set to the process, separate them with spaces.<br/><br/>for example :</p><pre style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Hack';">MY_VAR1=my_value MY_VAR2="other value"</span></pre></body></html>
-
Qt::Vertical
20
40
-
-
<html><head/><body><p>If wmctrl is present and compatible with window manager,</p><p>and if this box is checked,</p><p>the program will be considered as ready only when it displays a window.</p><p>Else the program will be considered as ready after 500ms.</p></body></html>
wait for a window before considering it ready (needs wmctrl)
-
0
0
<html><head/><body><p>Most programs will shutdown gracefully when sent a SIGTERM or SIGINT signal.<br/>It's impossible to know which signal a specific program will respond to.<br/>A unhandled signal will simply kill the process, and may cause problems with the audio subsystem (e.g. JACK).<br/>Check the program's documentation or source code to determine which signal to use to stop it gracefully.</p></body></html>
Stop Signal :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
0
0
<html><head/><body><p>Some (very few) programs may respond to a specific Unix signal by somehow saving their state.</p><p>If 'Save Signal' is set to something other than 'None', then Ray Proxy will deliver the specified signal to the proxied process upon an NSM 'Save' event.</p><p>If program is compatible with LASH/LADISH, save signal is SIGUSR1.</p><p>Most programs will treat these signals just like SIGTERM and die.</p><p>You have been warned.</p></body></html>
Save Signal :
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
<html><head/><body><p>Some (very few) programs may respond to a specific Unix signal by somehow saving their state.</p><p>If 'Save Signal' is set to something other than 'None', then this signal will be sent to the program when we ask to save it.</p><p>If program is compatible with LASH/LADISH, save signal is SIGUSR1.</p><p>Most programs will treat these signals just like SIGTERM and die.</p><p>You have been warned.</p></body></html>
-
<html><head/><body><p>Most programs will shutdown gracefully when sent a SIGTERM or SIGINT signal.<br/>It's impossible to know which signal a specific program will respond to.<br/>A unhandled signal will simply kill the process, and may cause problems with the audio subsystem (e.g. JACK).<br/>Check the program's documentation or source code to determine which signal to use to stop it gracefully.</p></body></html>
-
Qt::Vertical
20
40
-
Without save method
-
<html><head/><body><p>Because we have no method to save the state of this program,<br/>if this box is checked the program won't be closed by session manager at session close,</p><p>it will ask user to close it himself (saving changes or not).</p></body></html>
Tell user to close program himself at session close
-
<html><head/><body><p>If wmctrl is present and compatible with window manager,<br/>the program will try to close gracefully its windows before asking user to close them himself.<br/>This way, in a lot of cases, program will be closed when it has no unsaved changes,<br/>or will display an exit confirmation dialog to save changes or not. </p></body></html>
Try to close window gracefully (needs wmctrl)
-
Qt::Vertical
20
40
-
Test &Zone
true
true
-
QFrame{border:None}
QFrame::StyledPanel
QFrame::Raised
6
0
0
0
0
-
-
Qt::Horizontal
40
20
-
Launch
..
-
Stop
..
-
false
0
0
60
28
Serif
8
50
false
Status
stopped
true
Qt::AlignCenter
true
-
Save
..
-
Qt::Horizontal
40
20
-
color: red
executable failed to launch !
Qt::AlignCenter
FakeToolButton
QToolButton
StatusBar
QLineEdit
RaySession-0.14.4/resources/ui/list_snapshots.ui 0000644 0001750 0001750 00000010332 14714437243 023346 0 ustar houstonlzk5 houstonlzk5
Dialog
Qt::NonModal
0
0
399
397
Snapshots Manager
false
-
<html><head/><body><p>Select from the list below the snapshot to be recalled<br/>to return to a past state of the session :</p></body></html>
-
Qt::Vertical
QSizePolicy::Maximum
20
20
-
-
Qt::Horizontal
40
20
-
Take a snapshot now !
..
-
Qt::Horizontal
40
20
-
false
false
true
1
-
<html><head/><body><p>Make a snapshot at each session save.</p></body></html>
Auto snapshot at save for this session
-
true
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/client_rename.ui 0000644 0001750 0001750 00000010045 14714437243 023077 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
346
177
Rename Client
-
Qt::Vertical
20
40
-
-
...
48
48
-
10
75
true
TextLabel
-
Qt::Horizontal
-
Qt::Vertical
20
40
-
Rename this client to :
-
-
<html><head/><body><p>Renames also the client identifier, this identifier will be used for its JACK client names.</p><p>Else, only the client label is renamed.</p></body></html>
Identifier renaming (client must be stopped)
-
Qt::Vertical
20
40
-
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
FakeToolButton
QToolButton
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/systray_close.ui 0000644 0001750 0001750 00000005023 14714437243 023175 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
396
191
System Tray
-
Qt::Vertical
20
40
-
Your session is still runing.
RaySession will run in the background.
You can make the window re-appear from your system tray.
false
-
Qt::Vertical
20
40
-
Do not show again
true
-
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/template_slot.ui 0000644 0001750 0001750 00000005751 14714437243 023156 0 ustar houstonlzk5 houstonlzk5
Frame
0
0
369
33
Frame
4
2
4
2
-
QToolButton {border: none}
...
22
22
-
Template Name
-
Qt::Horizontal
40
20
-
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
:/scalable/breeze/im-user.svg:/scalable/breeze/im-user.svg
QToolButton::InstantPopup
-
QToolButton {border: none}
...
:/scalable/breeze/draw-star.svg:/scalable/breeze/draw-star.svg
FakeToolButton
QToolButton
FavoriteToolButton
QToolButton
RaySession-0.14.4/resources/ui/client_advanced_properties.ui 0000644 0001750 0001750 00000012673 14714437243 025662 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
411
403
Advanced Properties
-
<html><head/><body><p>All theses followings properties can only be changed<br/>if the client is stopped.</p><p>This is not without danger, even if work has been done to avoid it,<br/>risk to lose project or connections exists.</p></body></html>
false
-
Qt::Horizontal
-
-
-
Prefix Mode
-
:
-
-
:
-
Custom prefix
-
:
-
-
Client ID
-
Use long JACK client names
-
Qt::Horizontal
-
Preview
-
0
0
SessionName.ClientId
-
:
-
Project Path
-
JACK client
-
:
-
ClientName.ClientId
-
Qt::Vertical
20
40
-
QDialogButtonBox::Apply|QDialogButtonBox::Cancel
buttonBox
rejected()
Dialog
reject()
205
383
205
203
RaySession-0.14.4/resources/ui/snapshots_info.ui 0000644 0001750 0001750 00000005150 14714437243 023330 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
403
300
Snapshots Informations
-
<html><head/><body><p>Snapshots are NOT backups !!!</p><p>Besides, It's not overrated to copy your session folder elsewhere<br/>before to ask a previous snapshot.</p><p>Snapshots ignore audio files and other big files (>50Mb),<br/>else snapshot process would be too long, <br/>and the session folder size would be too big.</p><p>That being said, you can decide that your work in the last hours<br/>was not a good idea and return to a previous snapshot !</p></body></html>
-
Qt::Vertical
20
40
-
Do not show this message again
true
-
Qt::Horizontal
QDialogButtonBox::Ok
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/abort_copy.ui 0000644 0001750 0001750 00000006420 14714437243 022435 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
249
118
Abort Copy ?
-
-
Qt::Vertical
20
40
-
Do you want to abort current copy ?
-
0
-
Qt::Vertical
20
40
-
-
Qt::Horizontal
40
20
-
Abort Copy
..
-
Cancel
..
pushButtonCancel
clicked()
Dialog
reject()
198
92
124
58
pushButtonAbort
clicked()
Dialog
accept()
98
92
124
58
RaySession-0.14.4/resources/ui/snapshot_name.ui 0000644 0001750 0001750 00000006632 14714437243 023140 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
401
198
Name Snapshot
-
Qt::Vertical
20
40
-
Snapshot Name :
-
-
Qt::Vertical
20
40
-
<html><head/><body><p>You can save the session before the snapshot.</p><p>Save is recommended,<br/>unless you made unwanted changes since the last session save.</p></body></html>
Qt::AlignCenter
-
-
Save && Snapshot
..
-
Snapshot Only
..
-
Cancel
..
pushButtonCancel
clicked()
Dialog
reject()
334
173
200
98
pushButtonSnapshot
clicked()
Dialog
accept()
210
173
200
98
RaySession-0.14.4/resources/ui/preview_client_slot.ui 0000644 0001750 0001750 00000015120 14714437243 024351 0 ustar houstonlzk5 houstonlzk5
ClientSlotWidget
0
0
514
199
Qt::DefaultContextMenu
Frame
0
0
3
0
3
-
Qt::Vertical
20
40
-
2
-
-
Qt::Horizontal
QSizePolicy::Fixed
4
20
-
0
0
32
32
32
32
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
32
32
QToolButton::InstantPopup
-
Qt::Horizontal
QSizePolicy::Fixed
5
20
-
-
Qt::Horizontal
-
Qt::Vertical
20
40
-
false
0
0
16777215
16777215
font-weight : bold
ClientName
-
Qt::Vertical
20
40
-
Qt::Horizontal
QSizePolicy::MinimumExpanding
0
20
-
Qt::Vertical
20
40
../../../../../.designer/backup../../../../../.designer/backup
Properties
Add to the current session
RaySession-0.14.4/resources/ui/proxy_copy.ui 0000644 0001750 0001750 00000006012 14714437243 022504 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
459
145
Copy File ?
-
file is not in proxy directory.
-
<html><head/><body><p>Do you want to copy this file to proxy directory or to use directly this file ?</p></body></html>
-
-
Qt::Horizontal
40
20
-
Copy file and rename it with session name
Copy And Rename File
-
Copy File
..
-
Use This File
..
pushButtonCopy
clicked()
Dialog
accept()
288
118
229
72
pushButtonUseThisFile
clicked()
Dialog
reject()
395
118
229
72
RaySession-0.14.4/resources/ui/script_user_action.ui 0000644 0001750 0001750 00000004033 14714437243 024171 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
372
161
Script User Action
-
Info Label
-
<html><head/><body><p><hr/></p></body></html>
-
Script user action text. Are you ready ?
true
-
Qt::Horizontal
QDialogButtonBox::Ignore|QDialogButtonBox::Yes
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/remove_template.ui 0000644 0001750 0001750 00000004454 14714437243 023471 0 ustar houstonlzk5 houstonlzk5
Dialog
Qt::NonModal
0
0
342
72
Remove Template ?
false
-
<html><head/><body><p>Are you sure to want to remove this template ?</p></body></html>
Qt::AlignCenter
-
-
Remove
..
-
Cancel
..
pushButtonCancel
clicked()
Dialog
reject()
326
120
187
79
pushButtonRemove
clicked()
Dialog
accept()
87
47
170
35
RaySession-0.14.4/resources/ui/jack_config_info.ui 0000644 0001750 0001750 00000021640 14714437243 023545 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
502
575
Jack Configuration Infos
-
<html><head/><body><p>You create a session from the JACK configuration reminder template.</p><p>This means that when you re-open this session, JACK may be restarted with the configuration used by that session.</p><p>This session callback is made from the session scripts.</p></body></html>
true
-
Qt::Vertical
QSizePolicy::Fixed
20
6
-
0
0
Session Scripts Infos
-
Session Scripts Infos
true
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><title>Session Scripts Infos</title><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Session scripts are located in the <span style=" font-style:italic;">ray-scripts</span> folder in the session folder, but they could also be located in a <span style=" font-style:italic;">ray-scripts</span> folder in a parent folder of the session folder.</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">For example:</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the scripts folder for this new session will be:<br /><span style=" font-weight:600;">%s</span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">But could just as well be:<br /><span style=" font-weight:600;">%s</span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and thus apply to all sessions contained in <span style=" font-weight:600;">%s</span>.</p></body></html>
-
Qt::Vertical
20
40
-
0
0
Jack Config Script Infos
-
true
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">The principle is as follows:</span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Each time the session is saved, the JACK configuration is saved in the session.<br />Before opening, JACK is restarted if the session configuration is different from the current one.<br />After closing, JACK is restarted as it was configured before opening if needed.</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If you open this session on another computer, the JACK configuration will not be recalled but will be overwritten when you save.</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If you wish to open this session without reloading the JACK configuration, simply disable the session scripts.</p></body></html>
-
Qt::Vertical
20
40
-
<html><head/><body><p>Unfortunately, at the moment it is not possible to get the current JACK configuration with certainty, so JACK will be restarted at the first session opening.<br/>You can work around this problem by automatically starting a light daemon at your desktop session startup.</p></body></html>
Automatically start ray-jack_checker daemon at startup
true
-
Do not show this message again
true
-
Qt::Horizontal
QDialogButtonBox::Ok
checkBoxAutoStart
checkBoxNotAgain
buttonBox
accepted()
Dialog
accept()
254
446
157
274
buttonBox
rejected()
Dialog
reject()
322
446
286
274
RaySession-0.14.4/resources/ui/quit_app.ui 0000644 0001750 0001750 00000005255 14714437243 022123 0 ustar houstonlzk5 houstonlzk5
DialogQuitApp
Qt::NonModal
0
0
564
159
Quit RaySession
false
-
<p>Session <bold>%s</bold> is running.</p><p>RaySession will be closed.</p><p>Do you want to save session ?
Qt::AlignCenter
-
-
Save && Quit
..
-
Quit Without Saving
..
-
Keep Daemon Running
..
-
Cancel
..
pushButtonCancel
clicked()
DialogQuitApp
reject()
326
120
187
79
RaySession-0.14.4/resources/ui/script_info.ui 0000644 0001750 0001750 00000003131 14714437243 022607 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
372
161
Script Info
-
Script info text
true
-
Qt::Horizontal
QDialogButtonBox::Close
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/add_application.ui 0000644 0001750 0001750 00000064314 14714437243 023415 0 ustar houstonlzk5 houstonlzk5
DialogAddApplication
Qt::NonModal
0
0
714
537
Add Application
false
-
-
-
0
0
-
-
Filter :
-
Filter application templates
true
-
-
Qt::Vertical
-
Qt::LeftToRight
Factory
true
-
<html><head/><body><p>NSM is the protocol used by modern audio programs to ensure a good session management.</p></body></html>
NSM
true
-
User
true
-
<html><head/><body><p><span style=" font-weight:600;">Ray-Hack</span> is a fake protocol that tries to manage non NSM compatible programs as it can.</p><p>It can be useful :</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">for audio programs that don't have NSM implementation yet</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">for non-audio programs</li></ul></body></html>
Ray-Hack
true
true
-
0
0
Refresh
Applications
..
-
Qt::Vertical
-
6
0
0
0
0
-
6
-
-
QToolButton{border:none}
...
..
64
64
-
12
75
true
MacronDemission
-
Qt::Horizontal
40
20
-
-
-
QToolButton::menu-indicator{ image: url(none.jpg);}\nQToolButton {border: none}
...
:/scalable/breeze/im-user.svg:/scalable/breeze/im-user.svg
22
22
QToolButton::InstantPopup
-
<html><head/><body><p>Add this template to favorites / Remove this template from favorites</p></body></html>
QToolButton {border: none}
...
:/scalable/breeze/draw-star.svg:/scalable/breeze/draw-star.svg
22
22
-
Qt::Vertical
QSizePolicy::Maximum
20
20
-
true
resistance to the oppression of pests
true
-
Qt::Horizontal
-
-
Qt::Horizontal
-
QToolButton{border:none}
...
:/scalable/breeze/document-nosave.svg:/scalable/breeze/document-nosave.svg
32
32
-
11
50
false
false
false
true
QLabel{color:#f19d02}
Non Saveable Program !!!
Qt::AlignCenter
-
Qt::Horizontal
-
-
0
0
:
-
Protocol
-
0
0
Executable
-
0
0
:
-
label
-
Label
-
0
0
:
-
lallement
-
NLP
-
Name
-
:
-
Program Name
-
Qt::Vertical
QSizePolicy::Expanding
20
40
-
-
Qt::Horizontal
40
20
-
<html><head/><body><p>Get more informations on this template.</p></body></html>
...
..
-
-
Qt::Vertical
QSizePolicy::Expanding
20
40
-
75
true
false
No template selected
Qt::AlignCenter
-
Qt::Vertical
20
40
-
false
true
-
-
Qt::Horizontal
40
20
-
<html><head/><body><p>Set an unique identifier takes sense only if you run multiple instances of the same program in the session.</p><p>The unique identifier will be used as client_id for the client, as label and for the JACK client name. This way, you will recognize its instance easily in the client list and in the patchbay.</p></body></html>
Unique Identifier
-
true
Qt::Horizontal
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
Refresh\nApplications
F5
OpenSessionFilterBar
QLineEdit
FakeToolButton
QToolButton
FavoriteToolButton
QToolButton
buttonBox
accepted()
DialogAddApplication
accept()
248
254
157
274
buttonBox
rejected()
DialogAddApplication
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/client_properties.ui 0000644 0001750 0001750 00000034202 14714437243 024025 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
472
540
0
0
Properties
-
0
General
-
-
-
Description
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
48
48
QToolButton{border:none}
...
../../../.designer/backup../../../.designer/backup
48
48
-
0
0
client_protocol
-
:
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
0
0
:
-
0
0
:
-
0
0
:
-
-
Qt::Horizontal
QSizePolicy::Fixed
3
20
-
-
0
0
nsmid
-
0
0
:
-
0
0
Icon
-
-
Advanced Properties
..
-
0
0
Label
-
0
0
Client id
-
0
0
Protocol
-
Qt::Vertical
20
40
-
Qt::Vertical
QSizePolicy::MinimumExpanding
20
0
-
Snapshots
-
0
0
<html><head/><body><p>Edit here what types of files inside the client folders<br/>should be ignored in session snapshots.</p><p>Indexed files will remain so.</p></body></html>
Snapshots ignored extensions :
-
<html><head/><body><p>Edit here what types of files inside the client folders<br/>should be ignored in session snapshots.</p><p>Indexed files will remain so.</p></body></html>
-
Qt::Vertical
20
40
-
Prevent to stop without recent or possible save
true
-
Protocol
0
0
0
0
0
-
0
-
-
Qt::Horizontal
40
20
-
Save Changes
../../../.designer/backup../../../.designer/backup
true
FakeToolButton
QToolButton
RaySession-0.14.4/resources/ui/snapshot_and_save.ui 0000644 0001750 0001750 00000004704 14714437243 023776 0 ustar houstonlzk5 houstonlzk5
DialogQuitApp
Qt::NonModal
0
0
401
159
Quit RaySession
false
-
<html><head/><body><p>Do you want to save the session before snapshot ?</p><p>Save is recommended,<br/>unless you made unwanted changes since the last session save.</p></body></html>
Qt::AlignCenter
-
-
Save && Snapshot
..
-
Snapshot
..
-
Cancel
..
pushButtonCancel
clicked()
DialogQuitApp
reject()
326
120
187
79
RaySession-0.14.4/resources/ui/client_slot.ui 0000644 0001750 0001750 00000043763 14714437243 022626 0 ustar houstonlzk5 houstonlzk5
ClientSlotWidget
0
0
514
199
Qt::DefaultContextMenu
Frame
0
0
3
0
3
-
Qt::Vertical
20
40
-
2
-
-
Qt::Horizontal
QSizePolicy::Fixed
4
20
-
0
0
32
32
32
32
QToolButton::menu-indicator{ image: url(none.jpg);}
QToolButton {border: none}
...
32
32
QToolButton::InstantPopup
-
Qt::Horizontal
QSizePolicy::Fixed
5
20
-
-
Qt::Horizontal
-
Qt::Vertical
20
40
-
false
0
0
16777215
16777215
font-weight : bold
ClientName
-
Qt::Vertical
20
40
-
Qt::Horizontal
QSizePolicy::MinimumExpanding
0
20
-
0
-
0
0
0
0
0
-
Qt::Horizontal
QSizePolicy::Expanding
0
20
-
0
0
36
20
36
24
Display client Ray-Hack properties
false
Hack
:/scalable/breeze/layer-visible-on.png:/scalable/breeze/layer-visible-on.png
32
32
true
Qt::ToolButtonTextOnly
-
QToolButton{border:none}
../../../.designer/backup../../../.designer/backup
22
22
-
Qt::Horizontal
QSizePolicy::Fixed
4
20
-
32
32
Launch
QToolButton {border: none}
...
:/scalable/breeze/media-playback-start.svg
:/scalable/breeze/disabled/media-playback-start.svg:/scalable/breeze/media-playback-start.svg
32
32
-
false
32
32
<html><head/><body><p>Politely ask the client to stop.</p></body></html>
QToolButton {border: none}
...
:/scalable/breeze/media-playback-stop.svg
:/scalable/breeze/disabled/media-playback-stop.svg:/scalable/breeze/media-playback-stop.svg
32
32
-
false
0
0
60
28
Serif
8
50
false
Status
stopped
true
Qt::AlignCenter
true
-
false
32
32
Save
QToolButton {border: none}
...
:/scalable/breeze/document-save.svg
:/scalable/breeze/disabled/document-save.svg:/scalable/breeze/document-save.svg
32
32
-
Qt::Horizontal
QSizePolicy::Fixed
6
20
-
-
0
0
22
22
Remove
QToolButton {border: none}
...
:/scalable/breeze/window-close.svg:/scalable/breeze/window-close.svg
-
Qt::Vertical
20
40
-
Qt::Vertical
20
40
../../../../../.designer/backup../../../../../.designer/backup
Save As Application Template
../../../../../.designer/backup../../../../../.designer/backup
Properties
../../../.designer/backup../../../.designer/backup
Return To A Previous State
../../../.designer/backup../../../.designer/backup
Rename
Find boxes in patchbay
StatusBar
QLineEdit
RayHackButton
QToolButton
RaySession-0.14.4/resources/ui/session_notes.ui 0000644 0001750 0001750 00000002450 14714437243 023166 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
519
446
Dialog
-
-
0
0
Notes of session :
-
75
true
Session name
-
RaySession-0.14.4/resources/ui/error_dialog.ui 0000644 0001750 0001750 00000003002 14714437243 022735 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
102
70
Error !
-
Error Text
-
Qt::Horizontal
QDialogButtonBox::Cancel
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/waiting_close_user.ui 0000644 0001750 0001750 00000011777 14714437243 024174 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
353
272
Close clients yourself !
-
<html><head/><body><p align="center">Some active clients do not offer any save possibility !</p><p align="center">Therefore, it is best that you close these clients yourself,<br/>probably by closing their windows and saving changes.</p><p align="center"><span style=" font-weight:600;">Please close yourself the programs with this save icon:</span></p></body></html>
-
-
Qt::Horizontal
40
20
-
:/scalable/breeze/document-nosave.svg
-
Qt::Horizontal
40
20
-
Qt::Vertical
20
40
-
<html><head/><body><p>You've got 2 minutes !<br/><span style=" font-style:italic;">You can do it without closing this dialog window.</span></p></body></html>
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
Qt::Vertical
20
40
-
Do not show again
-
-
Qt::Horizontal
40
20
-
Undo
..
-
Ok
..
-
Skip
..
pushButtonOk
clicked()
Dialog
accept()
213
239
176
131
RaySession-0.14.4/resources/ui/about_raysession.ui 0000644 0001750 0001750 00000007362 14714437243 023673 0 ustar houstonlzk5 houstonlzk5
DialogAboutRaysession
0
0
550
310
About RaySession
-
-
0
0
<html><head/><body><p><img src=":main_icon/128x128/raysession.png"/></p></body></html>
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
<html><head/><body><p><span style=" font-weight:600;">RaySession</span></p><p>version : %s</p></body></html>
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
<html><head/><body><p>RaySession is a Qt interface for the ray-daemon.</p><p>Its goal is to manage together audio programs as Ardour, Carla, Qtractor, Non-Timeline in an unique session.</p><p>Programs just have to be compatible with the <a href="http://non.tuxfamily.org/wiki/Non%20Session%20Manager"><span style=" text-decoration: underline; color:#2980b9;">NSM</span></a> API to work with RaySession.<br/></p><p align="right">Copyright (C) 2016-2023 houston4444</p><p><br/></p></body></html>
true
true
-
Qt::Horizontal
QDialogButtonBox::Ok
buttonBox
accepted()
DialogAboutRaysession
accept()
248
254
157
274
buttonBox
rejected()
DialogAboutRaysession
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/ray_to_nsm.ui 0000644 0001750 0001750 00000010224 14714437243 022443 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
399
342
convert to NSM file format
-
Qt::Vertical
20
40
-
<html><head/><body><p>This script will convert a session to the NSM file format.<br/>This way, you will be able to open it with <span style=" font-weight:600;">New Session Manager</span>,<br/><span style=" font-weight:600;">Non Session Manager</span> or <span style=" font-weight:600;">Agordejo</span>, you will still can open it<br/>with <span style=" font-weight:600;">RaySession</span>.</p><p>Note that some specifics things will change :</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">All client projects will be named with their client name<br/>and not with the session name.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Allmost JACK clients will have a longer name,<br/>containing the client_id.</li></ul></body></html>
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
false
-
Qt::Vertical
20
40
-
<html><head/><body><p>jackpatch is the program in the session which<br/>remembers and connects JACK connections.<br/><br/>If this option is enabled, the session will replace ray-jackpatch<br/>with jackpatch (the NSM one), else session will works only if<br/>RaySession is installed.</p></body></html>
Use NSM jackpatch
true
-
Qt::Horizontal
QDialogButtonBox::Cancel
buttonBox
accepted()
Dialog
accept()
248
254
157
274
buttonBox
rejected()
Dialog
reject()
316
260
286
274
RaySession-0.14.4/resources/ui/session_scripts_info.ui 0000644 0001750 0001750 00000014634 14714437243 024547 0 ustar houstonlzk5 houstonlzk5
Dialog
0
0
502
565
Session Scripts Infos
-
<html><head/><body><p>You create a session with the basic session scripts.<br/>If you don't know what a script is, or you have absolutely no knowledge in shell scripting, you don't belong here, get out of here right now.</p><p>While you've not edited the scripts, session will behave as a normal session.</p><p>You will find in the session folder a <span style=" font-style:italic;">ray-scripts</span> folder.<br/>In the <span style=" font-style:italic;">ray-scripts </span>folder you will find 3 files:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">load.sh</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">save.sh</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">close.sh</li></ul><p>In theses 3 scripts you can edit some actions to do before or after load, save, or close the session.<br/>If you don't need custom actions at one of theses 3 steps, you can safely remove its file.</p></body></html>
true
-
Qt::Vertical
QSizePolicy::Fixed
20
6
-
0
0
Session Scripts Infos
-
Session Scripts Infos
true
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><title>Session Scripts Infos</title><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Session scripts are located in the <span style=" font-style:italic;">ray-scripts</span> folder in the session folder, but they could also be located in a <span style=" font-style:italic;">ray-scripts</span> folder in a parent folder of the session folder.</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">For example:</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the scripts folder for this new session will be:<br /><span style=" font-weight:600;">%s</span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">But could just as well be:<br /><span style=" font-weight:600;">%s</span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and thus apply to all sessions contained in <span style=" font-weight:600;">%s</span>.</p></body></html>
-
Do not show this message again
true
-
Qt::Horizontal
QDialogButtonBox::Abort|QDialogButtonBox::Ok
checkBoxNotAgain
buttonBox
accepted()
Dialog
accept()
254
446
157
274
buttonBox
rejected()
Dialog
reject()
322
446
286
274
RaySession-0.14.4/resources/fonts/ 0000755 0001750 0001750 00000000000 14714437243 020447 5 ustar houstonlzk5 houstonlzk5 RaySession-0.14.4/resources/fonts/Ubuntu-R.ttf 0000644 0001750 0001750 00001263040 14714437243 022655 0 ustar houstonlzk5 houstonlzk5 PDSIG M GPOS+f ` /GSUBmCv \ 6LTSH25 OS/2. `VDMX cmap;y | cvt -$$ p fpgmvD X #gasp P glyfhZ H Q,hdmxVk 1 headk \ 6hheaH $hmtxa 8 kern 2t {rlocaP~ ̈́ maxp
name/_ postXԝ ,prepAF | {5G<_<