Need help with Rosegarden and/or jackd

With each Opensuse version, I keep hoping that Rosegarden will work. I had high hopes for 12.1 since it seems every alternating version has sound problems for me, but 12.1 did work with my sound card. I would guess someone is getting it to work so it must just be my knowledge of how to make it work. I did have sucess with a previous version in playing .midi files with timidity from the command line, but never with any graphical software. I think some things were assumed installed, but I need help from the base version. This whole concept is foreign to me, because on Windows, the files just played. I am finding there are a number of things Microsft kept me dumbed down and there are lots of things happening in the background. Some things I wish I was aware of years ago. But anyway…

I came across some steps, for 11.3 of running Rosegarden:
Malcolm’s Piano Stuff: How to get Rosegarden/Jack/Fluidsynth working on openSUSE

Here’s what I have done:
I’ve added myself to the audio group
I’ve added these lines to /etc/security/limits.configuring
@audio - rtprio 90
@audio - nice -10
@audio - memlock unlimited

I started jackd using “jackd -d alsa”
and I get:

/usr/share/man> jackd -d alsa
jackdmp 1.9.7
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2011 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
control device hw:0
control device hw:0
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
control device hw:0
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
JackProcessSync::LockedTimedWait error usec = 5000000 err = Connection timed out
Driver is not running
Cannot create new client
jackd: ../common/JackGraphManager.cpp:45: void Jack::JackGraphManager::AssertPort(jack_port_id_t): Assertion `port_index < fPortMax' failed.
Aborted

Then I execute
fluidsynth -l -a jack -m alsa_seq /usr/share/sounds/sf2/FluidR3_GM.sf2
and I get:

FluidSynth version 1.1.4
Copyright (C) 2000-2011 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.

Cannot connect to server socket err = Connection refused
Cannot connect to server socket
jackdmp 1.9.7
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2011 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
control device hw:0
control device hw:0
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
control device hw:0
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
JackProcessSync::LockedTimedWait error usec = 5000000 err = Connection timed out
Driver is not running
Cannot create new client
Cannot open fluidsynth client
fluidsynth: error: Failed to connect to Jack server.
Failed to create the audio driver
soundfonts> jackd: ../common/JackGraphManager.cpp:45: void Jack::JackGraphManager::AssertPort(jack_port_id_t): Assertion `port_index < fPortMax' failed.

And when I execute rosegarden from the command line, I get a whole bunch of messages and part of
them say:
Object::connect: No such slot Rosegarden::AudioInstrumentParameterPanel::updateAllBoxes() in src/gui/editors/parameters/AudioInstrumentParameterPanel.cpp:81
Object::connect: (receiver name: ‘Audio Instrument Parameter Panel’)
[generic] RosegardenParameterArea::addRosegardenParameterBox

rosegarden: symbol lookup error: rosegarden: undefined symbol: _ZNK9QCheckBox15minimumSizeHintEv

Any help would be much appreciated.
I really don’t know what connections, assertions, ports, and slots are in relation to this.
I would guess the jackd problems are the cause of or the symptom of nothing about it working.

Did you mean /etc/security/limits.conf??

For openSUSE 11.3 and 11.4, I add only the following two lines to /etc/security/limits.conf:

@audio   -  rtprio     99
@audio   -  memlock    unlimited

Rather than reading any old blog on the internet, did you refer to the guidance on jackaudio.org? For example this link from JACK FAQ:

How do I configure my linux system to allow JACK to use realtime scheduling? It includes the following comment:

Contrary to a lot of misinformation on the web, there is no reason to include a line here that provides enhanced “niceness” control, which is completely irrelevant for realtime scheduling and low latency audio applications.

I haven’t installed Rosegarden on 12.1 yet as it wasn’t included in the distribution’s Oss repo (lilypond was a missing dependency). It is included on 11.4, where it works well with qsynth (from packman). I’ve also used a newer qsynth downloaded from openSUSE Build Service.

From where did you source Rosegarden for your 12.1? Are you using KDE or Gnome or other desktop? Are you running with the default PulseAudio?

I successfully use KDE, rosegarden, qsynth and jack/qjackctl on standard 11.4 and Tumbleweed (11.4), and KDE, qsynth, jack/qjackctl on standard 12.1 (but no rosegarden yet). I don’t need to start qjackctl/qsynth/rosegarden etc. from the commandline as it seems to work ok starting via KDE’s menu. Of course setting up jack for your system’s hardware using qjackctl’s gui is both convenient and necessary.

