Changeset 582

Show
Ignore:
Timestamp:
10/20/08 20:32:45 (3 months ago)
Author:
wolke
Message:

add new noteoff type off note

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/new_fx_rack_and_sample_fun/data/hydrogen.default.conf

    r346 r582  
    182182                                <textColor>40,40,40</textColor> 
    183183                                <noteColor>40,40,40</noteColor> 
    184  
     184                                <noteoffColor>100,100,200</noteoffColor> 
    185185                                <lineColor>65,65,65</lineColor> 
    186186                                <line1Color>75,75,75</line1Color> 
  • branches/new_fx_rack_and_sample_fun/gui/src/AudioFileBrowser/AudioFileBrowser.cpp

    r581 r582  
    5353 
    5454        model = new QDirModel(); 
    55         model->setFilter( QDir::AllDirs | QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden ); 
     55        model->setFilter( QDir::AllDirs | QDir::AllEntries | QDir::NoDotAndDotDot ); 
    5656        model->setNameFilters( QStringList() << "*.wav" << "*.WAV" << "*.flac"<< "*.FLAC" << "*.aiff" << "*.AIFF"<< "*.au" << "*.AU" ); 
    5757        model->setSorting( QDir::DirsFirst |QDir::Name ); 
  • branches/new_fx_rack_and_sample_fun/gui/src/PatternEditor/DrumPatternEditor.cpp

    r457 r582  
    185185                        const int nLength = -1; 
    186186                        const float fPitch = 0.0f; 
    187                         Note *pNote = new Note( pSelectedInstrument, nPosition, fVelocity, fPan_L, fPan_R, nLength, fPitch); 
     187                        Note *pNote = new Note( pSelectedInstrument, nPosition, fVelocity, fPan_L, fPan_R, nLength, fPitch ); 
     188                        pNote->set_noteoff( false ); 
    188189                        m_pPattern->note_map.insert( std::make_pair( nPosition, pNote ) ); 
    189190 
     
    225226                                        break; 
    226227                                } 
    227                         } 
     228                        }        
     229/// 
     230                        // create the new note 
     231                        const unsigned nPosition = nColumn; 
     232                        const float fVelocity = 0.0f; 
     233                        const float fPan_L = 0.5f; 
     234                        const float fPan_R = 0.5f; 
     235                        const int nLength = 1; 
     236                        const float fPitch = 0.0f; 
     237                        Note *poffNote = new Note( pSelectedInstrument, nPosition, fVelocity, fPan_L, fPan_R, nLength, fPitch); 
     238                        poffNote->set_noteoff( true ); 
     239                        m_pPattern->note_map.insert( std::make_pair( nPosition, poffNote ) ); 
     240 
     241                        // hear note 
     242                        Preferences *pref = Preferences::getInstance(); 
     243                        if ( pref->getHearNewNotes() ) { 
     244                                Note *pNote2 = new Note( pSelectedInstrument, 0, fVelocity, fPan_L, fPan_R, nLength, fPitch); 
     245                                AudioEngine::get_instance()->get_sampler()->note_on(pNote2); 
     246                        } 
     247                        pSong->__is_modified = true; 
     248/// 
    228249                } 
    229250                // potrei essere sulla coda di una nota precedente.. 
     
    282303 
    283304        if (m_bRightBtnPressed && m_pDraggedNote ) { 
     305                if ( m_pDraggedNote->get_noteoff() ) return; 
    284306                int nTickColumn = getColumn( ev ); 
    285307 
     
    391413        static const UIStyle *pStyle = Preferences::getInstance()->getDefaultUIStyle(); 
    392414        static const QColor noteColor( pStyle->m_patternEditor_noteColor.getRed(), pStyle->m_patternEditor_noteColor.getGreen(), pStyle->m_patternEditor_noteColor.getBlue() ); 
     415        static const QColor noteoffColor( pStyle->m_patternEditor_noteoffColor.getRed(), pStyle->m_patternEditor_noteoffColor.getGreen(), pStyle->m_patternEditor_noteoffColor.getBlue() ); 
    393416 
    394417        p.setRenderHint( QPainter::Antialiasing ); 
     
    412435        p.setPen( noteColor ); 
    413436 
    414         if ( note->get_lenght() == -1 ) {     // trigger note 
     437        if ( note->get_lenght() == -1 && note->get_noteoff() == false ) {     // trigger note 
    415438                uint x_pos = 20 + (pos * m_nGridWidth);// - m_nGridWidth / 2.0; 
    416439 
     
    433456                p.drawLine(x_pos - 1, y_pos + 3, x_pos, y_pos + 4); 
    434457        } 
     458        else if ( note->get_lenght() == 1 && note->get_noteoff() == true ){ 
     459                p.setPen( noteoffColor ); 
     460                uint x_pos = 20 + (pos * m_nGridWidth);// - m_nGridWidth / 2.0; 
     461 
     462                uint y_pos = ( nInstrument * m_nGridHeight) + (m_nGridHeight / 2) - 3; 
     463 
     464                // draw the "dot" 
     465                p.drawLine(x_pos, y_pos, x_pos + 5, y_pos + 5);         // A 
     466                p.drawLine(x_pos, y_pos, x_pos - 5, y_pos + 5);         // B 
     467                p.drawLine(x_pos, y_pos + 8, x_pos + 5, y_pos + 5);     // C 
     468                p.drawLine(x_pos - 5, y_pos + 5, x_pos, y_pos + 8);     // D 
     469 
     470                p.drawLine(x_pos, y_pos + 3, x_pos + 4, y_pos + 5); 
     471                p.drawLine(x_pos, y_pos + 3, x_pos - 4, y_pos + 5); 
     472                p.drawLine(x_pos, y_pos + 7, x_pos + 4, y_pos + 5); 
     473                p.drawLine(x_pos - 4, y_pos + 5, x_pos, y_pos + 7); 
     474 
     475                p.drawLine(x_pos, y_pos + 4, x_pos + 3, y_pos + 5); 
     476                p.drawLine(x_pos, y_pos + 4, x_pos - 3, y_pos + 5); 
     477                p.drawLine(x_pos, y_pos + 6, x_pos + 3, y_pos + 5); 
     478                p.drawLine(x_pos - 3, y_pos + 5, x_pos, y_pos + 6);              
     479 
     480 
     481        }                
    435482        else { 
    436483                uint x = 20 + (pos * m_nGridWidth); 
  • branches/new_fx_rack_and_sample_fun/gui/src/PatternEditor/NotePropertiesRuler.cpp

    r377 r582  
    120120                } 
    121121 
    122                 if ( m_mode == VELOCITY ) { 
     122                if ( m_mode == VELOCITY && !pNote->get_noteoff() ) { 
    123123                        pNote->set_velocity( val ); 
    124124 
     
    210210                        continue; 
    211211                } 
    212                 if ( m_mode == VELOCITY ) { 
     212                if ( m_mode == VELOCITY && !pNote->get_noteoff() ) { 
    213213                        float val = pNote->get_velocity() + delta; 
    214214                        if (val > 1.0) { 
  • branches/new_fx_rack_and_sample_fun/libs/hydrogen/include/hydrogen/Preferences.h

    r581 r582  
    111111        H2RGBColor m_patternEditor_textColor; 
    112112        H2RGBColor m_patternEditor_noteColor; 
     113        H2RGBColor m_patternEditor_noteoffColor; 
    113114        H2RGBColor m_patternEditor_lineColor; 
    114115        H2RGBColor m_patternEditor_line1Color; 
  • branches/new_fx_rack_and_sample_fun/libs/hydrogen/include/hydrogen/note.h

    r526 r582  
    200200        } 
    201201 
     202        void set_noteoff( bool noteOff ) { 
     203                __noteoff = noteOff; 
     204        } 
     205        float get_noteoff() const { 
     206                return __noteoff; 
     207        } 
     208 
     209         
     210 
    202211 
    203212private: 
     
    208217        float __pan_r;                  ///< Pan of the note (right volume) [0..1] 
    209218        float __leadlag;                ///< Lead or lag offset of the note 
     219        bool __noteoff;                 ///< note type 
    210220 
    211221        int __lenght; 
  • branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/hydrogen.cpp

    r571 r582  
    543543 
    544544                        // aggiungo la nota alla lista di note da eseguire 
     545                        if ( pNote->get_noteoff() ){ 
     546                                AudioEngine::get_instance()->get_sampler()->note_off( pNote ); 
     547                        } 
    545548                        AudioEngine::get_instance()->get_sampler()->note_on( pNote ); 
    546                          
     549 
    547550                        m_songNoteQueue.pop(); // rimuovo la nota dalla lista di note 
    548551                        pNote->get_instrument()->dequeue(); 
  • branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/note.cpp

    r371 r582  
    5454                , __velocity( velocity ) 
    5555                , __leadlag( 0.0 ) 
     56                , __noteoff( false) 
    5657{ 
    5758        set_pan_l( fPan_L ); 
     
    7677        set_lenght(     pNote->get_lenght()     ); 
    7778        set_pitch(      pNote->get_pitch()      ); 
     79        set_noteoff(    pNote->get_noteoff()    ); 
    7880        m_noteKey       =       pNote->m_noteKey; 
    7981        m_fCutoff       =       pNote->m_fCutoff; 
     
    128130void Note::dumpInfo() 
    129131{ 
    130         INFOLOG( "pos: " + to_string( get_position() ) + "\t humanize offset" + to_string(m_nHumanizeDelay) + "\t instr: " + __instrument->get_name()+ "\t key: " + keyToString( m_noteKey ) + "\t pitch: " + to_string( get_pitch() ) ); 
     132        INFOLOG( "pos: " + to_string( get_position() ) + "\t humanize offset" + to_string(m_nHumanizeDelay) + "\t instr: " + __instrument->get_name()+ "\t key: " + keyToString( m_noteKey ) + "\t pitch: " + to_string( get_pitch() ) + "\t noteoff: " + to_string( get_noteoff() ) ); 
    131133} 
    132134 
  • branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/preferences.cpp

    r581 r582  
    10101010        LocalFileMng::writeXmlString( &patternEditorNode, "textColor", m_pDefaultUIStyle->m_patternEditor_textColor.toStringFmt() ); 
    10111011        LocalFileMng::writeXmlString( &patternEditorNode, "noteColor", m_pDefaultUIStyle->m_patternEditor_noteColor.toStringFmt() ); 
     1012 
     1013        if (m_pDefaultUIStyle->m_patternEditor_noteoffColor.toStringFmt() == "-1,-1,-1" ){ 
     1014                m_pDefaultUIStyle->m_patternEditor_noteoffColor = H2RGBColor( "100, 100, 200" ); 
     1015        } 
     1016        LocalFileMng::writeXmlString( &patternEditorNode, "noteoffColor", m_pDefaultUIStyle->m_patternEditor_noteoffColor.toStringFmt() ); 
     1017 
    10121018        LocalFileMng::writeXmlString( &patternEditorNode, "lineColor", m_pDefaultUIStyle->m_patternEditor_lineColor.toStringFmt() ); 
    10131019        LocalFileMng::writeXmlString( &patternEditorNode, "line1Color", m_pDefaultUIStyle->m_patternEditor_line1Color.toStringFmt() ); 
     
    10461052                m_pDefaultUIStyle->m_patternEditor_textColor = H2RGBColor( LocalFileMng::readXmlString( pPatternEditorNode, "textColor", m_pDefaultUIStyle->m_patternEditor_textColor.toStringFmt() ) ); 
    10471053                m_pDefaultUIStyle->m_patternEditor_noteColor = H2RGBColor( LocalFileMng::readXmlString( pPatternEditorNode, "noteColor", m_pDefaultUIStyle->m_patternEditor_noteColor.toStringFmt() ) ); 
     1054                m_pDefaultUIStyle->m_patternEditor_noteoffColor = H2RGBColor( LocalFileMng::readXmlString( pPatternEditorNode, "noteoffColor", m_pDefaultUIStyle->m_patternEditor_noteoffColor.toStringFmt() ) ); 
    10481055                m_pDefaultUIStyle->m_patternEditor_lineColor = H2RGBColor( LocalFileMng::readXmlString( pPatternEditorNode, "lineColor", m_pDefaultUIStyle->m_patternEditor_lineColor.toStringFmt() ) ); 
    10491056                m_pDefaultUIStyle->m_patternEditor_line1Color = H2RGBColor( LocalFileMng::readXmlString( pPatternEditorNode, "line1Color", m_pDefaultUIStyle->m_patternEditor_line1Color.toStringFmt() ) );