Mission: Jack support in Kdenlive for Ubuntu Lucid 10.04

Hi there!

Kdenlive is just an awesome software, I just love it.
I've been working on building/packaging multimedia packages for the next Ubuntu version (will be release by the end March 2010).
(https://launchpad.net/~falk-t-j/+archive/lucid)

I packaged a lot of audio apps so far, so I'm now focusing at video production.
Since my favourite video editor is Kdenlive, I want to get it as stable/working as possible.

The problem is Kdenlive's audio, it just doesn't work right at the moment.
Ideally, Kdenlive should have full Jack support with Transport too.

I've checked this forum for posts about it and I know that Transport will not get here soon, but at least Jack audio output may work.
And I believe that using Jack will fix the popping sounds and maybe some other problems.

I'm not sure what Kdenlive uses for output audio, but I'm guessing it's all about mlt.
If this is true, Jack support may come if:
- mlt uses Xine for audio
- mlt uses ALSA for audio and pulseaudio doesn't interfer (pulse and jack don't combine very well)
- mlt has, maybe optional, built-in support for Jack

Having Kdenlive with Jack support is my top-priority now, but I'm not sure how to get there.
Any help is appreciatted.

Thanks in advance.

PS: This is my first post

Hi!

Yes, all audio / video processing is done at the MLT level. If you are interested in helping with the development, you should post your ideas / questions on the MLT mailing list (you need to register before posting):

https://lists.sourceforge.net/lists/listinfo/mlt-devel

From what I know, MLT uses SDL for audio and video output.

Just subscribed to mlt mailing list and asked about Jack.

I know some C coding (but not C++, although it's similar), but I didn't saw any app using SDL that supports Jack (so it might not be possible)
Maybe bio2jack ?

Isn't MLT suppose to have Xine support? (there's some code about it in the source).
Using Xine would solve the problem and it's easier, but not sure how to enable it (or if it's even possible)

Partially done already.

I was able to get PulseAudio and Jack playing together without problems (by using a custom pulseaudio config file, and a script I made to autostart pulse after jack (or kill it and restart if running) ).

This set-up allows to use Kdenlive when Jack is running, and there are no chopping sounds!

For comparison, I made this test:

Pulseaudio without Jack, run kdenlive -> sound is crappy
Pulseaudio with Jack, run kdenlive -> sound is playing as it should be

So having pulseaudio running with Jack is actually a good thing!

If you want to test this out, check the PPA at the top, and install "pulse-jack" (you'll need pulse with jack support installed)

I've studying some C++ and I now know enough to get Jack Transport functions to work and compile.

My idea is to add 2 new files to kdenlive source: "jacktransport.cpp" and "jacktransport.h".
I'll make some basic transport funcionality and them submit the code.

I'll be back soon!

ha... seems a little too much for me.
I'll write a basic C++ app instead, so the devs can see what is needed to get Jack Transport working

Expect it to be ready in 2 weeks

Here is some basic code.

Implemented:
- Connect to Jack
- Play/Pause Transport
- Go to a specific Jack frame
- Get the Current Jack frame
- Close/Kill Jack connection

But please note that most of the GUI stuff doesn't work.
I'm a python developer, not C++, so I don't usually bother about converting QString->int or int->str->QString.
You should look into the code itself, which is the important stuff.

PS: The attached file is really a tar.gz file, just rename it

Thanks for the code. I think jack transport should probably be integrated at the MLT level, with GUI options in Kdenlive to enable/disable it.

I attached your code to the bug report, and I think further discussions could be gathered in the bug report.

I don't think that feature can make it in the next Kdenlive release which is due in 10 days, but will look at it asap.

regards

Thanks.

But I'm not so sure about Jack Transport in MLT.
Isn't MLT just the engine behind Kdenlive?

We should discuss this in the bug report.

See ya soon

this is whats preventing me from using Kdenlive as my main vid editor,

the audio in kdenlive is too crackly,

if kdenlive gets Jackd support it would be great!

Hi,

I have configured my .asoundrc file so that every application that uses alsa routes its output into jack.

http://wiki.ubuntuusers.de/jack/Programme_ohne_Jack-Schnittstelle

this seems to work with almost every application except with kdenlive - I'm getting sound, but it is more a glitchy tecno song and slows down video playback to a real slomo show...

does anyone have other experiences?

greetings

KXStudio distro uses the same technique with .asoundrc, and it works fine for me. Sorry I could not help any more.

Yay, I just had to lower the jack Frames/Period parameter and now it works just fine ;)

greetings

What's going on with the qjackctl + kdenlive project now? Will kdenlive have jack support soon?

If Kdenlive becomes able to use Jack as an audio engine in the future, that will be a dream come true. I would love to use Kdenlive in sync with other audio software and encode audio at 24bit 96kHz as well. What can I do to help Kdenlive developers realize this dream?

Since Kdenlive v0.8 will be released sometime in March, I wouldn't expect v0.8 to have Jack support already, but I really hope that Jack support becomes an important priority for a future Kdenlive release. If the project is already happening, then I'd like to find more info on how it's progressing (or not progressing). Very very very interested. Kdenlive is already top-notch but with Jack support, it would become a gargantuan behemoth monster of victory.