BTW, if using PulseAudio, you can run Rosegarden and Qsynth (uses fluidsynth) without jack. Qsynth uses PulseAudio as its sound server, but you need to select it via Qsynth’s Setup.

I also meant to say that is the same for 12.1 here.

Yes, I think spellcheck got in the way. I doubt I typed the extra.

How do I configure my linux system to allow JACK to use realtime scheduling? It includes the following comment:

It talks about /etc/security/limits.d but was vague on whether only if it exists, or to create it if it does not. Since I do not have it, the directions sound like I should only edit the limits.conf file and not create any limits.d directory.

I haven’t installed Rosegarden on 12.1 yet as it wasn’t included in the distribution’s Oss repo (lilypond was a missing dependency). It is included on 11.4, where it works well with qsynth (from packman). I’ve also used a newer qsynth downloaded from openSUSE Build Service.

From where did you source Rosegarden for your 12.1? Are you using KDE or Gnome or other desktop? Are you running with the default PulseAudio?

I read there were problems with with one of the dependent files of lilypond but I think it was either the build service or multimeda (11.0.6-17.4) had everything that yast said met its requirements. But I cannot find qsynth.

I’m using KDE on a 64bit system and see that PulseAudio is enabled from the sound icon in Yast hardware.

BTW, if using PulseAudio, you can run Rosegarden and Qsynth (uses fluidsynth) without jack. Qsynth uses PulseAudio as its sound server, but you need to select it via Qsynth’s Setup.

Maybe that’s what I should try. I found it listed on Packman but when I go to the repository, it’s not there. I see something about the symbol saying build job exists and something about build time was 5 hours ago, so maybe it’s not yet created for 12.1?

I started looking at fluidsynth since Qsynth can use pulseaudio, and there was an option for -d pulseaudio. That got to a command line in fluidsynth. Don’t know what to do there so I ran Rosegarden from the kicker menu and it just disappears as before. Running from the command line still gives:


Object::connect: No such slot Rosegarden::AudioInstrumentParameterPanel::updateAllBoxes() in src/gui/editors/parameters/AudioInstrumentParameterPanel.cpp:81
Object::connect:  (receiver name: 'Audio Instrument Parameter Panel')
[generic]  RosegardenParameterArea::addRosegardenParameterBox 

rosegarden: symbol lookup error: rosegarden: undefined symbol: _ZNK9QCheckBox15minimumSizeHintEv

Yes, edit limits.conf. I will assume you removed the “nice -10” line.

To get Qsynth for 12.1, use the Build Service’s Package Search, but first click on “(Search options)” and tick the box for “Include users’ home projects”. I usually install the package from user “rncbc”. It’s usually the latest there, and “rncbc” is involved in Qsynth’s development. BTW, I’m also using KDE on 64bit system. On 11.4 it’s available from packman, and it probably will come to 12.1 soon. I’ve had no probs with rncbc’s package on 12.1 and 11.4.

You will need to configure Qsynth via the Setup button, in particular for the Audio Driver (pulseaudio) and your Soundfont location. The gui is very easy to use. Start Qsynth before you start Rosegarden.

I suspect the problem is with rosegarden package (on 12.1). The build service search shows packages from multimedia:/apps and Education repos. IIRC I tried the one from multimedia:/apps and it failed with the lilypond dependency issue. So far, lilypond for 12.1 only appears on the build service from a user’s home project, but I didn’t try it, and as you said, there could be a problem with one of its dependencies.

PS. Qsynth is now in Packman but if you only have packman-essentials repo, you will also need to add packman-multimedia repo.

I had a chance to go download Rosegarden 11.0.6-19.2 from 12.1 multimedia and it comes up! So you’re right, there was something wrong with the previous one.

I start qsynth, setting the soundfont and the audio driver to pulseaudio, then I start Rosegarden and load a .mid file. I press play and it acts like it’s playing but I hear no sound. Seems like I’ve experienced this in previous versions with other .mid software. When I gave up and Quit, I then heard some strange noises when it shut down.

In the preferences of qsynth and Rosegarden, there are so many options I haven’t a clue what they mean let alone what they should be set to, or which of the two (qsynth, rosegarden) needs something changed.

