lmms icon indicating copy to clipboard operation
lmms copied to clipboard

Better JACK support

Open tresf opened this issue 11 years ago • 22 comments

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:

  • [x] JACK support on Windows (#2136) and MacOS
  • [ ] JACK transport support #523
  • [x] JACK MIDI support #2038
  • [ ] JACK inputs (for recording, eventually) #908
  • [ ] JACK outputs #908
  • [ ] JACK sends #524
  • [ ] JACK freewheeling #908
  • [ ] JACK samplerate should be default for exports #2211
  • [ ] Support Jack v1 and Jack v2 in our AppImages #3719
  • [ ] Choosing how many outputs with JACK #5456

Bugs:

  • [ ] JACK output/rendering issues #1162
  • [ ] JACK reconnection issues #1240

Related:

  • [ ] ALSA to JACK bridge distortion #276

tresf avatar Dec 19 '14 13:12 tresf

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

Umcaruje avatar Mar 02 '15 17:03 Umcaruje

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

:)

tresf avatar Mar 02 '15 18:03 tresf

FYI Initial JACK midi support is in #2038

simonvanderveldt avatar Sep 19 '16 17:09 simonvanderveldt

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).

unfa avatar Nov 04 '16 11:11 unfa

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...

letsdig avatar Oct 30 '17 13:10 letsdig

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

gi0e5b06 avatar Oct 30 '17 20:10 gi0e5b06

@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.

Umcaruje avatar Oct 30 '17 22:10 Umcaruje

@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?

letsdig avatar Oct 31 '17 23:10 letsdig

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 avatar Nov 01 '17 21:11 gi0e5b06

@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.

gi0e5b06 avatar Nov 04 '17 22:11 gi0e5b06

@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

letsdig avatar Nov 04 '17 22:11 letsdig

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

zonkmachine avatar Nov 05 '17 07:11 zonkmachine

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

ycollet avatar Apr 14 '18 14:04 ycollet

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.

zicklag avatar Aug 09 '20 21:08 zicklag

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

trebmuh avatar Aug 09 '20 21:08 trebmuh

@trebmuh done!

Spekular avatar Aug 10 '20 08:08 Spekular

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.

lorenzosu avatar Apr 17 '23 08:04 lorenzosu

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:

ycollet avatar Apr 17 '23 08:04 ycollet

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.

tresf avatar Apr 17 '23 13:04 tresf

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:

  • Use carla as plugin (latest version), unblock extra features in carla preferences then go for the 'extra' tab and find the option to make the 'add jack app' tab appear. Now try to load xjadeo from the new tab 'Add jack application' , if everything works fine all should be synced with lmms. Didn't tried it with xjadeo but i usually load jack apps into lmms->carla this way, using pulse for out in lmms, carla as plugin should virtualize a synced jack environment .

  • Second way "i solved" this at this time is compiling/patchin from this fork: https://github.com/firewall1110/lmms/tree/jackdexsync Found that from this pull req: https://github.com/LMMS/lmms/pull/6066/commits/878a14ed64bf7d7d2c5c4dbafbea5c943cfc9892 Then: https://github.com/LMMS/lmms/pull/6066 Now.. i dont remember if i've just compiled this or just patched a master branch version cause i have the patched archive saved in my local storage and also i've compiled my own appimage from it long ago, you should just try and just in case maybe dig a little bit. It may have some minor bugs but to me its working. In the pull thread the author was syncing with xjadeo as example.

Regards.

letsdig avatar Apr 18 '23 17:04 letsdig

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

Snowiiii avatar Mar 20 '24 17:03 Snowiiii

why this would improve something never actually done?

letsdig avatar Mar 20 '24 18:03 letsdig