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
