Guitarix DrumSequencer

All your LV2 and LADSPA goodness and more.

Moderators: MattKingUSA, khz

tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

gimmeapill wrote:Update: That one was indeed related to the latest kernel 4.11-rt, rolling back to 4.9-rt and everything is butter smooth. no other crash or sluggishness encountered.
That's good to hear.
gimmeapill wrote:Wanted to try out that one, but I have no toggle in either my akai midimix or korg nanopad2. The pads or buttons only send notes.
I don't want to remap them since I use them for other purposes, and converting on the fly with pure data or another tool seems like overkill.
Couldn't we just get support for midi notes Guitarix? I'd like to use my pads to change presets too...
Jack transport, means you could use qjackctl or your Sequencer or DAW as a master to switch guitarix effects on/off.

To Midi Note support, you know that I'm not eager to do that, as it has some dis-advances , but, it seems that you really want this.
Here is a small patch so that you could implement it on your local copy:

Go to trunk/src/gx_head/engine/gx_paramtable.cpp line 746:

Code: Select all

	} else if ((in_event.buffer[0] ) > 0xf0) {   // midi clock
insert before this line the following snippet:

Code: Select all

        } else if ((in_event.buffer[0] & 0xf0) == 0x90) {   // Note On
			set_ctr_val(in_event.buffer[1], 1);
			val_chg();
rebuild, and use your pad's. Now, to control a parameter in guitarix with Note ON events, you need to select "toggle parameter" and type "constant state toggle" in the Midi learn widget.

Before I could implement it really in guitarix, I need to create a logic to differ Note On events from CC events for the internal parameter table, and will made it selectable, so that people how want to use CC's to control guitarix while playing a synth with the Note events could deselect this feature. But in the mean time you could use it already, as I didn't know when I'll find the time to do it.
gimmeapill wrote:And as I cannot make a single post without being negative, here's a new issue (minor) spotted with the GUI: I was wondering why my 4 on the floor patterns were sounding so funky, and noticed that the beat markers are misplaced: they are on steps 4,8,12,16 etc... when they should be on 1,5,9,13, etc...
Ups, thanks, will fix it.
Hint's like this drives a project like guitarix forward. :D
On the road again.
gimmeapill
Established Member
Posts: 564
Joined: Thu Mar 12, 2015 8:41 am
Has thanked: 44 times
Been thanked: 8 times

Re: Guitarix DrumSequencer

Post by gimmeapill »

tramp wrote: To Midi Note support, you know that I'm not eager to do that, as it has some dis-advances , but, it seems that you really want this.
Here is a small patch so that you could implement it on your local copy:

Go to trunk/src/gx_head/engine/gx_paramtable.cpp line 746:

Code: Select all

	} else if ((in_event.buffer[0] ) > 0xf0) {   // midi clock
insert before this line the following snippet:

Code: Select all

        } else if ((in_event.buffer[0] & 0xf0) == 0x90) {   // Note On
			set_ctr_val(in_event.buffer[1], 1);
			val_chg();
rebuild, and use your pad's. Now, to control a parameter in guitarix with Note ON events, you need to select "toggle parameter" and type "constant state toggle" in the Midi learn widget.

Before I could implement it really in guitarix, I need to create a logic to differ Note On events from CC events for the internal parameter table, and will made it selectable, so that people how want to use CC's to control guitarix while playing a synth with the Note events could deselect this feature. But in the mean time you could use it already, as I didn't know when I'll find the time to do it.
Cool, thanks!
I tested very briefly and that seems to work: I can now map notes to midi controllable elements - been waiting for that one for a long time ;-)
I still have to figure out the transport and pattern selection part though, is transport control supposed to work with jack1?

& Coming back to that drum sequencer:
I had another crash while playing around with it (+a flock of xruns), but I was not sending any midi data at that time.
Another issue: the Randomize button doesn't seem to be functional.

Cheers,

LX
tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

