Changeset 595

Show
Ignore:
Timestamp:
10/25/08 22:49:09 (2 months ago)
Author:
wolke
Message:

merge rev. 593:594 from trunk

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/hydrogen.cpp

    r588 r595  
    162162int m_nPatternStartTick = -1; 
    163163int m_nPatternTickPosition = 0; 
     164int m_nLookaheadFrames = 0; 
    164165 
    165166// used in findPatternInTick 
     
    10541055        // nLeadLagFactor + nMaxTimeHumanize. 
    10551056        int lookahead = nLeadLagFactor + nMaxTimeHumanize + 1; 
     1057        m_nLookaheadFrames = lookahead; 
    10561058        if ( framepos == 0 
    10571059             || ( m_audioEngineState == STATE_PLAYING 
     
    18311833        } 
    18321834 
    1833         unsigned int column = getTickPosition(); 
    1834  
    1835         realcolumn = getRealtimeTickPosition(); 
    1836  
    1837         // quantize it to scale 
    1838         int qcolumn = ( int )::round( column / ( double )scalar ) * scalar; 
    1839         if ( qcolumn == MAX_NOTES ) qcolumn = 0; 
    1840  
    1841         if ( pref->getQuantizeEvents() ) { 
    1842                 column = qcolumn; 
    1843         } 
    1844  
    1845  
    1846         unsigned position = column; 
    1847  
    18481835        Pattern* currentPattern = NULL; 
    18491836        PatternList *pPatternList = m_pSong->get_pattern_list(); 
     
    18521839                currentPattern = pPatternList->get( m_nSelectedPatternNumber ); 
    18531840        } 
     1841 
     1842        // Get current column and compensate for "lookahead" 
     1843        unsigned int column = getTickPosition(); 
     1844        unsigned int lookaheadTicks = m_nLookaheadFrames 
     1845                / m_pAudioDriver->m_transport.m_nTickSize; 
     1846        if ( column >= lookaheadTicks ) { 
     1847                column -= lookaheadTicks; 
     1848        } else { 
     1849                lookaheadTicks %= currentPattern->get_lenght(); 
     1850                column = (column + currentPattern->get_lenght() - lookaheadTicks) 
     1851                        % currentPattern->get_lenght(); 
     1852        } 
     1853 
     1854        realcolumn = getRealtimeTickPosition(); 
     1855 
     1856        // quantize it to scale 
     1857        int qcolumn = ( int )::round( column / ( double )scalar ) * scalar; 
     1858        if ( qcolumn == MAX_NOTES ) qcolumn = 0; 
     1859 
     1860        if ( pref->getQuantizeEvents() ) { 
     1861                column = qcolumn; 
     1862        } 
     1863 
     1864 
     1865        unsigned position = column; 
    18541866 
    18551867        Instrument *instrRef = 0;