Hi Scott,

thanks for this nice feature! It looks very useful to me (and wolke). We 
tested it today and it works fine for us. I applied the patch some 
minutes ago, it should be in svn now (rev 210).
Thanks,
Sebastian
 


Scott Bahling schrieb:
> Hi,
>
> Over the last few days I have been cleaning up the code for an added
> feature to Hydrogen that I have been using for quite awhile now (over 2
> years actually). I call the feature Lead and Lag. It is a per note
> property like velocity or pan that allows you to set that the note leads
> or lags the actual beat by a small amount The range is +/- 5 ticks which
> equals around +/- 10 ms at a tempo of 120bpm. The control widget itself
> works just like pan control in the pattern editor, and is found in the
> note properties selector below Velocity and Pan.
>
> I have found this to be a really nice feature. You can change the feel
> of a beat quite drastically by adjusting key notes by a small amount.
> For a basic rock beat I typically set the 2 and 4 ahead or behind the
> beat depending on the feel that I am looking for. The real fun starts
> when you use the feature in creative ways. You can make some pretty
> wacky beats by adjusting the timing of some of the beats with extreme
> values. I also used it when simulating a drum roll. I programmed a
> series of 32 or 64th notes and created a sin wave pattern in the
> Lead /Lag control. The gap between the notes slowly fluctuates back and
> forth and adds a bit of that swirling sound. 
>
> A few notes about the implementation:
>
> In order to play notes ahead of the beat, I needed to implement a
> "lookahead" which primes the playback note queue with notes in the
> future. This does _not_ cause a delay in playback. The song or pattern
> starts on time and is in sync with the transport. It is just that the
> note queue is filled aggressively once playing starts. This works quite
> well, and the only limitation is that the first note can't be played in
> the future (ie before the 0 frame).
>
> Since the note queue order is based on the absolute note position and
> does not take into account any offsets from the lead and lag or even the
> humanize function, I had to change the standard queue to a priority
> queue. The queue is set up to pop the notes in order of playback based
> on the absolute note position plus any offset. This plus the lookahead
> have the added effect of making the humanize time function work both
> ways. Before it only could lag notes because by the time notes were
> pulled from the queue and sent to the sampler for playback, it was too
> late to playing anything ahead of the beat.
>
> The patch also adjusts the getGaussian calculation. It was set to prefer
> to add offsets to note timing. I am not sure why - maybe because
> humanize time was not working as designed before? I set it up to vary
> both ahead and behind the beat equally.
>
> Another small feature of the patch is that I setup the middle mouse
> click (or ctrl-right mouse click) to center the Pan or Lead/Lag
> controls. I have another patch that I will send later that adds mouse
> wheel support for adjusting these note controls.
>
> I guess that's it. I have tested this quite a bit over the months, but I
> was using an old svn snapshot. I have forward ported it to fit the
> current code base and have done basic testing. Would be great if it can
> make it into the 0.9.4 release.
>
> -Scott
>   
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> ------------------------------------------------------------------------
>
> _______________________________________________
> Hydrogen-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/hydrogen-devel


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Hydrogen-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hydrogen-devel

Reply via email to