Am Sat, 28 Feb 2009 23:09:57 -0600
schrieb "Gabriel M. Beddingfield" <[email protected]>:

> [email protected] wrote:
> > in the lately third part of the video you can see how the transport jump. i 
> > hit all
> > the time altgr + \ to trigger tabtempo. somtimes i stop and start transport 
> > using the
> > spacebar also i go to 1 bar using the back key. 
> 
> Thanks for the video and this description.  I can make it happen now.
> 
> However, I can only make it happen with the Alt+'+' and Alt+'-' (or the +/- 
> buttons on the BPM window).
> 
> FWIW, If I use the comma to tap out a tempo change... it works fine.  If 
> Ardour 
> has a tempo change event... it works fine.  If I change the tempo with 
> InConcert... it works fine.
> 
> I'll look in to this.  :-)
> 
> Peace,
> Gabriel

hey,
today i have make a lot tests with h2 transport connected to ardour as slave 
and master.

i found out.!
ardour 2.7.1!! and ardour3!! works great as master with h2 as slave without the
getArdourTransportAdjustment (buffersize correction). so i have remove this 
only for
testing.

h2 as master need the buffersize correction to start without any brunchbumchrr. 
so i have write this patch.

after patching.

h2 as slave
(song mode)
+ no double hit at start. (start impulse from h2 or ardour)
+ follow correct tempo changes from master (ardour) 
 
(pattern mode)
+ no double hit at start. (start impulse from h2 or ardour)
+ no problem on fwd and rwd from ardour. found correct start position in 
pattern. e.g. at beat 2 
= unchanged to older versions. lost first ticks after tempochange from master 
(ardour) no notes in position 1 will played.
this problem exists since rev 85. 

(song mode)
h2 as master
+ no double hit at start. (start impulse from h2 or ardour)
+ no jumping in timeline on tempochanging during playback.

so imoh,
we can remove the whole getArdourTransportAdjustment function. because ardour 
2.7.1 and 3 , qjackctl(transport buttons), and seq24 produce no double hit 
anymore. 
only time master will need on two places - getBufferSize() what is the same 
than getArdourTransportAdjustment.
 
and notice the pattern mode problem (tempo change) exists the whole time rev85.
imo, because h2 use pattern position -1 if pattern mode is running.


for the moment the patch will not remove the getArdourTransportAdjustment 
function but
don't use it anymore. 

please test.

greetings wolke


Index: libs/hydrogen/src/IO/jack_output.cpp                                     
                                                                                
                                              
===================================================================
--- libs/hydrogen/src/IO/jack_output.cpp        (Revision 862)
+++ libs/hydrogen/src/IO/jack_output.cpp        (Arbeitskopie)
@@ -243,12 +243,10 @@
        // If Hydrogen is the JACK Timebase Master, then relocateBBT()
        // doesn't need to do much at all.
        if( Preferences::getInstance()->m_bJackMasterMode == 
Preferences::USE_JACK_TIME_MASTER &&  m_transport.m_status != 
TransportInfo::ROLLING) {
-               m_transport.m_nFrames = 
Hydrogen::get_instance()->getHumantimeFrames() - getArdourTransportAdjustment();
+               m_transport.m_nFrames = 
Hydrogen::get_instance()->getHumantimeFrames() - getBufferSize();
                WARNINGLOG( "Relocate: Call it off" );
                calculateFrameOffset();
                return;
-       } else if ( Preferences::getInstance()->m_bJackMasterMode == 
Preferences::USE_JACK_TIME_MASTER ) {
-               return;
        } else {
                if ( m_transport.m_status != TransportInfo::ROLLING || !( 
m_JackTransportPos.valid & JackPositionBBT ) /**the last check is *probably* 
redundant*/ ){
                        calculateFrameOffset();
@@ -383,7 +381,7 @@
                                        }
                                        else
                                        {
-                                               m_transport.m_nFrames = 
H->getHumantimeFrames() - getArdourTransportAdjustment();
+                                               m_transport.m_nFrames = 
H->getHumantimeFrames();
                                        }
                                        // In jack 'slave' mode, if there's no 
master, the following line is needed to be able to relocate by clicking the 
song ruler (wierd corner case, but still...)
                                        if ( m_transport.m_status == 
TransportInfo::ROLLING )
@@ -391,7 +389,7 @@
                                } else {
                                        ///this is experimantal... but it works 
for the moment... fix me fix :-) wolke
                                        // ... will this actually happen? 
keeping it for now ( jakob lund )
-                                       m_transport.m_nFrames = 
H->getHumantimeFrames() - getArdourTransportAdjustment();
+                                       m_transport.m_nFrames = 
H->getHumantimeFrames() - getBufferSize();
                                }
                        }
                }

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Hydrogen-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hydrogen-devel

Reply via email to