Closed brobr closed 3 years ago
Recompiling the 0.11.1 source resulted now in a working program....
Ok, this is on jack integrated with pipewire and when qjackctl, ardour and hydrogen are already running. 1) setting up a new raysession with these programs, loaded new instances of them (not what I wanted)
2) then, when choosing open jack-patchbay
(which would show an old saved session, not what's active) raysession crashed again. Trying to start it again from a terminal gives another float error ....
bash-5.1$ raysession Connecting GUI to existing ray-daemon port 16187 Traceback (most recent call last): File "/usr/share/raysession/src/gui/patchcanvas/canvasbox.py", line 1482, in paint painter.drawText(title_line.x, title_line.y, title_line.text) TypeError: arguments did not match any overloaded call: drawText(self, Union[QPointF, QPoint], str): argument 1 has unexpected type 'float' drawText(self, QRectF, int, str): argument 1 has unexpected type 'float' drawText(self, QRect, int, str): argument 1 has unexpected type 'float' drawText(self, QRectF, str, option: QTextOption = QTextOption()): argument 1 has unexpected type 'float' drawText(self, QPoint, str): argument 1 has unexpected type 'float' drawText(self, int, int, int, int, int, str): argument 1 has unexpected type 'float' drawText(self, int, int, str): argument 1 has unexpected type 'float' Aborted
Attached a list with how raysession has been installed raysession-installed.txt
ok thanks. The first crash should be fixed by last commit https://github.com/Houston4444/RaySession/commit/874852ea0c18ea295e3c8384e8ab042f2baea253
second one is very very strange, it says title_line.x is a float when I really can't see how it can happens...
oh, I found it !
It should be both fixed now : https://github.com/Houston4444/RaySession/commit/41875f3b6aa84f3dd1cf43701edfe1c493b38d58
Ok, thanks; will try again
Sorry, (cloned git repository, timestamp Nov 2 23.43)
bash-5.1$ raysession Connecting GUI to existing ray-daemon port 16188 Traceback (most recent call last): File "/usr/share/raysession/src/gui/gui_session.py", line 155, in _osc_receive function(path, args) File "/usr/share/raysession/src/gui/gui_session.py", line 535, in _ray_gui_patchbay_fast_temp_file_running self.patchbay_manager.fast_temp_file_running(*args) File "/usr/share/raysession/src/gui/patchbay_manager.py", line 1904, in fast_temp_file_running self.metadata_update( File "/usr/share/raysession/src/gui/patchbay_manager.py", line 1731, in metadata_update port.change_canvas_properties() File "/usr/share/raysession/src/gui/patchbay_manager.py", line 202, in change_canvas_properties patchcanvas.changePortProperties(self.group_id, self.port_id, File "/usr/share/raysession/src/gui/patchcanvas/patchcanvas.py", line 982, in changePortProperties port.widget.parentItem().updatePositions() File "/usr/share/raysession/src/gui/patchcanvas/canvasbox.py", line 970, in updatePositions canvas.scene.deplace_boxes_from_repulsers([self]) File "/usr/share/raysession/src/gui/patchcanvas/scene.py", line 541, in deplace_boxes_from_repulsers rect.translate(QPoint(box_dict['to_x'], box_dict['to_y'])) TypeError: arguments did not match any overloaded call: QPoint(): too many arguments QPoint(int, int): argument 1 has unexpected type 'float' QPoint(QPoint): argument 1 has unexpected type 'float' Aborted bash-5.1$
Ok, sorry that is fixed now by https://github.com/Houston4444/RaySession/commit/755fdea87f75e998c042662a396b7cd128fe1310
Ok, another one... (is this due to python-3.10??)
bash-5.1$ raysession Connecting GUI to existing ray-daemon port 16189 Traceback (most recent call last): File "/usr/share/raysession/src/gui/patchcanvas/canvasbox.py", line 1615, in paint painter.drawText(title_line.x, title_line.y, title_line.text) TypeError: arguments did not match any overloaded call: drawText(self, Union[QPointF, QPoint], str): argument 1 has unexpected type 'float' drawText(self, QRectF, int, str): argument 1 has unexpected type 'float' drawText(self, QRect, int, str): argument 1 has unexpected type 'float' drawText(self, QRectF, str, option: QTextOption = QTextOption()): argument 1 has unexpected type 'float' drawText(self, QPoint, str): argument 1 has unexpected type 'float' drawText(self, int, int, int, int, int, str): argument 1 has unexpected type 'float' drawText(self, int, int, str): argument 1 has unexpected type 'float' Aborted
(is this due to python-3.10??)
No, no, it is just me not working seriously enough, without the same JACK ports and boxes as you, when a fix create another bug. Sorry.
I tried something, there are also some more theme work, I hope this won't make other crashes happen.
Weird, resizing carla when its patchbay is active also crashes the app (carla). Am I missing something on my Slackware box; a KDE dependency (not using KDE) for example? Or could it be something linked to pipewire/jack? (dbus seems not used and I get no fun with qjackctl; it cannot start the jackserver (but that is done by pipewire presumably and I only need something like a patchbay to save my connections)
Weird, resizing carla when its patchbay is active also crashes the app (carla).
So, this is a Carla bug, RS doesn't crashes, no ?
a KDE dependency (not using KDE) for example?
Certainly not. Carla or RaySession both absolutely don't need KDE. I guess a QT related bug. What Carla says at crash ? That said, report a bug to Carla Github.
Ok, will do.
In the meantime:
timestamp Nov 3 17.15 (latest commit b8056da68b370e393e775c901eda47d2dbc16685)
bash-5.1$ raysession Connecting GUI to existing ray-daemon port 16187 Traceback (most recent call last): File "/usr/share/raysession/src/gui/patchcanvas/canvasbox.py", line 1679, in paint painter.drawText(float(title_line.x), TypeError: arguments did not match any overloaded call: drawText(self, Union[QPointF, QPoint], str): argument 1 has unexpected type 'float' drawText(self, QRectF, int, str): argument 1 has unexpected type 'float' drawText(self, QRect, int, str): argument 1 has unexpected type 'float' drawText(self, QRectF, str, option: QTextOption = QTextOption()): argument 1 has unexpected type 'float' drawText(self, QPoint, str): argument 1 has unexpected type 'float' drawText(self, int, int, int, int, int, str): argument 1 has unexpected type 'float' drawText(self, int, int, str): argument 1 has unexpected type 'float' Aborted
Ok. that is strange, here drawText function doesn't complain if first ints are float... This is now fixed, that said in Qt doc drawText accepts only ints, so now they are ints. Maybe you will find other similar crashes... Certainly because of modifications in Qt or python-qt, your version is largely newer than mine. If you see other crashes, they won't be hard to fix.
Progress ;-) The gui loaded, with a small side panel in black. Thinking that could be the patchbay with current connections, I tried to resize the gui (stretching the window to the right). That gave a crash ;-{
bash-5.1$ raysession [ray-daemon]GUI connected at osc.udp://knotsUL:16578/ [ray-daemon]URL : osc.udp:/...... [ray-daemon] osc.udp://.. [ray-daemon]ROOT: /home/rob/Ray Sessions Traceback (most recent call last): File "/usr/share/raysession/src/gui/patchcanvas/canvasbox.py", line 1646, in paint painter.drawLine(5, 16, title_x_pos -29 -5, 16) TypeError: arguments did not match any overloaded call: drawLine(self, QLineF): argument 1 has unexpected type 'int' drawLine(self, QLine): argument 1 has unexpected type 'int' drawLine(self, int, int, int, int): argument 3 has unexpected type 'float' drawLine(self, QPoint, QPoint): argument 1 has unexpected type 'int' drawLine(self, Union[QPointF, QPoint], Union[QPointF, QPoint]): argument 1 has unexpected type 'int' Aborted
Are you on python 3.9? Slackware-current aims to go back to that after trying 3.10 for 3 weeks or so. If that could be a factor, maybe I should come back to this when my box is at that state again....??
ok, let's try again !
Here I use old python 3.7.3 on Librazik (debian buster). I also use Manjaro but I can't remember python version.
I think you should not publish here your local IP address :
[ray-daemon]URL : osc.udp://192.168.xx.xx
edit your comment ;)
Thanks, did not notice that ip...
Fab, almost there ;-) Resizing by dragging edges works fine; changing connections, toggle full screen, OK. Then trying to shift the zoom-slider: crash ;-(
bash-5.1$ raysession [ray-daemon]GUI connected at osc.udp://.. [ray-daemon]URL : osc.udp://... [ray-daemon] osc.udp://... [ray-daemon]ROOT: /home/rob/Ray Sessions/ardour-hydrogen Traceback (most recent call last): File "/usr/share/raysession/src/gui/patchbay_tools.py", line 71, in set_zoom patchcanvas.canvas.scene.zoom_ratio(percent) File "/usr/share/raysession/src/gui/patchcanvas/scene.py", line 683, in zoom_ratio widget.top_icon.update_zoom(ratio) File "/usr/share/raysession/src/gui/patchcanvas/canvasicon.py", line 105, in update_zoom pixmap = self.icon.pixmap(24 scale, 24 scale) TypeError: arguments did not match any overloaded call: pixmap(self, QSize, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off): argument 1 has unexpected type 'float' pixmap(self, int, int, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off): argument 1 has unexpected type 'float' pixmap(self, int, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off): argument 1 has unexpected type 'float' pixmap(self, QWindow, QSize, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off): argument 1 has unexpected type 'float' Aborted bash-5.1$
Ok, this should be fixed. I think I need to test RS myself with python 3.10 (or qt 5.15, or both), to try to make it crashes.
Some observations:
After quitting raysessions, there are still running processes: ray-demon, ray-jackpatch). Should these not have been killed ? (maybe something related to by not being on systremd?? or left overs from previous crashes?)
After starting the gui: The options menu start with an unticked box for messages when these are open by default after start-up. The option 'show menu' when ticked/set is not saved after closing ray-sessions.
Typo in File/Utilities/Convert to NSM file format/: "Allmost JACK clients..." should be (?) "Most Jack clients..."
Still a slider-related crash: Clicking the zoom slider to keep reducing patchbay-size goes fine until at a point the program crashes (maybe it goes below 1%??):
bash-5.1$ raysession [ray-daemon]GUI connected at osc.udp://../ [ray-daemon]URL : osc.udp://../ [ray-daemon] osc.udp://../ [ray-daemon]ROOT: /home/rob/Ray Sessions/ardour-hydrogen [ray-daemon]Attempting to open /home/rob/Ray Sessions/ardour-hydrogen/ardour-import .... [ray-daemon]Telling all clients that session is loaded... [ray-daemon]Telling client JACK Connections that session is loaded. [ray-daemon]Telling client Ardour that session is loaded. [ray-daemon]Telling client Hydrogen that session is loaded. [ray-daemon]Loaded [ray-daemon]Done Traceback (most recent call last): File "/usr/share/raysession/src/gui/patchbay_tools.py", line 67, in zoom_changed_from_canvas self.ui.sliderZoom.set_percent(ratio * 100) File "/usr/share/raysession/src/gui/surclassed_widgets.py", line 415, in set_percent self.setValue(self.map_float_to(percent, 20, 100, 0, 500)) TypeError: setValue(self, int): argument 1 has unexpected type 'float' Aborted bash-5.1$
bash-5.1$ raysession Connecting GUI to existing ray-daemon port 16187 [ray-daemon]GUI connected at osc.udp://127.0.0.1:13847/ Traceback (most recent call last): File "/usr/share/raysession/src/gui/patchbay_tools.py", line 67, in zoom_changed_from_canvas self.ui.sliderZoom.set_percent(ratio * 100) File "/usr/share/raysession/src/gui/surclassed_widgets.py", line 415, in set_percent self.setValue(self.map_float_to(percent, 20, 100, 0, 500)) TypeError: setValue(self, int): argument 1 has unexpected type 'float' Aborted
Another observation. Having an Ardour-session (with Hydrogen) running and then opening RaySession loads all connections in the PatchBay panel and these can be altered. However, coming in this way, the state cannot be saved as a new RaySession. (i.e. with all applications etc). RaySessions need to be built up from scratch (i.e. adding Ardour in the above situation adds and opens a new Ardour instance, while one expect that the running Ardour might be imported as that is shown in the patchbay.
So, the existing running apps are not shown or cannot be imported into a (new) RaySession.
Converting the ardour session of that running ardour did not do anything (but no message about success or failure). Maybe nothing happened because that ardour session was not saved in my home folder but on another drive; some programs do not cope with that.
After quitting raysessions, there are still running processes: ray-demon, ray-jackpatch). Should these not have been killed ? (maybe something related to by not being on systremd?? or left overs from previous crashes?)
Normal. When your GUI crash, ray-daemon (which manage session) and ray-jackpatch_to_osc (which is the jack client communicating with patchbay) both still run. And when gui is started, it automatically connects to daemon (and to patchbay daemon).
The options menu start with an unticked box for messages when these are open by default after start-up.
I don't understand your sentence, screenshot ?
The option 'show menu' when ticked/set is not saved after closing ray-sessions.
mmmh, strange... It should, it works here.
Thanks for the typo.
Clicking the zoom slider to keep reducing patchbay-size goes fine until at a point the program crashes (maybe it goes below 1%??):
No, that is again a type error for QT.
For the second comment, I don't know what to answer. I think that when users read manual, they understand that programs not launched in the session are not part of the session, that's all. Patchbay is an utility offered by RS showing all the JACK patchbay, and for Ardour, there is no possibility to separate JACK clients from session to other clients. In the future, we could recognize some clients, but not ensure that a client is not part of the session. Shortly, if you use RS, start Ardour from RS.
Converting the ardour session of that running ardour did not do anything
I hope you did not try to load in the session a RUNNING ardour session !!! (if I didn't say it in the message dialog, it's an error, maybe too obvious for me ;) ).
Maybe nothing happened because that ardour session was not saved in my home folder but on another drive
Ah, maybe a bug in the converter script, can you try the script directly, in RS source code : utility-scripts/ardour_from_external_to_session.sh
?
Zoom slider should be fixed.
Ok thanks, works fine now.
Yes tried to import a running ardour;
Doing it with a non-running one works but is not optimal as the hydrogen link (in that session) is lost and the contact witn the Jack-serever was lost. Well, forget this route ;-)
I just have to learn to build a session up from within raysession. (I have to learn a lot here ;-)
The menu issue: Open raysession: Set Menu-Bar visible: (Also note that 'Show Messages' is unticked but messages are shown; is that not inconsistent?) That works fine: After save and exit, on restart of the same session: menu-setting lost:
Could you check in ~/.config/RaySession/RaySession.conf
if the value of ShowMenuBar
is consistent after closing RaySession ?
ShowMenuBar=true
if you closed RaySession with menubar visible, else ShowMenuBar=false
.
somehow the settings are now kept: edit: yes
[MainWindow] ShowMenuBar=true
What happens with your MIDI ports in Midi-Bridge ??? they have no name !!! Could you get their true name ? (Right click on the port -> get port infos).
Midi-Bridge:Midi Through: capture_0 Midi Through Port-0 JACK UUID 4294967336 MIDI Input
Midi-Bridge:Midi Through: playback_0 Midi Through Port-0 JACK UUID 4294967335 MIDI Output
less /etc/pipewire/jack.conf:
... # global properties for all jack clients jack.properties = {
for jamulus this needs to be low!
node.latency = 256/48000
node.lock-quantum = false
jack.merge-monitor = true jack.short-name = true jack.filter-name = true ...
what happens in canvas options dialog (right click in patchbay background -> canvas options), if you uncheck "Group A2J hardware ports" ?
grouped:
ungrouped:
Ok thanks, could you uncheck "Use graceful names" and see what happens ?
with ungraceful:
with different jack settings...
then without 'Use ungraceful names'
Ok. Thanks a lot. I'd like to see the difference in jack settings, and the difference of port name with jack_lsp
. There is probably something wrong in patchbay.
On my setup pipewire has taken over jack, and controls it via a jack.conf
bash-5.1$ jack_lsp HDA Intel PCH:capture_FL HDA Intel PCH:capture_FR HDA Intel PCH:playback_FL HDA Intel PCH:monitor_FL HDA Intel PCH:playback_FR HDA Intel PCH:monitor_FR Midi-Bridge:Midi Through: capture_0 Midi Through Port-0 Midi-Bridge:Midi Through: playback_0 Midi Through Port-0
bash-5.1$ cat /etc/pipewire/jack.conf # JACK client config file for PipeWire version "0.3.39" # # # Copy and edit this file in /etc/pipewire for system-wide changes # or in ~/.config/pipewire for local changes.
context.properties = {
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
log.level = 0
}
context.spa-libs = {
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
support.* = support/libspa-support
}
context.modules = [
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ ifexists ] [ nofail ] ]
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
#
# Boost the data thread priority.
{ name = libpipewire-module-rt
args = {
#nice.level = -11
#rt.prio = 88
#rt.time.soft = 2000000
#rt.time.hard = 2000000
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
]
# global properties for all jack clients jack.properties = {
node.latency = 256/48000
#node.lock-quantum = false
jack.merge-monitor = true
**jack.short-name = true** _<--- commented out for images previous post_
**jack.filter-name = true** _<--- commented out for images previous post_
#
# allow: Don't restrict self connect requests
# fail-external: Fail self connect requests to external ports only
# ignore-external: Ignore self connect requests to external ports only
# fail-all: Fail all self connect requests
# ignore-all: Ignore all self connect requests
#jack.self-connect-mode = allow
#jack.locked-process = true
}
# client specific properties jack.rules = [ { matches = [ {
#client.name = "Carla"
client.name = "Jamulus"
application.process.binary = "jack_simple_client"
application.name = "~jack_simple_client.*"
}
]
actions = {
update-props = {
#node.latency = 512/48000
node.latency = 64/48000
}
}
}
] bash-5.1$
ahhh, I can reproduce the bug ! So now, I can search !
fixed for Midi-Bridge. I hope there is no similar bug with a2j.
this is what I get now:
Ok. These port names are now a little shorter in case jack.filter-name = true.
I spent some time to read pw doc, but I am quite lose. Which command do you use to restart pipewire after config changes ?
for now I use
systemctl --user --now enable pipewire-media-session.service
the problem is that samplerate and buffer size aren't updated in RS.
alternatively
systemctl --user --now disable pipewire.service
But my desktop volume systray button is now broken, I don't see any device as pulseaudio does.
Ok, that's fine at my end (have 'playback_0 Midi Through' and 'capture_0 Midi Through' with my jack.conf settings.)
Pipewire seems to restart itself at my end (nothing fancy; close/quite raysession; change jack.conf, open raysession again and changes are visible)
But the tray-icon is only responsive/active when a session is loaded/running:
close session:
17:53:09 waiting for 3 clients to quit... 17:53:09 Hydrogen (hydrogen): stopping 17:53:09 Hydrogen (hydrogen): terminated by server instruction 17:53:09 Ardour (ardour): stopping 17:53:09 Ardour (ardour): terminated by server instruction 17:53:09 JACK Connections (patch): stopping 17:53:09 JACK Connections (patch): terminated by server instruction
systray button shows but not responsive: cannot reopen recent (grayed out) session; cannot open/new session.
17:54:09 -- Opening session 'ardour-hydrogen' -- 17:54:09 waiting announce from 3 clients... 17:54:09 JACK Connections (patch): launched 17:54:10 JACK Connections (patch): announced 17:54:10 JACK Connections (patch): project loaded 17:54:10 Ardour (ardour): launched 17:54:10 Hydrogen (hydrogen): launched 17:54:10 Hydrogen (hydrogen): announced 17:54:10 Ardour (ardour): announced 17:54:10 waiting for 2 clients to load their project... 17:54:12 Ardour (ardour): project loaded 17:54:12 Hydrogen (hydrogen): project loaded 17:54:12 session 'ardour-hydrogen' is loaded.
systray button working fine now.. ... but response is a bit erratic (as if it can blocked sometimes and after some time or by changing workspace it becomes active again)
EDIT: ok, maybe expected behavior; had 'System tray icon options'/'Only when session is running' ticked Un-ticking that option gives an active icon, also without a running session (so can load 'recent session' from there)
But 'aborting' a session inactivates the icon as well.
systray is totally a Qt thing, I have not really much power on it than activate/deactivate, and set context menu. It will essentially depends on your Desktop environment. Note that there is an option to use it never, always, or only when session is loaded (default).
LAM_ gived me another solution to restart pw (no need to restart RS this way):
systemctl --user restart pipewire.service pipewire-pulse.socket pipewire-media-session.service
Ok thanks; was good fun. Now back on python-3.9.7, and all is working fine.
Hi on Slackware-current (with QT5.15.3, qt5-webkit-5.212.0, python-3.10.0, pyliblo3-0.12.0, PyQt5-5.15.2, pipewire-master built with jack) (no systemd nor qtchooser on this platform; also no qt4; Python is installed in /usr/lib64/python3)
I get this crash...(both with raysession-0.11.1 and with cloned repository)