Thank you Scott!! This rocks!


On Thu, Jun 26, 2008 at 3:30 PM, Sebastian Moors <[EMAIL PROTECTED]> wrote:
> 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
>
>

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