traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src/core AudioClip.cpp Song.cpp Song.h


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src/core AudioClip.cpp Song.cpp Song.h
Date: Thu, 22 Nov 2007 15:47:12 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/11/22 15:47:12

Modified files:
        src/core       : AudioClip.cpp Song.cpp Song.h 

Log message:
        * added a 'AudioClip render Bus' which is shared by all AudioClips, not 
a flexible solution, but hey, there is no routing so there's currently no need 
for flexability :P
        Renders audio of overlapping audioclips correctly again.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.cpp?cvsroot=traverso&r1=1.150&r2=1.151
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.155&r2=1.156
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.h?cvsroot=traverso&r1=1.73&r2=1.74

Patches:
Index: AudioClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.cpp,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -b -r1.150 -r1.151
--- AudioClip.cpp       19 Nov 2007 11:18:53 -0000      1.150
+++ AudioClip.cpp       22 Nov 2007 15:47:11 -0000      1.151
@@ -414,7 +414,9 @@
        
        Q_ASSERT(m_readSource);
        
-       AudioBus* bus = m_song->get_render_bus();
+       AudioBus* bus = m_song->get_clip_render_bus();
+       AudioBus* sendbus = m_song->get_render_bus();
+       
        TimeRef mix_pos;
        audio_sample_t* mixdown[get_channels()];
 
@@ -470,6 +472,10 @@
        TimeRef endlocation = mix_pos + TimeRef(read_frames, get_rate());
        m_fader->process_gain(mixdown, mix_pos, endlocation, read_frames, 
bus->get_channel_count());
        
+       for (int i=0; i<bus->get_channel_count(); ++i) {
+               Mixer::mix_buffers_no_gain(sendbus->get_buffer(i, nframes), 
bus->get_buffer(i, nframes), nframes);
+       }
+       
        return 1;
 }
 

Index: Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -b -r1.155 -r1.156
--- Song.cpp    22 Nov 2007 14:46:59 -0000      1.155
+++ Song.cpp    22 Nov 2007 15:47:12 -0000      1.156
@@ -113,6 +113,7 @@
        delete m_diskio;
        delete m_masterOut;
        delete m_renderBus;
+       delete m_clipRenderBus;
        delete m_hs;
        delete m_audiodeviceClient;
        delete snaplist;
@@ -144,6 +145,8 @@
        mixdown = gainbuffer = 0;
        m_masterOut = new AudioBus("Master Out", 2);
        m_renderBus = new AudioBus("Render Bus", 2);
+       m_clipRenderBus = new AudioBus("Clip Render Bus", 2);
+       
        resize_buffer(false, audiodevice().get_buffer_size());
        m_hs = new QUndoStack(pm().get_undogroup());
        set_history_stack(m_hs);
@@ -941,6 +944,7 @@
        gainbuffer = new audio_sample_t[size];
        m_masterOut->set_buffer_size(size);
        m_renderBus->set_buffer_size(size);
+       m_clipRenderBus->set_buffer_size(size);
        
        if (updateArmStatus) {
                apill_foreach(Track* track, Track, m_tracks) {

Index: Song.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.h,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -b -r1.73 -r1.74
--- Song.h      19 Nov 2007 11:18:53 -0000      1.73
+++ Song.h      22 Nov 2007 15:47:12 -0000      1.74
@@ -102,6 +102,7 @@
        AudioClipManager* get_audioclip_manager() const;
        AudioBus* get_master_out() const {return m_masterOut;}
        AudioBus* get_render_bus() const {return m_renderBus;}
+       AudioBus* get_clip_render_bus() const {return m_clipRenderBus;}
        SnapList* get_snap_list() const;
        PluginChain* get_plugin_chain() const;
        TimeLine* get_timeline() const {return m_timeline;}
@@ -162,6 +163,7 @@
        Client*                 m_audiodeviceClient;
        AudioBus*               m_masterOut;
        AudioBus*               m_renderBus;
+       AudioBus*               m_clipRenderBus;
        DiskIO*                 m_diskio;
        AudioClipManager*       m_acmanager;
        TimeLine*               m_timeline;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]