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
235 stars 29 forks source link

[Question/Feature request] Live midi pattern recording #188

Open zigmhount opened 4 years ago

zigmhount commented 4 years ago

Hello! First, thank you so much for your work on Sequencer64, amazing improvements to the already great and venerable Seq24! I've followed closely the development of the midi control output to use with my Akai APC Mini - awesome. The only think I miss now is to easily record a midi pattern in an empty slot without too much fiddling with the mouse or keyboard, as in a live setup.

My ideal feature would be e.g.

  1. when an empty pattern is selected (on the control surface)
  2. to automatically open the pattern editor
  3. automatically activate Dump Data to MIDI Bus
  4. automatically activate Midi pass-through
  5. automatically activate Record Midi data
  6. automatically set Merge to Expand the sequence to fit recording
  7. and manually select the midi output to the synth.

How easy/difficult would it be to implement keyboard or midi shortcuts to these buttons (steps 2 to 6), or preset them for every new pattern editor?

Alternatively I am considering automation with mouse clicks emulation through xdotool, but that would be very dirty and not robust. I've been switching a lot between seq64 and Luppp, and even though I use only midi instruments and virtual synths Luppp allows me to focus much more on the music rather than the software - but limiting the further correction of sequences or recording of a track based on the loops like Seq64 can do.

Looking forward to any suggestion! Thanks

ahlstromcj commented 4 years ago

Sounds reasonable! I am thinking of a clause in the "rc" file that lets you specify what buttons automatically get pushed in the pattern editor when it first comes up. If you think that makes sense, I will implement it in Seq66, test it out, and backport it to seq64's Gtkmm and Qt interfaces.

-------- zigmhount 14:23 Sat 07 Dec --------

Hello! First, thank you so much for your work on Sequencer64, amazing improvements to the already great and venerable Seq24! I've followed closely the development of the midi control output to use with my Akai APC Mini - awesome. The only think I miss now is to easily record a midi pattern in an empty slot without too much fiddling with the mouse or keyboard, as in a live setup.

My ideal feature would be e.g.

 1. when an empty pattern is selected (on the control surface)  2. to automatically open the pattern editor  3. automatically activate Dump Data to MIDI Bus  4. automatically activate Midi pass-through  5. automatically activate Record Midi data  6. automatically set Merge to Expand the sequence to fit recording  7. and manually select the midi output to the synth.

How easy/difficult would it be to implement keyboard or midi shortcuts to these buttons (steps 2 to 6), or preset them for every new pattern editor?

Alternatively I am considering automation with mouse clicks emulation through xdotool, but that would be very dirty and not robust. I've been switching a lot between seq64 and Luppp, and even though I use only midi instruments and virtual synths Luppp allows me to focus much more on the music rather than the software - but limiting the further correction of sequences or recording of a track based on the loops like Seq64 can do.

Looking forward to any suggestion! Thanks

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

References

Visible links

  1. https://github.com/ahlstromcj/sequencer64/issues/188?email_source=notifications&email_token=AB45LKACWAUX24OYIF4H2HTQXQO5LA5CNFSM4JXS4LMKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H63HAZA
  2. https://github.com/notifications/unsubscribe-auth/AB45LKFEFOEIK23BYUABFQ3QXQO5LANCNFSM4JXS4LMA

-- Don't go surfing in South Dakota for a while.

zigmhount commented 4 years ago

That sounds good! I'm unfortunately no programmer (I can barely hack the code when I know what to modify), but let me know if there's anything I can test or help in any other way :)

zigmhount commented 4 years ago

Well, actually one more thing is needed: opening up the pattern editor when pressing the Midi control button of an empty pattern... I don't think there is the possibility for a MIDI binding for the standard keyboard "=" binding (i.e. pressing = followed by q to open the pattern editor for the 1st pattern of the 2nd row), and pressing = followed by the MIDI button doesn't work. SO I have no way of opening the pattern editor with only MIDI bindings. Am I missing something?

There is a MIDI binding for "MIDI Record" though, but I can't figure out what it actually does since it doesn't seem to activate the button "Record MIDI data" in the pattern editor...

ahlstromcj commented 4 years ago

There's room for expansion for 6 new controls. While looking into that I will check for a bug in the existing controls. Thanks!

On Mon, Dec 9, 2019, 10:53 zigmhount notifications@github.com wrote:

Well, actually one more thing is needed: opening up the pattern editor when pressing the Midi control button of an empty pattern... I don't think there is the possibility for a MIDI binding for the standard keyboard "=" binding (i.e. pressing = followed by q to open the pattern editor for the 1st pattern of the 2nd row), and pressing = followed by the MIDI button doesn't work. SO I have no way of opening the pattern editor with only MIDI bindings. Am I missing something?

There is a MIDI binding for "MIDI Record" though, but I can't figure out what it actually does since it doesn't seem to activate the button "Record MIDI data" in the pattern editor...

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/sequencer64/issues/188?email_source=notifications&email_token=AB45LKC7DUOEWJWEDU6W4ADQXZSV7A5CNFSM4JXS4LMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGJVC4A#issuecomment-563302768, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKGQ6O7B3TSDPJKOOO3QXZSV7ANCNFSM4JXS4LMA .

zigmhount commented 4 years ago

Great, thank you!

zigmhount commented 4 years ago

I've seen only yesterday that you referenced a commit to this thread! I've just tested it, works great, thank you so much. One issue though is that if I use the Pattern Edit Midi binding as follows, it sets Seq-edit to True, I select a sequence to edit and it opens the window, but Seq-edit doesn't change to False unless I repress the button 84: 100 [0 0 0 0 0 0] [1 0 144 84 127 127] [1 0 128 84 127 127] Maybe something I should correct in the 3rd column for Off?

ahlstromcj commented 4 years ago

Actually, the seq-edit and event-edit MIDI control events are coded to trigger the action of opening the appropriate editor dialog, and then clear the flag automatically. The main window has a timer that check for the seq-edit status, opens the window, and clears the flag. So the "[1 0 128 84 127 127]" should just be all zeros. I think what is happening is that Note On raises the flag, the window opens, the flag is cleared, and the Note Off raises the flag again.

However, I will reinvestigate. Let me know if the tweak noted above works or does not work. Probably need at least to better document it, or maybe ignore some events. Frankly, the toggle/on/off setup inherited from Seq64 is a bit clumsy for some tasks.

-------- zigmhount 07:44 Sat 18 Apr --------

I've seen only yesterday that you referenced a commit to this thread! I've just tested it, works great, thank you so much. One issue though is that if I use the Pattern Edit Midi binding as follows, it sets Seq-edit to True, I select a sequence to edit and it opens the window, but Seq-edit doesn't change to False unless I repress the button 84: 100 [0 0 0 0 0 0] [1 0 144 84 127 127] [1 0 128 84 127 127] Maybe something I should correct in the 3rd column for Off?

-- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/ahlstromcj/sequencer64/issues/188#issuecomment-615882865

-- As in certain cults it is possible to kill a process if you know its true name. -- Ken Thompson and Dennis M. Ritchie

zigmhount commented 4 years ago

That tweak solves it, thanks! The toggle/on/off is indeed clumsy, but it gives full flexibility :) Initially I used the Toggle mode to bring up the pattern editor, but without light on the corresponding button (as raised in #201 ) I got lost not knowing whether it was on or off, so I chose to maintain pressing button 84 when selecting the pattern to edit. But I could go back to Toggle once I get the lights on.