Fortunately I get some unexpected free time, so I could work a bit on the Midi Note to controller implementation.
It's fully implemented now in guitarix-git. (you'll need to remove and reconnect previous used Midi Note controllers as I've changed the numbering scheme to revert the conflict with Midi CC numbers.)
Also I work a bit on the drumsequencer. I've added: toggle next preset and reset stepper. Both could be controlled by Midi messages.
I've also implemented some guards around some functions in the drumsequencer to avoid race-conditions (which may be the culprit for the segfaults you experience)

So to check out the latest git you need to remove your own edits, you could do that by running

Code: Select all

git stash
before

Code: Select all

git checkout
Hope you like this new features and we soon get this baby stable. :D

regards
hermann
On the road again.
tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

I've done some more work on the drumsequencer, now, you could load as well the previous preset ( as well with MIDI CC or Note On) and could skip or repeat a beat (also with Midi support).
This is a lot of fun to play with. :D

Image
On the road again.
gimmeapill
Established Member
Posts: 564
Joined: Thu Mar 12, 2015 8:41 am
Has thanked: 44 times
Been thanked: 8 times

Re: Guitarix DrumSequencer

Post by gimmeapill »

Tested very briefly:

- midi note support is great - thanks again for that!

- stability seems to be ok.

- reset stepper is fun (especially when bashing some pads), yet I would leave this kind of stuttering effect to a BPM sync'ed delay and not put it inside the sequencer. The reason is that when you switch off the effect, you're back in your sequence, at the right position. With the whole sequencer going back and forth, you'll end up lost. So this makes it pretty unusable in a live scenario if you're sync'ing with other things. But for toying around, yes it's fun.

- toggle next/prev preset works, but it's usefulness is also limited: it switches pattern immediately (I think Hydrogen does that also), rather than at the end of the currently playing pattern. So no scheduling possible like with HW step sequencers, the pattern change has to be at the right moment - this is usually a deal breaker in a live situation.
Also, it doesn't seem to be possible to bind a specific preset/pattern to a key or cc (that would be true also for the main Guitarix application unless I missed something).
The scenario here would be: press C-4 and pattern 01 will start playing when pattern 00 finishes. Then press C#-4 while 01 is looping and pattern 02 will start playing after 01 finishes. This way you can control song sections on the fly, which can be particularly useful in combination with the preset chaining feature (either in an electronic liveset situation or for auto-accompaniment when playing an instrument).

- randomize doesn't seems to randomize the whole sequence (as would be expected with step sequencers), instead it seems to introduce a randomized delay to the existing sequence. I would also leave that function to external delays.

I'll try to spend more time on it over the week end to confirm if the stability issues are gone or not.
tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

falkTX wrote:would it be possible to have this as an lv2 plugin too?
it would be really handy for my setup in carla :)
obviously it would miss the playback controls since the host is dictating the time
Right now it's still in deep development, later, when it's finished, sure, I'll made a LV2 version.
gimmeapill wrote:- toggle next/prev preset works, but it's usefulness is also limited: it switches pattern immediately (I think Hydrogen does that also), rather than at the end of the currently playing pattern. So no scheduling possible like with HW step sequencers, the pattern change has to be at the right moment - this is usually a deal breaker in a live situation.


Good point, I'll sync it to the end of a pattern. (Done here already, just not committed right now)
gimmeapill wrote:Also, it doesn't seem to be possible to bind a specific preset/pattern to a key or cc (that would be true also for the main Guitarix application unless I missed something).
Guitarix use the "Instrument change" Midi message to set bank and preset. So in guitarix you could set any preset from any bank via midi CC.
Binding a cc message to a preset in the drumsequencer would be possible, needs only a GUI implementation to do it.
gimmeapill wrote:- randomize doesn't seems to randomize the whole sequence (as would be expected with step sequencers), instead it seems to introduce a randomized delay to the existing sequence. I would also leave that function to external delays.
Yes, I'm not happy with the randomiser, I've implemented it local here to randomize the hole sequence, but didn't liked it, so I made it as it is now (randomize the time between steps for some ms)