Any other basic setup steps that need to be set up to produce sound output or some kind of Hello World steps?

Thanks for the feedback. Will try that version later on my 12.1 testing partition, so check back here for result.

I start qsynth, setting the soundfont and the audio driver to pulseaudio, then I start Rosegarden and load a .mid file. I press play and it acts like it’s playing but I hear no sound. Seems like I’ve experienced this in previous versions with other .mid software. When I gave up and Quit, I then heard some strange noises when it shut down.

I’ve had exactly those symptoms before on 11.4, for example, most recently on my old openSUSE Tumbleweed system (based on 11.4) where PulseAudio is partially broken on a problematic build of KDE 4.6.5, using just qsynth and rosegarden. However on standard 11.4 it works well.

When that happens I usually close rosegarden and qsyth; restart qsynth, re-checking audio driver and Soundfont settings via Setup; and restart Rosegarden. Open or import the .mid file. Then select rosegarden’s Studio menu>Manage MIDI Devices. Look at MIDI Playback section, under “Sends its data through”, there should be an entry similar to "128:0 Synth input port (2882:0) (write). If it’s blank, look at Midi outputs and see if a similar entry is listed under “Available outputs”. If it is, click on it, and it should then appear under “Sends its data through” in MIDI Playback. Return to the main rosegarden screen by pressing “Close” button. Then check the correct instruments are selected on left-hand side in the sections under “Special Parameters”.

Let us know how you get on with that.

I forgot to mention (maybe obvious though), after this step:

Return to the main rosegarden screen by pressing “Close” button. Then check the correct instruments are selected on left-hand side in the sections under “Special Parameters”.

Reset the transport before retrying playback. :slight_smile:

I was about to write that when I tried it, I got a bunch of strange sounds. I could almost recognize the tune, but it basically sounded awful. Then I tried it again, and everything sounds much better! Of course, I couldn’t leave well enough alone and so closed Rosegarden and Qsynth, started them back up, and no sound. Restarted Rosegarden and still no sound. Did it again, or started over, and good sound! I don’t know what I did. I had tried different .mid files, different sound fonts, and now all the .mid files play nicely. It could be the soundfont. I’ll have to try that some more but making sure to remember which one is currently working.

The biggest thing was following your suggestion of managing the MIDI devices. It seems the 128:0 Synth input port keeps disappearing often and I have to make sure it’s selected for each file. Thanks for your help in alerting me to that. I don’t know what a transport is unless it’s what I would call a cursor which tells where it plays. I rewind that each time. I can play files and create music, or make that, sounds. At least I have someplace to start from now. Thanks for your help. I found MuseScore is available from some of the user projects so now I’ve had some success, I may see how that works. For some reason, I never had discovered the “Include users’ home projects” option. Thanks for that, too. You said “rncbc” was ok since he was involved in the Qsynth development. But how safe are the others which I know nothing about?

I should have added “if at first it doesn’t work, close everything and repeat the process”. I know that feeling “I don’t know what I did” on this application. Maybe when sound fails with the layers Rosegarden/Qsynth/PulseAudio/ALSA, it leaves one of those in a bad state. I don’t think it’s a problem with the soundfont, although IIRC mine is the same as yours and I have also used an alternative proprietary soundfont.

The biggest thing was following your suggestion of managing the MIDI devices. It seems the 128:0 Synth input port keeps disappearing often and I have to make sure it’s selected for each file. Thanks for your help in alerting me to that.

You’re welcome. I’ve also had that problem before.

I don’t know what a transport is unless it’s what I would call a cursor which tells where it plays. I rewind that each time.

It’s just a hangover from those old audio/video tape players – the bit that transports the tape past the read/write heads for rewind/forward/play etc, usually the buttons for doing that. :slight_smile:

You said “rncbc” was ok since he was involved in the Qsynth development. But how safe are the others which I know nothing about?

I would rely on just three sources for Qsynth: openSUSE (they dropped it sometime ago); Packman; and rncbc. I don’t bother with the rest if I get one of those. Home projects can be very experimental where the packagers are learning the ropes, so it’s a question of “suck it and see”. However, I have had good results with “rncbc”, and with some video drivers. You very quickly find out the reliable ones. If using 1-Click, it’s safest to disable those home repos until you need them again.

Glad the tips were helpful, and hope you enjoy those applications (when it all works)? :wink: