ahlstromcj / sequencer64

A major reboot of Seq24. Current release 0.97.0 (2021-05-13), native JACK MIDI, Song recording, playlists, and a Windows/Qt version. For fresher code, see the Seq66 project. Note that trigger and mute-group-in-MIDI-file formats have evolved! Back up your work!
GNU Affero General Public License v3.0
237 stars 28 forks source link

Any mechanism for live tempo control? #86

Open sirjohndfox opened 7 years ago

sirjohndfox commented 7 years ago

G'day I'm trying to use seq64 in a sort of headless-self-accompaniment capacity, is there any prospect of changing tempos while the transport is running? I know it's a difficult topic, I'd love to hear any ideas. Cheers John

ahlstromcj commented 7 years ago

Well, you can map MIDI controls to bpm up/down (coarse and fine, the amounts defined via the bpm_step_increment and bpm_page_increment settings in ~/.config/sequencer64/sequencer64.usr). BPM currently affects all tracks.

Check out the sequencer64-doc project, it has a 170-page indexed document on seq64. Good luck!

-------- sirjohndfox 00:09 Fri 19 May --------

G'day I'm trying to use seq64 in a sort of headless-self-accompaniment capacity, is there any prospect of changing tempos while the transport is running? I know it's a difficult topic, I'd love to hear any ideas. Cheers John

— You are receiving this because you are subscribed to this thread. Reply to this email directly, [1]view it on GitHub, or [2]mute the thread.

Reverse link: [3]unknown

References

Visible links

  1. https://github.com/ahlstromcj/sequencer64/issues/86
  2. https://github.com/notifications/unsubscribe-auth/AHnVqDw1ImkiZUoWc5ni8ukxRWfhA9x1ks5r7UAogaJpZM4NgKCD
  3. https://github.com/ahlstromcj/sequencer64/issues/86

-- Advancement in position.

Animtim commented 7 years ago

Hi, I see what he means: for now, when using jack transport, the bpm seems to be locked in seq64 while playing. That is both true as master and as slave. For now my workaround is to use "old school" sync with midi clock, and not use jack transport.

Note that in my case, as I want to sync seq64 with ardour5 and the latter doesn't seem to support getting external tempo, I define/change the tempo in ardour and send its midi clock to seq64.. but that is more an issue from the ardour side.

ahlstromcj commented 7 years ago

Hmm, at one time I thought that worked, will investigate over the weekend. JACK transport is a JACK client separate from the MIDI JACK client. Thanks for the info!

-------- Animtim 02:30 Fri 19 May --------

Hi, I see what he means: for now, when using jack transport, the bpm seems to be locked in seq64 while playing. That is both true as master and as slave. For now my workaround is to use "old school" sync with midi clock, and not use jack transport.

Note that in my case, as I want to sync seq64 with ardour5 and the latter doesn't seem to support getting external tempo, so I define/change the tempo in ardour and send its midi clock to seq64.. but that is more an issue from the ardour side.

— You are receiving this because you commented. Reply to this email directly, [1]view it on GitHub, or [2]mute the thread.

Reverse link: [3]unknown

References

Visible links

  1. https://github.com/ahlstromcj/sequencer64/issues/86#issuecomment-302655543
  2. https://github.com/notifications/unsubscribe-auth/AHnVqHd_R75ps_Pcr2tBy0m5SIQFaS1Cks5r7WEfgaJpZM4NgKCD
  3. https://github.com/ahlstromcj/sequencer64/issues/86#issuecomment-302655543

-- Your true value depends entirely on what you are compared with.

ahlstromcj commented 7 years ago

Made some progress on this one (the latest in the wip branch). Needs more testing, however.

mxmilkiib commented 7 years ago

@Animtim i filed an Ardour bug for that.

Animtim commented 7 years ago

Thanks @milkmiruku :)

I started quickly testing the wip branch, changing bpm seems to work now with jack transport, at least correctly as slave. When using seq64 as jack transport master, changing bpm does some weird time-position shift, both when using numeric input or the tap bpm button. And also, when using it like this with ardour, ardour does some weird stop/play at every bpm change from seq64.

Animtim commented 7 years ago

Re, after testing again launching only seq64 as transport master and carla as plugin host, changing bpm in seq64 doesn't make weird time-position shift, so it was probably a kind of transport-position conflict from launching ardour before.

georgkrause commented 6 years ago

Yesterday i tried to sync bitwig to seq64 with jack transport. if seq64 is the master, bitwig does really weird stuff. so this is not gonna work. if bitwig ist master, i need to stop playback in order to get the new bpm to seq64

ahlstromcj commented 6 years ago

JACK has limitations with changing BPM:

https://community.ardour.org/node/14220

"JACK cannot represent tempo ramps in any sensible way.

"It sounds as if there may be a bug in setting the JACK tempo information, but even if this bug is fixed, you should not expect JACK to be able to keep multiple applications in sync if Ardour is ramping. JACK's model of tempo just does not include ramping. If it works, it will only be because the changes are slow enough or small enough for the errors not to matter."

I will still check into it more, of course.

-------- Georg Krause 00:00 Sat 03 Feb --------

Yesterday i tried to sync bitwig to seq64 with jack transport. if seq64 is the master, bitwig does really weird stuff. so this is not gonna work. if bitwig ist master, i need to stop playback in order to get the new bpm to seq64

— You are receiving this because you commented. Reply to this email directly, [1]view it on GitHub, or [2]mute the thread.

Reverse link: [3]unknown

References

Visible links

  1. https://github.com/ahlstromcj/sequencer64/issues/86#issuecomment-362788448
  2. https://github.com/notifications/unsubscribe-auth/AHnVqGKdFmg_IvHE6GHmWY_EzBxWN_1hks5tRBILgaJpZM4NgKCD
  3. https://github.com/ahlstromcj/sequencer64/issues/86#issuecomment-362788448

-- Be different: conform.

georgkrause commented 6 years ago

actually, if there is no possibility, i dont care at all. the current state is quite fine for me since i would only change tempo between two songs and could restart transport in seq64. i just thought it is not as expected and wanted to report.