I'm also willing to investigate this, as I'm finding jack to be the
most tolerable of choices right now in linux audio. I'm an experienced
C++ programmer and have done a little bit with jack and a couple
projects with Qt4.

My symptom is I repeatedly get booted by jack, which I assume is a
side effect of the non safe rt code, too complex a song, and too slow
a pc. The first thing I did was add a #define to conditionally turn
off the message dialog, as the default behavior made lmms unusable
with a relentless stream of error dialogs. Now it plays ok but when my
cpu gets too high the jack client occasionally gets booted and
restarted automatically. It's at least usable but by no means great,
especially as my songs become more complex.

Perhaps I can try a simple buffering mechanism on the jack processing
thread? While this would introduce a latency, it would also prevent
jack from kicking lmms until something better is achieved (or I get a
faster computer!).

- Carmelo

On Fri, Mar 26, 2010 at 10:10 AM, Filipe Lopes <[email protected]> wrote:
> Thanks. I'll see what I can do (don't expect much)
>
> 2010/3/26 Paul Giblock <[email protected]>
>>
>> The main problem you will have to conquer is the fact that LMMS uses a
>> lot of non-RT-safe code in what would have to be the process() thread.
>>  Between things like mallocs and blocking, there would be a whole lot
>> to refactor to get proper JACK support.  Also, there would be a great
>> deal of work to make LMMS actually use JACK for it's routing (I.e: to
>> wire a FX line to the Master line).
>>
>> Feel free to try this.  People really want JACK support in LMMS.  In
>> the meantime, I'm going to keep working on my core rewrite.
>>
>> -Paul
>>
>> On Thu, Mar 25, 2010 at 7:01 PM, Filipe Lopes <[email protected]> wrote:
>> > Hi there guys, thanks for this amazing app!
>> >
>> > I know you guys aren't too much interested in Jack support, so I think I
>> > can
>> > help with that.
>> > But first, I need to know if there's anyone already working on this.
>> > Also, some tips would be really useful, as I'm mostly a PyQy dev, not
>> > C++.
>> >
>> > Here's a small vid showing what I was able to do so far
>> > (play/pause/stop):
>> > http://kxstudio.sourceforge.net/downloads/lmms-trans_exp01.ogv
>> > (please download the file instead of open it, or it won't work).
>> >
>> > Thanks in advance
>> >
>> >
>> > ------------------------------------------------------------------------------
>> > Download Intel&#174; Parallel Studio Eval
>> > Try the new software tools for yourself. Speed compiling, find bugs
>> > proactively, and fine-tune applications for parallel performance.
>> > See why Intel Parallel Studio got high marks during beta.
>> > http://p.sf.net/sfu/intel-sw-dev
>> > _______________________________________________
>> > LMMS-devel mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/lmms-devel
>> >
>> >
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> LMMS-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/lmms-devel
>
>
From f19af04909085bb254765a5a11ce6cb8758ddc27 Mon Sep 17 00:00:00 2001
From: Carmelo Piccione <struktu...@flighty.(none)>
Date: Sat, 27 Mar 2010 17:21:43 -0400
Subject: [PATCH] Added a define to turn off prohibitive jack error dialog.

Mitigates issue when lmms frequently gets booted from jack
and displays a relentless stream of dialogs. Instead, same
behavior as before but a qtDebug() is made to stderr with
the relevant message.
---
 src/core/audio/AudioJack.cpp |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/core/audio/AudioJack.cpp b/src/core/audio/AudioJack.cpp
index 9eb0856..0d10eec 100644
--- a/src/core/audio/AudioJack.cpp
+++ b/src/core/audio/AudioJack.cpp
@@ -33,6 +33,7 @@
 #include <stdlib.h>
 
 #include "debug.h"
+#include <QtDebug>
 #include "engine.h"
 #include "templates.h"
 #include "gui_templates.h"
@@ -43,7 +44,7 @@
 #include "Cpu.h"
 
 
-
+#define SUPPRESS_JACK_RESTART_DIALOG 1
 
 AudioJack::AudioJack( bool & _success_ful, AudioOutputContext * context ) :
 	AudioBackend( tLimit<int>( configManager::inst()->value(
@@ -102,13 +103,19 @@ void AudioJack::restartAfterZombified()
 	{
 		m_active = false;
 		startProcessing();
+#ifdef SUPPRESS_JACK_RESTART_DIALOG
+		  qDebug() << "kicked by jack, thus restarting jack.";		  
+#else		
 		QMessageBox::information( engine::mainWindow(),
 			tr( "JACK client restarted" ),
-			tr( "LMMS was kicked by JACK for some reason. "
+			
+					  
+		      tr( "LMMS was kicked by JACK for some reason. "
 				"Therefore the JACK backend of LMMS has been "
 				"restarted. You will have to make manual "
-				"connections again." ) );
-	}
+			  "connections again." ) );
+#endif			  
+	}	
 	else
 	{
 		QMessageBox::information( engine::mainWindow(),
-- 
1.6.6.1

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
LMMS-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmms-devel

Reply via email to