LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
7.8k stars 984 forks source link

Better JACK support #1467

Open tresf opened 9 years ago

tresf commented 9 years ago

This is a placeholder to consolidate JACK related issues and requests. If a new JACK bug is reported on the tracker, close it out and mark it as a duplicate of this bug, #1467


Enhancements:

Bugs:

Related:

Umcaruje commented 9 years ago

This should be turned into a task list so its easier to mark fixed issues.

tresf commented 9 years ago

This should be turned into a task list so its easier to mark fixed issues.

:)

simonvanderveldt commented 7 years ago

FYI Initial JACK midi support is in #2038

unfa commented 7 years ago

Does anyone know what is the status of JACK transport support?

It'd really kick ass to have this, even in a simplest form (like - no tempo changes supported).

letsdig commented 6 years ago

I've checked out on this http://jackaudio.org/files/docs/html/transport-design.html#transportcontrol seems to be possible implement that when the play and stop buttons are played...

gi0e5b06 commented 6 years ago

@matt-bel https://github.com/gi0e5b06/lmms/commit/d8fb40cdb4943e4c0589281f8c3a4ad2f4a2dc0c lmms as a client, basic transport.

Umcaruje commented 6 years ago

@gi0e5b06 here's how you make a Pull Request out of that commit:

First, you add an upstream remote (ignore if you did this)

$ git remote add upstream https://github.com/LMMS/lmms.git

You need to check out a new branch:

$ git checkout -b basicJackTransport

Next, we need to hard reset that branch to the current master:

$ git fetch upstream
$ git reset --hard upstream/master

Then you want to cherry pick your commit on the new branch:

$ git cherry-pick d8fb40cdb4943e4c0589281f8c3a4ad2f4a2dc0c

After that you can push your branch:

git push --set-upstream origin basicJackTransport

Then on the github UI on the website, when you go to https://github.com/LMMS/lmms, you'll see this: image Click the green button to make a pull request.

And boom, your change gets reviewed and can safely get tested and merged.

letsdig commented 6 years ago

@gi0e5b06 i've tryed to compile with it but that patch is not working, are you planning to debug and get it done out or just abandoned?

gi0e5b06 commented 6 years ago

The first patch was adding the slave mode (qjackctl controlling lmms). The new patch (WiP) https://github.com/gi0e5b06/lmms/commit/45ccdc9e5b73c5ba9d38ea5890907d4e862837b9 adds the client mode (making the play/stop buttons in lmms working again) and introduces the ITransport interface. I'm planning to add full client mode, however it is a bigger task because of the actual bad design/spaghetti code. I don't plan to add master mode soon.

gi0e5b06 commented 6 years ago

@zonkmachine About the crash on exit (if you're using Jack), this is fixed by https://github.com/gi0e5b06/lmms/commit/b21a9cf3e03f49091cd064c6afde38708198f45f . Jack was still processing in the destructor.

@matt-bel About the sync: both Jack and LMMS being fully digital, they should stay synchronized (at the frame level). So that's something that can be fixed somehow. I put the transportQuery() call at the end of the processing. Let me know if it is better or worse.

letsdig commented 6 years ago

@gi0e5b06 just tested it and tried to sync with ardour metronome (only jack transport) + hydrogen kick and snare (ardour is perfectly in sync to hydro) with slave master and client option, still not perfectly in sync, there's like a some milliseconds delay, tested the other day (not this build but would be the same result) with jack transport + midi clock = https://www.youtube.com/watch?v=2PYt4hJUA9o, perfect because the midi delay control maybe a regolable controller on the midi delay may help!? transport not working if song editor loops are used in any case

zonkmachine commented 6 years ago

@gi0e5b06 Thanks! I've bumped #devtalk on Discord.

ycollet commented 6 years ago

I vote for this one. Required to allow lmms to control xjadeo

zicklag commented 3 years ago

Sorry for the ping if commenting like this is discouraged, but I would love to have Jack transport support. ( just tell me and I won't do it again ;) ) I sync up MuseScore with Ardour to add digital instruments to my recordings, but LMMS has a lot more features from an effects and automation standpoint so it would give me a lot more powers if I could sync LMMS with Ardour.

trebmuh commented 3 years ago

@tresf : what about adding #5456 in https://github.com/LMMS/lmms/issues/1467#issue-52483742?

Spekular commented 3 years ago

@trebmuh done!

lorenzosu commented 1 year ago

Hi, I think by also reading other comments that Jack Transport is rather high on the list... I've commented on the specific issue which was closed (#523). Wondering if this is still being considered and what other users think.

ycollet commented 1 year ago

For me the issue with Jack is to be able to sync jack time between lmms and xjadeo to be able to compose music for the image. Xjadeo is using this as sync source: Sync sources:

tresf commented 1 year ago

Hi, I think by also reading other comments that Jack Transport is rather high on the list... I've commented on the specific issue which was closed (#523). Wondering if this is still being considered and what other users think.

We'd be happy to reopen any closed or consolidated bug reports if people want to start working on them.

letsdig commented 1 year ago

For me the issue with Jack is to be able to sync jack time between lmms and xjadeo to be able to compose music for the image. Xjadeo is using this as sync source: Sync sources:

This comment will not fit as issue answer and its maybe OT but as being requested from long time, this can be 'temporary(?) solved' in kinda couple ways:

Regards.

Snowiiii commented 3 months ago

Hey we updated jack to latest in https://github.com/LMMS/lmms/commit/3f5ac806e9c74048da6e2b0276ddc3581fdc575a does it may have improved the situation?

letsdig commented 3 months ago

why this would improve something never actually done?