Thanks for your feedback, it helps me a lot to make the drumsequencer more useful.

regards
hermann
On the road again.
tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

So now I've pushed to git:

load next/previous preset on sequence end, not directly.
add switch to set stepper back on original beat position after skip/ repeat a beat.
randomize the sequence, not the beat.

regards
hermann
On the road again.
gimmeapill
Established Member
Posts: 564
Joined: Thu Mar 12, 2015 8:41 am
Has thanked: 44 times
Been thanked: 8 times

Re: Guitarix DrumSequencer

Post by gimmeapill »

Hi Hermann,

No time yet to test the latest changes and as I'll be without my music computer for the next few days, here's a very minor defect spotted over the week end (while trying the jack transport control):
Mapping the on/off button to a midi note or cc works fine for start/stop.
However using cc 24 and jack transport (tested with qjackctl) only stops the step counter in the GUI but not the sound.

Cheers,

LX
tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

gimmeapill wrote:However using cc 24 and jack transport (tested with qjackctl) only stops the step counter in the GUI but not the sound.
Oh yea, seems like something is fishy with the jack transport support, somehow I've broken it. :(
I'll rework it.

EDIT: and fixed in git.

regards
hermann
On the road again.
tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

So, slowly we get somewhere. :)

You could now connect as well midi cc or Note On to a DrumSequencer preset to load it. Presets will load on sequence start, so after the loop point.
Midi Note ON support is now fully integrated.
You could reset the sequencer to the start position, to start a new session.

I've needed to rework the DrumSequencer preset format a bit, to make it all work smooth, so, maybe you need first load and re-save your DrumSequencer presets to make it all work smooth.
On the road again.
gimmeapill
Established Member
Posts: 564
Joined: Thu Mar 12, 2015 8:41 am
Has thanked: 44 times
Been thanked: 8 times

Re: Guitarix DrumSequencer

Post by gimmeapill »

Hi Hermann,

New stuff is great!
- jack transport start/stop works ok now.
- the new randomization method is way more useful - and non destructive, which is also nice.
- The midi connect dialog to schedule a preset change seems to work as designed - it is very convenient with pads. Thanks for that I love it!
- No obvious issues or crashes detected during 15 solid minutes of testing.

Yet another idea: it could be nice to have some visual cue regarding which preset is currently playing and how many steps are left before the next pattern.
The step counter is also going outside of the window after the first 20 something steps, which can be a pain for long patterns, especially if they have different lengths.
So what about adding a very simple numeric step counter with the current/total steps (something like [48/64]) to overcome that limitation?

Otherwise, I still need to check the rest of the stepper features, but it starts to look like a winner ;-)
tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

gimmeapill wrote:Yet another idea: it could be nice to have some visual cue regarding which preset is currently playing and how many steps are left before the next pattern.
The step counter is also going outside of the window after the first 20 something steps, which can be a pain for long patterns, especially if they have different lengths.
So what about adding a very simple numeric step counter with the current/total steps (something like [48/64]) to overcome that limitation?
Great idea, done. :D
Image

a side effect of the step display is, that you could scratch the stepper with the mouse-wheel now. :lol:

To the "playhead" running out of window, there is already implemented a follow playhead function, just, I ain't like it, as I usually just wide the widget for the desktop wide, therefore I've disabled it.
Maybe I should add a selector to enable this feature. It's a bit annoying when you enter steps during run.
Other than that, thanks for your comments and suggestions, have fun with it, as I'm have a lot of fun with it as well. :D

regards
hermann

EDIT: I've added a switch to enable/disable follow play-head now.
On the road again.
tramp
Established Member
Posts: 2347
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 466 times

Re: Guitarix DrumSequencer

Post by tramp »

So now I've added a "bypass rack effects" direct out mode to the Drum Sequencer, so you could use the rack for your guitar effects and play along to the sequenced drums without being the drums processed by the following effects.
I'll do the same for the livelooper and the metronome.
On the road again.
Post Reply