traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso resources/keymap.xml src/CMakeLists.tx...


From: Remon Sijrier
Subject: [Traverso-commit] traverso resources/keymap.xml src/CMakeLists.tx...
Date: Mon, 21 Jan 2008 16:22:20 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       08/01/21 16:22:19

Modified files:
        resources      : keymap.xml 
        src            : CMakeLists.txt 
        src/commands   : AddRemove.cpp AddRemove.h ArmTracks.cpp 
                         ArmTracks.h AudioClipExternalProcessing.cpp 
                         ClipSelection.cpp CMakeLists.txt Fade.cpp 
                         Fade.h Gain.cpp Gain.h Import.cpp MoveClip.cpp 
                         MoveClip.h MoveEdge.cpp MoveEdge.h 
                         MultiMove.cpp MultiMove.h PlayHeadMove.cpp 
                         PlayHeadMove.h Scroll.cpp Scroll.h 
                         SplitClip.cpp SplitClip.h TrackPan.cpp 
                         TrackPan.h WorkCursorMove.cpp WorkCursorMove.h 
                         Zoom.cpp Zoom.h 
        src/common     : Utils.h 
        src/core       : AudioClip.cpp AudioClip.h AudioClipManager.cpp 
                         AudioClipManager.h AudioSource.cpp 
                         AudioSource.h CMakeLists.txt ContextPointer.h 
                         Curve.cpp Curve.h DiskIO.cpp DiskIO.h 
                         Export.cpp Export.h FadeCurve.cpp FadeCurve.h 
                         InputEngine.cpp libtraversocore.h Marker.cpp 
                         Marker.h Peak.cpp Peak.h ProjectConverter.cpp 
                         Project.cpp Project.h ProjectManager.cpp 
                         ProjectManager.h ReadSource.cpp 
                         ResourcesManager.cpp ResourcesManager.h 
                         SnapList.cpp SnapList.h Themer.cpp TimeLine.cpp 
                         TimeLine.h Track.cpp Track.h ViewPort.cpp 
        src/engine     : AudioBus.cpp AudioDevice.cpp 
        src/plugins/LV2: LV2Plugin.cpp LV2Plugin.h 
        src/plugins/native: CorrelationMeter.cpp GainEnvelope.cpp 
                            GainEnvelope.h 
        src/plugins    : PluginChain.cpp PluginChain.h Plugin.cpp 
                         Plugin.h PluginManager.cpp 
        src/traverso   : CMakeLists.txt CorrelationMeterWidget.cpp 
                         CorrelationMeterWidget.h Interface.cpp 
                         Interface.h SpectralMeterWidget.cpp 
                         SpectralMeterWidget.h Traverso.cpp traverso.qrc 
        src/traverso/ui: CDWritingDialog.ui ExportDialog.ui 
                         MarkerDialog.ui NewProjectDialog.ui 
                         ProjectManagerDialog.ui ResourcesWidget.ui 
        src/traverso/widgets: InfoWidgets.cpp InfoWidgets.h 
                              ResourcesWidget.cpp ResourcesWidget.h 

Log message:
        * Song->Sheet renaming
        * A bit of zooming work (don't cry, eventually I'll fix the mess)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.95&r2=1.96
http://cvs.savannah.gnu.org/viewcvs/traverso/src/CMakeLists.txt?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/AddRemove.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/AddRemove.h?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/ArmTracks.cpp?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/ArmTracks.h?cvsroot=traverso&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/AudioClipExternalProcessing.cpp?cvsroot=traverso&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/ClipSelection.cpp?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/CMakeLists.txt?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Fade.cpp?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Fade.h?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Gain.cpp?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Gain.h?cvsroot=traverso&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Import.cpp?cvsroot=traverso&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.cpp?cvsroot=traverso&r1=1.54&r2=1.55
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.h?cvsroot=traverso&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveEdge.cpp?cvsroot=traverso&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveEdge.h?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MultiMove.cpp?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MultiMove.h?cvsroot=traverso&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/PlayHeadMove.cpp?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/PlayHeadMove.h?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Scroll.cpp?cvsroot=traverso&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Scroll.h?cvsroot=traverso&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/SplitClip.cpp?cvsroot=traverso&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/SplitClip.h?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/TrackPan.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/TrackPan.h?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/WorkCursorMove.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/WorkCursorMove.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Zoom.cpp?cvsroot=traverso&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Zoom.h?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/common/Utils.h?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.cpp?cvsroot=traverso&r1=1.160&r2=1.161
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.h?cvsroot=traverso&r1=1.72&r2=1.73
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClipManager.cpp?cvsroot=traverso&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClipManager.h?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioSource.cpp?cvsroot=traverso&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioSource.h?cvsroot=traverso&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/CMakeLists.txt?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ContextPointer.h?cvsroot=traverso&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Curve.cpp?cvsroot=traverso&r1=1.49&r2=1.50
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Curve.h?cvsroot=traverso&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/DiskIO.cpp?cvsroot=traverso&r1=1.56&r2=1.57
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/DiskIO.h?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Export.cpp?cvsroot=traverso&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Export.h?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/FadeCurve.cpp?cvsroot=traverso&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/FadeCurve.h?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/InputEngine.cpp?cvsroot=traverso&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/libtraversocore.h?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Marker.cpp?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Marker.h?cvsroot=traverso&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Peak.cpp?cvsroot=traverso&r1=1.79&r2=1.80
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Peak.h?cvsroot=traverso&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ProjectConverter.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Project.cpp?cvsroot=traverso&r1=1.65&r2=1.66
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Project.h?cvsroot=traverso&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ProjectManager.cpp?cvsroot=traverso&r1=1.52&r2=1.53
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ProjectManager.h?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.cpp?cvsroot=traverso&r1=1.90&r2=1.91
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ResourcesManager.cpp?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ResourcesManager.h?cvsroot=traverso&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/SnapList.cpp?cvsroot=traverso&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/SnapList.h?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Themer.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/TimeLine.cpp?cvsroot=traverso&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/TimeLine.h?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Track.cpp?cvsroot=traverso&r1=1.76&r2=1.77
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Track.h?cvsroot=traverso&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ViewPort.cpp?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/engine/AudioBus.cpp?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/engine/AudioDevice.cpp?cvsroot=traverso&r1=1.50&r2=1.51
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/LV2/LV2Plugin.cpp?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/LV2/LV2Plugin.h?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/native/CorrelationMeter.cpp?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/native/GainEnvelope.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/native/GainEnvelope.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/PluginChain.cpp?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/PluginChain.h?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/Plugin.cpp?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/Plugin.h?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/PluginManager.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/CMakeLists.txt?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/CorrelationMeterWidget.cpp?cvsroot=traverso&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/CorrelationMeterWidget.h?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.122&r2=1.123
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.h?cvsroot=traverso&r1=1.50&r2=1.51
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/SpectralMeterWidget.cpp?cvsroot=traverso&r1=1.48&r2=1.49
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/SpectralMeterWidget.h?cvsroot=traverso&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Traverso.cpp?cvsroot=traverso&r1=1.54&r2=1.55
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/traverso.qrc?cvsroot=traverso&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/CDWritingDialog.ui?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/ExportDialog.ui?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/MarkerDialog.ui?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/NewProjectDialog.ui?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/ProjectManagerDialog.ui?cvsroot=traverso&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/ResourcesWidget.ui?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.cpp?cvsroot=traverso&r1=1.53&r2=1.54
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.h?cvsroot=traverso&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/ResourcesWidget.cpp?cvsroot=traverso&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/ResourcesWidget.h?cvsroot=traverso&r1=1.12&r2=1.13

Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -b -r1.95 -r1.96
--- resources/keymap.xml        2 Jan 2008 03:03:37 -0000       1.95
+++ resources/keymap.xml        21 Jan 2008 16:22:10 -0000      1.96
@@ -21,12 +21,12 @@
                </keyfact>
                <keyfact type="FKEY" key1="F1" >
                        <Objects>
-                               <Object objectname="Song" 
slotsignature="set_editing_mode" modes="All" sortorder="52" />
+                               <Object objectname="Sheet" 
slotsignature="set_editing_mode" modes="All" sortorder="52" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="F2" >
                        <Objects>
-                               <Object objectname="Song" 
slotsignature="set_effects_mode" modes="All" sortorder="53" />
+                               <Object objectname="Sheet" 
slotsignature="set_effects_mode" modes="All" sortorder="53" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="F11" >
@@ -46,13 +46,13 @@
                </keyfact>
                <keyfact type="FKEY" key1="LARROW" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="scroll_left" modes="All" sortorder="1" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_left" modes="All" sortorder="1" submenu="Scroll" />
                                <Object objectname="MoveClip" 
slotsignature="prev_snap_pos" modes="All" sortorder="1" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="RARROW" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="scroll_right" modes="All" sortorder="2" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_right" modes="All" sortorder="2" submenu="Scroll" />
                                <Object objectname="MoveClip" 
slotsignature="next_snap_pos" modes="All" sortorder="1" />
                        </Objects>
                </keyfact>
@@ -60,47 +60,48 @@
                        <Objects>
                                <Object objectname="Gain" 
slotsignature="increase_gain" modes="All" />
                                <Object objectname="DragNode" 
slotsignature="move_up" modes="Effects" />
-                               <Object objectname="SongView" 
slotsignature="scroll_up" modes="All" sortorder="4" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_up" modes="All" sortorder="4" submenu="Scroll" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="DARROW" >
                        <Objects>
                                <Object objectname="Gain" 
slotsignature="decrease_gain" modes="All" />
                                <Object objectname="DragNode" 
slotsignature="move_down" modes="Effects" />
-                               <Object objectname="SongView" 
slotsignature="scroll_down" modes="All" sortorder="4" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_down" modes="All" sortorder="4" submenu="Scroll" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="SHIFT" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="touch_play_cursor" modes="All" sortorder="2" submenu="Playhead" 
/>
+                               <Object objectname="SheetView" 
slotsignature="touch_play_cursor" modes="All" sortorder="2" submenu="Playhead" 
/>
                                <Object objectname="TimeLineView" 
slotsignature="playhead_to_marker" modes="All" sortorder="2" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="V">
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="playhead_to_workcursor" modes="All" sortorder="12" 
submenu="Playhead" />
-                               <Object objectname="SongView" 
slotsignature="center_playhead" modes="All" sortorder="15" modifierkeys="CTRL" 
submenu="Playhead" />
+                               <Object objectname="SheetView" 
slotsignature="playhead_to_workcursor" modes="All" sortorder="12" 
submenu="Playhead" />
+                               <Object objectname="SheetView" 
slotsignature="center_playhead" modes="All" sortorder="15" modifierkeys="CTRL" 
submenu="Playhead" />
+                               <Object objectname="Zoom" 
slotsignature="toggle_vertical_horizontal_jog_zoom" modes="All" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="W" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="touch" modes="All" sortorder="2" submenu="Work Cursor" />
+                               <Object objectname="SheetView" 
slotsignature="touch" modes="All" sortorder="2" submenu="Work Cursor" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="HOME" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="goto_begin" modes="All" sortorder="5" submenu="Work Cursor" />
+                               <Object objectname="SheetView" 
slotsignature="goto_begin" modes="All" sortorder="5" submenu="Work Cursor" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="END" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="goto_end" modes="All" sortorder="6" submenu="Work Cursor" />
+                               <Object objectname="SheetView" 
slotsignature="goto_end" modes="All" sortorder="6" submenu="Work Cursor" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="Z" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="hzoom_in" modes="All" sortorder="3" submenu="Zoom" />
-                               <Object objectname="SongView" 
slotsignature="hzoom_out" modes="All" sortorder="3" modifierkeys="ALT" 
submenu="Zoom" />
+                               <Object objectname="SheetView" modes="All" 
sortorder="3" pluginname="TraversoCommands" commandname="HZoomIn" 
arguments="HZoom;0.8" />
+                               <Object objectname="SheetView" modes="All" 
sortorder="3" modifierkeys="ALT" pluginname="TraversoCommands" 
commandname="HZoomOut" arguments="HZoom;1.2" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="S" >
@@ -112,8 +113,8 @@
                </keyfact>
                <keyfact type="FKEY" key1="SPACE" >
                        <Objects>
-                               <Object objectname="Song" 
slotsignature="start_transport" modes="All" sortorder="1" />
-                               <Object objectname="Song" 
slotsignature="set_recordable_and_start_transport" modes="All" 
modifierkeys="CTRL" sortorder="2" />
+                               <Object objectname="Sheet" 
slotsignature="start_transport" modes="All" sortorder="1" />
+                               <Object objectname="Sheet" 
slotsignature="set_recordable_and_start_transport" modes="All" 
modifierkeys="CTRL" sortorder="2" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="A" >
@@ -185,9 +186,9 @@
                                <Object objectname="CorrelationMeterView" 
slotsignature="set_mode" modes="All" />
                                <Object objectname="SpectralMeterView" 
slotsignature="set_mode" modes="All" />
                                <Object objectname="TimeLineView" 
slotsignature="add_marker" modes="All" />
-                               <Object objectname="SongView" 
slotsignature="add_marker" modes="All" sortorder="23" />
+                               <Object objectname="SheetView" 
slotsignature="add_marker" modes="All" sortorder="23" />
                                <Object objectname="TimeLineView" 
slotsignature="add_marker_at_playhead" modes="All" modifierkeys="CTRL" />
-                               <Object objectname="SongView" 
slotsignature="add_marker_at_playhead" modes="All" sortorder="24" 
modifierkeys="CTRL" />
+                               <Object objectname="SheetView" 
slotsignature="add_marker_at_playhead" modes="All" sortorder="24" 
modifierkeys="CTRL" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="L" >
@@ -208,7 +209,7 @@
                </keyfact>
                <keyfact type="FKEY" key1="MouseButtonLeft" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="touch" modes="All" sortorder="2" submenu="Work Cursor" />
+                               <Object objectname="SheetView" 
slotsignature="touch" modes="All" sortorder="2" submenu="Work Cursor" />
                                <Object objectname="TrackPanelLed" 
slotsignature="toggle" modes="All" sortorder="1" />
                                <Object objectname="TrackPanelBus" 
slotsignature="TrackView::select_bus" modes="All" />
                                <Object objectname="AudioClipView" 
slotsignature="set_audio_file" modes="All" sortorder="80" />
@@ -216,7 +217,7 @@
                </keyfact>
                <keyfact type="FKEY" key1="MouseButtonMiddle" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="touch_play_cursor" modes="All" sortorder="8" submenu="Playhead" 
/>
+                               <Object objectname="SheetView" 
slotsignature="touch_play_cursor" modes="All" sortorder="8" submenu="Playhead" 
/>
                                <Object objectname="TimeLineView" 
slotsignature="playhead_to_marker" modes="All" sortorder="2" />
                        </Objects>
                </keyfact>
@@ -229,21 +230,23 @@
                <keyfact type="FKEY" key1="MouseScrollVerticalUp" >
                        <Objects>
                                <Object objectname="DragNode" 
slotsignature="move_up" modes="Effects" />
-                               <Object objectname="SongView" 
slotsignature="scroll_up" modes="All" sortorder="1" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_up" modes="All" sortorder="1" submenu="Scroll" />
                                <Object objectname="Gain" 
slotsignature="increase_gain" modes="All" />
                                <Object objectname="TrackPanelPan" 
slotsignature="pan_right" modes="All" sortorder="1" />
                                <Object objectname="TrackPanelGain" 
slotsignature="gain_increment" modes="All" sortorder="1" />
-                               <Object objectname="SongPanelGain" 
slotsignature="gain_increment" modes="All" sortorder="1" />
+                               <Object objectname="SheetPanelGain" 
slotsignature="gain_increment" modes="All" sortorder="1" />
+                               <Object objectname="Zoom" 
slotsignature="vzoom_out" modes="All" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="MouseScrollVerticalDown" >
                        <Objects>
                                <Object objectname="DragNode" 
slotsignature="move_down" modes="Effects" />
-                               <Object objectname="SongView" 
slotsignature="scroll_down" modes="All" sortorder="2" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_down" modes="All" sortorder="2" submenu="Scroll" />
                                <Object objectname="Gain" 
slotsignature="decrease_gain" modes="All" />
                                <Object objectname="TrackPanelPan" 
slotsignature="pan_left" modes="All" sortorder="2" />
                                <Object objectname="TrackPanelGain" 
slotsignature="gain_decrement" modes="All" sortorder="2" />
-                               <Object objectname="SongPanelGain" 
slotsignature="gain_decrement" modes="All" sortorder="2" />
+                               <Object objectname="SheetPanelGain" 
slotsignature="gain_decrement" modes="All" sortorder="2" />
+                               <Object objectname="Zoom" 
slotsignature="vzoom_in" modes="All" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="F" >
@@ -267,22 +270,22 @@
                </keyfact>
                <keyfact type="FKEY2" key1="S" key2="N" >
                        <Objects>
-                               <Object objectname="Song" 
slotsignature="toggle_snap" modes="All" sortorder="36" />
+                               <Object objectname="Sheet" 
slotsignature="toggle_snap" modes="All" sortorder="36" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY2" key1="Z" key2="X" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="hzoom_out" modes="All" sortorder="4" submenu="Zoom" />
+                               <Object objectname="SheetView" 
slotsignature="hzoom_out" modes="All" sortorder="4" submenu="Zoom" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY2" key1="Z" key2="ALT" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="vzoom_out" modes="All" sortorder="6" submenu="Zoom" />
+                               <Object objectname="SheetView" 
slotsignature="vzoom_out" modes="All" sortorder="6" submenu="Zoom" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY2" key1="Z" key2="A" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="vzoom_in" modes="All" sortorder="5" submenu="Zoom" />
+                               <Object objectname="SheetView" mousehint="UD" 
modes="All" sortorder="5" pluginname="TraversoCommands" commandname="VZoomIn" 
arguments="1.2" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY2" key1="J" key2="L" >
@@ -322,7 +325,7 @@
                </keyfact>
                <keyfact type="FKEY2" key1="V" key2="B" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="center_playhead" modes="All" sortorder="15" submenu="Playhead" />
+                               <Object objectname="SheetView" 
slotsignature="center_playhead" modes="All" sortorder="15" submenu="Playhead" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY2" key1="E" key2="P" >
@@ -334,7 +337,7 @@
                
                <keyfact type="HKEY" key1="Z" sortorder="35" >
                        <Objects>
-                               <Object objectname="SongView" mousehint="LRUD" 
slotsignature="zoom" modes="All" sortorder="1" submenu="Zoom" />
+                               <Object objectname="SheetView" mousehint="LR" 
modes="All" sortorder="1" pluginname="TraversoCommands" commandname="HJogZoom" 
arguments="HJogZoom;1.2;0.2" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="E" >
@@ -346,7 +349,7 @@
                        <Objects>
                                <Object objectname="AudioClipView" modes="All" 
sortorder="5" pluginname="TraversoCommands" commandname="Gain" />
                                <Object objectname="TrackView" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" />
-                               <Object objectname="Song" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" />
+                               <Object objectname="Sheet" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="P" sortorder="16" >
@@ -365,21 +368,21 @@
                                <Object objectname="AudioClipView" 
mousehint="LRUD" modes="All" pluginname="TraversoCommands" 
commandname="MoveClip" arguments="move" />
                                <Object objectname="CurveView" mousehint="LRUD" 
slotsignature="drag_node" modes="Effects" sortorder="3" />
                                <Object objectname="TimeLineView" 
mousehint="LR" slotsignature="drag_marker" modes="All" sortorder="3" />
-                               <Object objectname="SongView" mousehint="LR" 
slotsignature="work_cursor_move" modes="All" submenu="Work Cursor" 
sortorder="4" />
+                               <Object objectname="SheetView" mousehint="LR" 
slotsignature="work_cursor_move" modes="All" submenu="Work Cursor" 
sortorder="4" />
                                <Object objectname="TrackPanelGain" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" 
arguments="horizontal" />
-                               <Object objectname="SongPanelGain" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" 
arguments="horizontal" />
+                               <Object objectname="SheetPanelGain" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" 
arguments="horizontal" />
                                <Object objectname="TrackPanelPan" 
mousehint="LR"  modes="All" sortorder="8" pluginname="TraversoCommands" 
commandname="TrackPan" />
                        </Objects>
                </keyfact> 
                <keyfact type="HKEY" key1="MouseButtonMiddle" >
                        <Objects>
-                               <Object objectname="SongView" mousehint="LR" 
slotsignature="play_cursor_move" modes="All" sortorder="9" submenu="Playhead" />
+                               <Object objectname="SheetView" mousehint="LR" 
slotsignature="play_cursor_move" modes="All" sortorder="9" submenu="Playhead" />
                                <Object objectname="TimeLineView" 
slotsignature="playhead_to_marker" modes="All" sortorder="2" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="W" >
                        <Objects>
-                               <Object objectname="SongView" mousehint="LR" 
slotsignature="work_cursor_move" modes="All" sortorder="14" submenu="Work 
Cursor" />
+                               <Object objectname="SheetView" mousehint="LR" 
slotsignature="work_cursor_move" modes="All" sortorder="14" submenu="Work 
Cursor" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="C" >
@@ -402,12 +405,12 @@
                <keyfact type="HKEY" key1="S" >
                        <Objects>
                                <Object objectname="FadeView" mousehint="LR" 
slotsignature="strength" modes="All" sortorder="4" />
-                               <Object objectname="SongView" mousehint="LRUD" 
slotsignature="shuttle" modes="All" sortorder="6" />
+                               <Object objectname="SheetView" mousehint="LRUD" 
slotsignature="shuttle" modes="All" sortorder="6" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="SHIFT" >
                        <Objects>
-                               <Object objectname="SongView" mousehint="LR" 
slotsignature="play_cursor_move" modes="All" sortorder="8" submenu="Playhead" />
+                               <Object objectname="SheetView" mousehint="LR" 
slotsignature="play_cursor_move" modes="All" sortorder="8" submenu="Playhead" />
                                <Object objectname="TimeLineView" 
slotsignature="playhead_to_marker" modes="All" sortorder="2" />
                        </Objects>
                </keyfact>
@@ -418,7 +421,7 @@
                </keyfact>
                <keyfact type="HKEY" key1="A" >
                        <Objects>
-                               <Object objectname="SongView" mousehint="UD" 
modes="All" sortorder="7" pluginname="TraversoCommands" commandname="ArmTracks" 
 arguments="" />
+                               <Object objectname="SheetView" mousehint="UD" 
modes="All" sortorder="7" pluginname="TraversoCommands" commandname="ArmTracks" 
 arguments="" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="X" >
@@ -428,22 +431,22 @@
                </keyfact>
                <keyfact type="HKEY" key1="LARROW" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="scroll_left_hold" modes="All" sortorder="1" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_left_hold" modes="All" sortorder="1" submenu="Scroll" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="RARROW" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="scroll_right_hold" modes="All" sortorder="2" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_right_hold" modes="All" sortorder="2" submenu="Scroll" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="UARROW" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="scroll_up_hold" modes="All" sortorder="4" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_up_hold" modes="All" sortorder="4" submenu="Scroll" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="DARROW" >
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="scroll_down_hold" modes="All" sortorder="4" submenu="Scroll" />
+                               <Object objectname="SheetView" 
slotsignature="scroll_down_hold" modes="All" sortorder="4" submenu="Scroll" />
                        </Objects>
                </keyfact>
                
@@ -461,7 +464,7 @@
                </keyfact>
                <keyfact type="HKEY2" key1="S" key2="G" >
                        <Objects>
-                               <Object objectname="SongView" modes="All" 
sortorder="4" pluginname="TraversoCommands" commandname="Gain" />
+                               <Object objectname="SheetView" modes="All" 
sortorder="4" pluginname="TraversoCommands" commandname="Gain" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY2" key1="D" key2="V" >
@@ -471,8 +474,13 @@
                </keyfact>
                <keyfact type="HKEY2" key1="D" key2="F" >
                        <Objects>
-                               <Object objectname="SongView" mousehint="RL" 
modes="All" pluginname="TraversoCommands" commandname="MultiMove" 
arguments="true" />
-                               <Object objectname="SongView" mousehint="RL" 
modes="All" pluginname="TraversoCommands" modifierkeys="CTRL" 
commandname="MultiMoveSingle" arguments="false" />
+                               <Object objectname="SheetView" mousehint="RL" 
modes="All" pluginname="TraversoCommands" commandname="MultiMove" 
arguments="true" />
+                               <Object objectname="SheetView" mousehint="RL" 
modes="All" pluginname="TraversoCommands" modifierkeys="CTRL" 
commandname="MultiMoveSingle" arguments="false" />
+                       </Objects>
+               </keyfact>
+               <keyfact type="HKEY2" key1="Z" key2="V" >
+                       <Objects>
+                               <Object objectname="SheetView" mousehint="UD" 
modes="All" sortorder="2" pluginname="TraversoCommands" commandname="VJogZoom" 
arguments="VJogZoom;1.2;0.2" />
                        </Objects>
                </keyfact>
                
@@ -480,7 +488,7 @@
                
                <keyfact type="D_FKEY" key1="T" >
                        <Objects>
-                               <Object objectname="Song" modes="All" 
sortorder="22" pluginname="TraversoCommands" commandname="AddNewTrack" />
+                               <Object objectname="Sheet" modes="All" 
sortorder="22" pluginname="TraversoCommands" commandname="AddNewTrack" />
                        </Objects>
                </keyfact>
                <keyfact type="D_FKEY" key1="ENTER" >
@@ -497,17 +505,17 @@
                </keyfact>
                <keyfact type="D_FKEY" key1="U" >
                        <Objects>
-                               <Object objectname="Song" 
slotsignature="toggle_mute" modes="All" sortorder="25" />
+                               <Object objectname="Sheet" 
slotsignature="toggle_mute" modes="All" sortorder="25" />
                        </Objects>
                </keyfact>
                <keyfact type="D_FKEY" key1="O" >
                        <Objects>
-                               <Object objectname="Song" 
slotsignature="toggle_solo" modes="All" sortorder="26" />
+                               <Object objectname="Sheet" 
slotsignature="toggle_solo" modes="All" sortorder="26" />
                        </Objects>
                </keyfact>
                <keyfact type="D_FKEY" key1="A" >
                        <Objects>
-                               <Object objectname="Song" 
slotsignature="toggle_arm" modes="All" sortorder="24" />
+                               <Object objectname="Sheet" 
slotsignature="toggle_arm" modes="All" sortorder="24" />
                        </Objects>
                </keyfact>
                <keyfact type="D_FKEY" key1="G" >
@@ -515,7 +523,7 @@
                                <Object objectname="AudioClip" modes="All" 
sortorder="22" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="1.0" />
                                <Object objectname="Track" modes="All" 
sortorder="30" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="0.5" />
                                <Object objectname="TrackPanelGain" modes="All" 
sortorder="30" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="0.5" />
-                               <Object objectname="Song" modes="All" 
sortorder="30" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="0.5" />
+                               <Object objectname="Sheet" modes="All" 
sortorder="30" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="0.5" />
                        </Objects>
                </keyfact>
                <keyfact type="D_FKEY" key1="N" >
@@ -565,12 +573,12 @@
                </keyfact>
                <keyfact type="D_FKEY" key1="W">
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="goto_begin" modes="All" sortorder="5" submenu="Work Cursor" />
+                               <Object objectname="SheetView" 
slotsignature="goto_begin" modes="All" sortorder="5" submenu="Work Cursor" />
                        </Objects>
                </keyfact>
                <keyfact type="D_FKEY" key1="SHIFT">
                        <Objects>
-                               <Object objectname="SongView" 
slotsignature="play_to_begin" modes="All" sortorder="30" submenu="Playhead" />
+                               <Object objectname="SheetView" 
slotsignature="play_to_begin" modes="All" sortorder="30" submenu="Playhead" />
                        </Objects>
                </keyfact>
                
@@ -578,7 +586,7 @@
                
                <keyfact type="D_FKEY2" key1="DEL" key2="T" >
                        <Objects>
-                               <Object objectname="Song" 
slotsignature="remove_track" modes="All" sortorder="33" />
+                               <Object objectname="Sheet" 
slotsignature="remove_track" modes="All" sortorder="33" />
                        </Objects>
                </keyfact>
                <keyfact type="D_FKEY2" key1="F" key2="G" >

Index: src/CMakeLists.txt
===================================================================
RCS file: /sources/traverso/traverso/src/CMakeLists.txt,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/CMakeLists.txt  19 Nov 2007 14:04:25 -0000      1.3
+++ src/CMakeLists.txt  21 Jan 2008 16:22:10 -0000      1.4
@@ -4,7 +4,7 @@
 ADD_SUBDIRECTORY(core ${TRAVERSO_BUILD_DIR})
 ADD_SUBDIRECTORY(3rdparty ${TRAVERSO_BUILD_DIR})
 ADD_SUBDIRECTORY(plugins ${TRAVERSO_BUILD_DIR})
-ADD_SUBDIRECTORY(traverso/songcanvas ${TRAVERSO_BUILD_DIR})
+ADD_SUBDIRECTORY(sheetcanvas ${TRAVERSO_BUILD_DIR})
 ADD_SUBDIRECTORY(traverso ${TRAVERSO_BUILD_DIR})
 
 IF(USE_PCH)

Index: src/commands/AddRemove.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/AddRemove.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- src/commands/AddRemove.cpp  11 Dec 2007 17:30:10 -0000      1.4
+++ src/commands/AddRemove.cpp  21 Jan 2008 16:22:10 -0000      1.5
@@ -17,12 +17,12 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: AddRemove.cpp,v 1.4 2007/12/11 17:30:10 r_sijrier Exp $
+$Id: AddRemove.cpp,v 1.5 2008/01/21 16:22:10 r_sijrier Exp $
 */
 
 #include "AddRemove.h"
 #include "ContextItem.h"
-#include <Song.h>
+#include <Sheet.h>
 
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
@@ -39,23 +39,23 @@
 
        The example below is typical how this Command class should be used.
        
-       One for example creates the function (slot) Command* add_track() in 
SongView. and add <br />
+       One for example creates the function (slot) Command* add_track() in 
SheetView. and add <br />
        an entry in the keymap file to define which keyfact will be used to 
call this function.<br />
        One also can create a CommandPlugin, and point the keyfact in the 
keymap file to the <br />
-       plugin name, this way you don't need to add a function (slot) to the 
SongView class.
+       plugin name, this way you don't need to add a function (slot) to the 
SheetView class.
 
-       When using the first approach, you create a new Track object in the GUI 
object SongView<br />
-       and return the Command object returned by m_song->add_track(track);, 
see example code below.
+       When using the first approach, you create a new Track object in the GUI 
object SheetView<br />
+       and return the Command object returned by m_sheet->add_track(track);, 
see example code below.
 
        Using a CommandPlugin for this kind of action doesn't make much sense, 
you most likely <br />
        want to use plugins to manipulate existing objects.
 
        \code 
-       class Song : public ContextItem
+       class Sheet : public ContextItem
        {
                Q_OBJECT
-               Song() {};
-               ~Song() {};
+               Sheet() {};
+               ~Sheet() {};
 
        private:
                list<Track*> m_tracks;
@@ -70,12 +70,12 @@
        }
 
        
-       Command* Song::add_track(Track* track)
+       Command* Sheet::add_track(Track* track)
        {
                // first this:  The object to which the track has to be 
added/removed too
                // track:       the argument that will be used by the 
signal/slots as specified in the second and third line.
                // true:        this command should be considered historable
-               // this:        A pointer to Song, which in this case is this, 
which will be used in the AddRemove 
+               // this:        A pointer to Sheet, which in this case is this, 
which will be used in the AddRemove 
                //              Command logic to detect if the 
private_add/remove slots can be called directly or 
                //              thread save via Tsar's thread save logic.
                // tr("Add Track")      The (tranlated) description of this 
action as it will show up in the HistoryView
@@ -85,7 +85,7 @@
                        tr("Add Track"));
        }
 
-       Command* Song::remove_track(Track* track)
+       Command* Sheet::remove_track(Track* track)
        {
                // Same applies as in add_track(), however, the second and 
third line are switched :-)
                return new AddRemove(this, track, true, this,
@@ -94,22 +94,22 @@
                        tr("Remove Track"));
        }
 
-       void Song::private_add_track(Track* track)
+       void Sheet::private_add_track(Track* track)
        {
                m_tracks.append(track);
        }
        
-       void Song::private_remove_track(Track* track)
+       void Sheet::private_remove_track(Track* track)
        {
                m_tracks.removeAll(track);
        }
 
 
        // Example usage in a GUI object.
-       Command* SongView::add_track()
+       Command* SheetView::add_track()
        {
-               Track* track = new Track(m_song);
-               return m_song->add_track(track);
+               Track* track = new Track(m_sheet);
+               return m_sheet->add_track(track);
        }
 
        \endcode
@@ -120,7 +120,7 @@
 
 AddRemove::AddRemove(ContextItem* parent, void* arg, const QString& des)
        : Command(parent, des),
-       m_song(0),
+       m_sheet(0),
        m_doActionSlot(""),
        m_undoActionSlot(""),
        m_doSignal(""),
@@ -144,7 +144,7 @@
                        after the do_action call. Only works when the command 
was requested 
                        from the InputEngine. If not, you are responsible 
yourself to call the 
                        do_action, and pushing it to the correct history stack.
- * @param song                 If a related Song object is available you can 
use it, else supply a 0
+ * @param sheet                If a related Sheet object is available you can 
use it, else supply a 0
  * @param doActionSlot         (private) slot signature which will be called 
on do_action()
  * @param doSignal     If supplied, the signal with this signature will be 
emited in the GUI thread
                        AFTER the actuall  adding/removing action in 
do_action() has happened!
@@ -157,7 +157,7 @@
        ContextItem* parent,
        void* arg,
        bool historable,
-       Song* song,
+       Sheet* sheet,
        const char * doActionSlot,
        const char * doSignal,
        const char * undoActionSlot,
@@ -166,7 +166,7 @@
        : Command(parent, des),
          m_parentItem(parent),
          m_arg(arg),
-         m_song(song),
+         m_sheet(sheet),
          m_doActionSlot(doActionSlot),
          m_undoActionSlot(undoActionSlot),
          m_doSignal(doSignal),
@@ -207,8 +207,8 @@
                return 1;
        }
        
-       if (m_song) {
-               if (m_song->is_transport_rolling()) {
+       if (m_sheet) {
+               if (m_sheet->is_transport_rolling()) {
                        PMESG("Using Thread Save add/remove");
                        tsar().add_event(m_doActionEvent);
                } else {
@@ -235,8 +235,8 @@
                return 1;
        }
        
-       if (m_song) {
-               if (m_song->is_transport_rolling()) {
+       if (m_sheet) {
+               if (m_sheet->is_transport_rolling()) {
                        PMESG("Using Thread Save add/remove");
                        tsar().add_event(m_undoActionEvent);
                } else {

Index: src/commands/AddRemove.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/AddRemove.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/commands/AddRemove.h    11 Dec 2007 17:30:10 -0000      1.2
+++ src/commands/AddRemove.h    21 Jan 2008 16:22:11 -0000      1.3
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: AddRemove.h,v 1.2 2007/12/11 17:30:10 r_sijrier Exp $
+    $Id: AddRemove.h,v 1.3 2008/01/21 16:22:11 r_sijrier Exp $
 */
 
 #ifndef ADD_ITEM_COMMAND_H
@@ -27,7 +27,7 @@
 #include <Tsar.h>
 
 class ContextItem;
-class Song;
+class Sheet;
 
 class AddRemove : public Command
 {
@@ -36,7 +36,7 @@
         AddRemove(ContextItem* parent,
                        void*  arg,
                        bool historable,
-                       Song* song,
+                       Sheet* sheet,
                        const char* doActionSlot,
                        const char* doSignal,
                        const char* undoActionSlot,
@@ -56,7 +56,7 @@
        void*           m_arg;
         TsarEvent      m_doActionEvent;
         TsarEvent      m_undoActionEvent;
-        Song*          m_song;
+        Sheet*         m_sheet;
 
         const char*    m_doActionSlot;
        const char*     m_undoActionSlot;

Index: src/commands/ArmTracks.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/ArmTracks.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/commands/ArmTracks.cpp  22 Mar 2007 12:23:59 -0000      1.3
+++ src/commands/ArmTracks.cpp  21 Jan 2008 16:22:11 -0000      1.4
@@ -17,14 +17,14 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: ArmTracks.cpp,v 1.3 2007/03/22 12:23:59 r_sijrier Exp $
+$Id: ArmTracks.cpp,v 1.4 2008/01/21 16:22:11 r_sijrier Exp $
 */
 
 #include "ArmTracks.h"
 
 #include <Track.h>
-#include <Song.h>
-#include <SongView.h>
+#include <Sheet.h>
+#include <SheetView.h>
 #include <TrackView.h>
 
 #include <ContextPointer.h>
@@ -35,8 +35,8 @@
 #include "Debugger.h"
 
 
-ArmTracks::ArmTracks(SongView* view)
-       : Command(view->get_song(), tr("Arm Tracks"))
+ArmTracks::ArmTracks(SheetView* view)
+       : Command(view->get_sheet(), tr("Arm Tracks"))
        , m_sv(view)
 {
 }

Index: src/commands/ArmTracks.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/ArmTracks.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- src/commands/ArmTracks.h    22 Mar 2007 01:33:12 -0000      1.1
+++ src/commands/ArmTracks.h    21 Jan 2008 16:22:11 -0000      1.2
@@ -25,14 +25,14 @@
 
 #include <QList>
 
-class SongView;
+class SheetView;
 class Track;
 
 class ArmTracks : public Command
 {
 
 public :
-       ArmTracks(SongView* view);
+       ArmTracks(SheetView* view);
        ~ArmTracks();
 
        int begin_hold();
@@ -44,7 +44,7 @@
        int jog();
        
 private:
-       SongView* m_sv;
+       SheetView* m_sv;
        QList<Track* > m_tracks;
 };
 

Index: src/commands/AudioClipExternalProcessing.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/commands/AudioClipExternalProcessing.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- src/commands/AudioClipExternalProcessing.cpp        22 Nov 2007 16:17:56 
-0000      1.36
+++ src/commands/AudioClipExternalProcessing.cpp        21 Jan 2008 16:22:11 
-0000      1.37
@@ -264,8 +264,8 @@
                
        m_acep->m_resultingclip = 
resources_manager()->new_audio_clip(m_newClipName);
        resources_manager()->set_source_for_clip(m_acep->m_resultingclip, 
source);
-       // Clips live at project level, we have to set its Song, Track and 
ReadSource explicitely!!
-       m_acep->m_resultingclip->set_song(m_acep->m_clip->get_song());
+       // Clips live at project level, we have to set its Sheet, Track and 
ReadSource explicitely!!
+       m_acep->m_resultingclip->set_sheet(m_acep->m_clip->get_sheet());
        m_acep->m_resultingclip->set_track(m_acep->m_clip->get_track());
        
m_acep->m_resultingclip->set_track_start_location(m_acep->m_clip->get_track_start_location());
        

Index: src/commands/ClipSelection.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/ClipSelection.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/commands/ClipSelection.cpp      16 Mar 2007 00:09:12 -0000      1.5
+++ src/commands/ClipSelection.cpp      21 Jan 2008 16:22:11 -0000      1.6
@@ -23,7 +23,7 @@
 #include "ClipSelection.h"
 #include "AudioClipManager.h"
 #include <AudioClip.h>
-#include <Song.h>
+#include <Sheet.h>
 #include <Utils.h>
 
 #include "Debugger.h"
@@ -43,7 +43,7 @@
        
        m_clips.append( clip );
        m_slot = qstrdup(QS_C(slot));
-       m_acmanager = clip->get_song()->get_audioclip_manager();
+       m_acmanager = clip->get_sheet()->get_audioclip_manager();
 }
 
 ClipSelection::ClipSelection( QList< AudioClip * > clips, AudioClipManager * 
manager, const char * slot, const QString& des )

Index: src/commands/CMakeLists.txt
===================================================================
RCS file: /sources/traverso/traverso/src/commands/CMakeLists.txt,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/commands/CMakeLists.txt 2 Jan 2008 03:03:37 -0000       1.6
+++ src/commands/CMakeLists.txt 21 Jan 2008 16:22:11 -0000      1.7
@@ -5,7 +5,7 @@
 ${CMAKE_SOURCE_DIR}/src/common
 ${CMAKE_SOURCE_DIR}/src/core
 ${CMAKE_SOURCE_DIR}/src/traverso
-${CMAKE_SOURCE_DIR}/src/traverso/songcanvas
+${CMAKE_SOURCE_DIR}/src/sheetcanvas
 ${CMAKE_SOURCE_DIR}/src/plugins
 ${CMAKE_SOURCE_DIR}/src/plugins/native
 ${QT_QTGUI_INCLUDE_DIR}
@@ -38,6 +38,7 @@
 Gain.h
 MoveClip.h
 AudioClipExternalProcessing.h
+Zoom.h
 )
 
 SET(TRAVERSO_COMMANDS_UI_FILES

Index: src/commands/Fade.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Fade.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- src/commands/Fade.cpp       29 Dec 2007 03:53:59 -0000      1.27
+++ src/commands/Fade.cpp       21 Jan 2008 16:22:11 -0000      1.28
@@ -29,7 +29,7 @@
 #include <FadeCurve.h>
 #include <FadeView.h>
 #include <Peak.h>
-#include <Song.h>
+#include <Sheet.h>
 #include "Project.h"
 #include "ProjectManager.h"
                

Index: src/commands/Fade.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Fade.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/commands/Fade.h 24 Sep 2007 16:58:37 -0000      1.12
+++ src/commands/Fade.h 21 Jan 2008 16:22:11 -0000      1.13
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: Fade.h,v 1.12 2007/09/24 16:58:37 r_sijrier Exp $
+$Id: Fade.h,v 1.13 2008/01/21 16:22:11 r_sijrier Exp $
 */
 
 #ifndef FADE_H
@@ -29,7 +29,7 @@
 class AudioClip;
 class FadeCurve;
 class FadeView;
-class SongView;
+class SheetView;
 
 class FadeRange : public Command
 {

Index: src/commands/Gain.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Gain.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- src/commands/Gain.cpp       27 Nov 2007 20:20:42 -0000      1.23
+++ src/commands/Gain.cpp       21 Jan 2008 16:22:11 -0000      1.24
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: Gain.cpp,v 1.23 2007/11/27 20:20:42 r_sijrier Exp $
+$Id: Gain.cpp,v 1.24 2008/01/21 16:22:11 r_sijrier Exp $
 */
 
 #include "Gain.h"
@@ -27,15 +27,15 @@
 #include "Mixer.h"
 #include <ViewPort.h>
 #include <Track.h>
-#include "Song.h"
-#include "SongView.h"
+#include "Sheet.h"
+#include "SheetView.h"
 
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
 #include "Debugger.h"
 
 
-Gain::Gain(ContextItem* context, SongView* sv, QVariantList args)
+Gain::Gain(ContextItem* context, SheetView* sv, QVariantList args)
        : Command(context, "")
        , m_sv(sv)
 {
@@ -67,8 +67,8 @@
        if (track && origGain == 0.5) {
                newGain = 1.0;
        } else {
-               Song* song = qobject_cast<Song*>(context);
-               if (song && origGain == 0.5) {
+               Sheet* sheet = qobject_cast<Sheet*>(context);
+               if (sheet && origGain == 0.5) {
                        newGain = 1.0;
                }
        }

Index: src/commands/Gain.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Gain.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- src/commands/Gain.h 27 Nov 2007 20:20:42 -0000      1.13
+++ src/commands/Gain.h 21 Jan 2008 16:22:11 -0000      1.14
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: Gain.h,v 1.13 2007/11/27 20:20:42 r_sijrier Exp $
+    $Id: Gain.h,v 1.14 2008/01/21 16:22:11 r_sijrier Exp $
 */
 
 #ifndef GAIN_H
@@ -27,7 +27,7 @@
 #include <QPoint>
 
 class ContextItem;
-class SongView;
+class SheetView;
 
 
 class Gain : public Command
@@ -37,7 +37,7 @@
        Q_CLASSINFO("decrease_gain", tr("Decrease"));
        
 public :
-        Gain(ContextItem* context, SongView* sv, QVariantList args);
+        Gain(ContextItem* context, SheetView* sv, QVariantList args);
         ~Gain();
 
         int begin_hold();
@@ -54,7 +54,7 @@
 
 private :
        ContextItem*    gainObject;
-       SongView*       m_sv;
+       SheetView*      m_sv;
         float          origGain;
         float          newGain;
         QPoint                 origPos;

Index: src/commands/Import.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Import.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- src/commands/Import.cpp     7 Jan 2008 19:36:05 -0000       1.34
+++ src/commands/Import.cpp     21 Jan 2008 16:22:11 -0000      1.35
@@ -140,7 +140,7 @@
        Q_ASSERT(m_track);
        m_clip = resources_manager()->new_audio_clip(m_name);
        resources_manager()->set_source_for_clip(m_clip, m_source);
-       m_clip->set_song(m_track->get_song());
+       m_clip->set_sheet(m_track->get_sheet());
        m_clip->set_track(m_track);
        
        TimeRef startLocation;

Index: src/commands/MoveClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.cpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- src/commands/MoveClip.cpp   5 Nov 2007 15:49:29 -0000       1.54
+++ src/commands/MoveClip.cpp   21 Jan 2008 16:22:11 -0000      1.55
@@ -23,7 +23,7 @@
 
 #include "MoveClip.h"
 #include "SnapList.h"
-#include <SongView.h>
+#include <SheetView.h>
 #include <TrackView.h>
 #include <AudioClipView.h>
 #include <ViewPort.h>
@@ -68,7 +68,7 @@
        QString des;
        if (m_actionType == "copy") {
                des = tr("Copy Clip");
-               d->xoffset = TimeRef(cv->get_songview()->timeref_scalefactor * 
3);
+               d->xoffset = TimeRef(cv->get_sheetview()->timeref_scalefactor * 
3);
        } else if (m_actionType == "move") {
                des = tr("Move Clip");
        } else if (m_actionType == "anchored_left_edge_move" ||
@@ -83,8 +83,8 @@
        setText(des);
        
        d->view = cv;
-       d->sv = d->view->get_songview();
-       m_song = d->sv->get_song();
+       d->sv = d->view->get_sheetview();
+       m_sheet = d->sv->get_sheet();
        m_targetTrack = 0;
 
        if (m_actionType == "move_to_start" ||
@@ -167,7 +167,7 @@
        d->sv->stop_follow_play_head();
        if (m_actionType == "copy") {
                d->newclip = 
resources_manager()->get_clip(d->view->get_clip()->get_id());
-               d->newclip->set_song(m_song);
+               d->newclip->set_sheet(m_sheet);
                d->newclip->set_track(d->view->get_clip()->get_track());
                
d->newclip->set_track_start_location(d->view->get_clip()->get_track_start_location()
 + d->xoffset);
                
@@ -236,7 +236,7 @@
                Command::process_command(m_targetTrack->add_clip(m_clip, 
false));
                m_clip->set_track_start_location(m_originalTrackStartLocation + 
m_posDiff);
        } else {
-               m_song->move_clip(m_originTrack, m_targetTrack, m_clip, 
m_originalTrackStartLocation + m_posDiff);
+               m_sheet->move_clip(m_originTrack, m_targetTrack, m_clip, 
m_originalTrackStartLocation + m_posDiff);
        }
        
        if (m_actionType == "anchored_left_edge_move") {
@@ -257,7 +257,7 @@
        if (m_actionType == "copy") {
                Command::process_command(m_targetTrack->remove_clip(m_clip, 
false));
        } else {
-               m_song->move_clip(m_targetTrack, m_originTrack, m_clip, 
m_originalTrackStartLocation);
+               m_sheet->move_clip(m_targetTrack, m_originTrack, m_clip, 
m_originalTrackStartLocation);
        }
 
        if (m_actionType == "anchored_left_edge_move") {
@@ -323,7 +323,6 @@
 
        int newXPos = cpointer().x() - scrollbardif;
 
-       // must be signed int because it can be negative
        TimeRef diff_f = TimeRef((cpointer().x() - d->origXPos - scrollbardif) 
* d->sv->timeref_scalefactor);
        TimeRef newTrackStartLocation;
        TimeRef newTrackEndLocation = d->origTrackEndLocation + diff_f;
@@ -334,7 +333,7 @@
                newTrackStartLocation = d->origTrackStartLocation + diff_f;
        }
 
-       if (m_song->is_snap_on()) {
+       if (m_sheet->is_snap_on()) {
                calculate_snap_diff(newTrackStartLocation, newTrackEndLocation);
        }
        
@@ -379,8 +378,8 @@
 {
        Q_UNUSED(autorepeat);
        d->bypassjog = true;
-       TimeRef trackStartLocation = 
m_song->get_snap_list()->next_snap_pos(m_clip->get_track_start_location());
-       TimeRef trackEndLocation = 
m_song->get_snap_list()->next_snap_pos(m_clip->get_track_end_location());
+       TimeRef trackStartLocation = 
m_sheet->get_snap_list()->next_snap_pos(m_clip->get_track_start_location());
+       TimeRef trackEndLocation = 
m_sheet->get_snap_list()->next_snap_pos(m_clip->get_track_end_location());
        qint64 startdiff = (trackStartLocation - 
m_clip->get_track_start_location()).universal_frame();
        qint64 enddiff = (trackEndLocation - 
m_clip->get_track_end_location()).universal_frame();
        qint64 diff = (abs(startdiff) < abs(enddiff)) ? startdiff : enddiff;
@@ -393,8 +392,8 @@
 {
        Q_UNUSED(autorepeat);
        d->bypassjog = true;
-       TimeRef trackStartLocation = 
m_song->get_snap_list()->prev_snap_pos(m_clip->get_track_start_location());
-       TimeRef trackEndLocation = 
m_song->get_snap_list()->prev_snap_pos(m_clip->get_track_end_location());
+       TimeRef trackStartLocation = 
m_sheet->get_snap_list()->prev_snap_pos(m_clip->get_track_start_location());
+       TimeRef trackEndLocation = 
m_sheet->get_snap_list()->prev_snap_pos(m_clip->get_track_end_location());
        qint64 startdiff = (trackStartLocation - 
m_clip->get_track_start_location()).universal_frame();
        qint64 enddiff = (trackEndLocation - 
m_clip->get_track_end_location()).universal_frame();
        qint64 diff = (abs(startdiff) < abs(enddiff)) ? startdiff : enddiff;
@@ -416,7 +415,7 @@
        Track *track = m_clip->get_track();
        
        Command::process_command(track->remove_clip(m_clip, false));
-       
m_clip->set_track_start_location(m_clip->get_song()->get_last_location());
+       
m_clip->set_track_start_location(m_clip->get_sheet()->get_last_location());
        Command::process_command(track->add_clip(m_clip, false));
 }
 
@@ -427,7 +426,7 @@
        qint64 snapEndDiff = 0;
        qint64 snapDiff = 0;
        
-       SnapList* slist = m_song->get_snap_list();
+       SnapList* slist = m_sheet->get_snap_list();
 
        // check if there is anything to snap
        bool start_snapped = false;

Index: src/commands/MoveClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- src/commands/MoveClip.h     10 Sep 2007 18:42:13 -0000      1.21
+++ src/commands/MoveClip.h     21 Jan 2008 16:22:11 -0000      1.22
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: MoveClip.h,v 1.21 2007/09/10 18:42:13 r_sijrier Exp $
+    $Id: MoveClip.h,v 1.22 2008/01/21 16:22:11 r_sijrier Exp $
 */
 
 #ifndef MOVECLIPACTION_H
@@ -29,9 +29,9 @@
 #include <defines.h>
 
 class AudioClip;
-class Song;
+class Sheet;
 class Track;
-class SongView;
+class SheetView;
 class TrackView;
 class AudioClipView;
 
@@ -54,7 +54,7 @@
         int jog();
        
 private :
-       Song*           m_song;
+       Sheet*          m_sheet;
        AudioClip*      m_clip;
         TimeRef        m_originalTrackStartLocation;
         TimeRef        m_posDiff;
@@ -68,7 +68,7 @@
                int             hScrollbarValue;
                TimeRef         xoffset;
                AudioClip*      newclip;
-               SongView*       sv;
+               SheetView*      sv;
                AudioClipView*  view;
                TrackView*      origTrackView;
                QPoint          origPos;

Index: src/commands/MoveEdge.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveEdge.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- src/commands/MoveEdge.cpp   3 Oct 2007 19:05:36 -0000       1.21
+++ src/commands/MoveEdge.cpp   21 Jan 2008 16:22:11 -0000      1.22
@@ -23,14 +23,14 @@
 
 #include "MoveEdge.h"
 #include <ViewPort.h>
-#include <SongView.h>
+#include <SheetView.h>
 #include <AudioClipView.h>
 
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
 #include "Debugger.h"
 
-MoveEdge::MoveEdge(AudioClipView* cv, SongView* sv, QByteArray whichEdge)
+MoveEdge::MoveEdge(AudioClipView* cv, SheetView* sv, QByteArray whichEdge)
        : Command(cv->get_clip(), tr("Move Clip Edge"))
 {
         m_cv = cv;
@@ -113,8 +113,8 @@
 {
        m_newPos = TimeRef(cpointer().scene_x() * m_sv->timeref_scalefactor);
 
-       if (m_sv->get_song()->is_snap_on()) {
-               SnapList* slist = m_sv->get_song()->get_snap_list();
+       if (m_sv->get_sheet()->is_snap_on()) {
+               SnapList* slist = m_sv->get_sheet()->get_snap_list();
                m_newPos = slist->get_snap_value(m_newPos);
        }
 

Index: src/commands/MoveEdge.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveEdge.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/commands/MoveEdge.h     31 Aug 2007 09:19:51 -0000      1.9
+++ src/commands/MoveEdge.h     21 Jan 2008 16:22:11 -0000      1.10
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: MoveEdge.h,v 1.9 2007/08/31 09:19:51 r_sijrier Exp $
+    $Id: MoveEdge.h,v 1.10 2008/01/21 16:22:11 r_sijrier Exp $
 */
 
 #ifndef MOVEEDGE_H
@@ -28,14 +28,14 @@
 #include <QByteArray>
 
 class AudioClip;
-class Song;
-class SongView;
+class Sheet;
+class SheetView;
 class AudioClipView;
 
 class MoveEdge : public Command
 {
 public :
-        MoveEdge(AudioClipView* cv, SongView* sv, QByteArray whichEdge);
+        MoveEdge(AudioClipView* cv, SheetView* sv, QByteArray whichEdge);
         ~MoveEdge();
 
         int begin_hold();
@@ -49,9 +49,9 @@
 
 private :
         AudioClip*     m_clip;
-        Song*          m_song;
+        Sheet*         m_sheet;
        AudioClipView*  m_cv;
-       SongView*       m_sv;
+       SheetView*      m_sv;
         QByteArray     m_edge;
         TimeRef                m_originalPos;
        TimeRef         m_newPos;

Index: src/commands/MultiMove.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MultiMove.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/commands/MultiMove.cpp  2 Jan 2008 19:23:58 -0000       1.2
+++ src/commands/MultiMove.cpp  21 Jan 2008 16:22:11 -0000      1.3
@@ -23,7 +23,7 @@
 
 #include "MultiMove.h"
 #include <ViewPort.h>
-#include <SongView.h>
+#include <SheetView.h>
 #include <AudioClip.h>
 #include <Marker.h>
 #include "APILinkedList.h"
@@ -33,11 +33,11 @@
 #include "Debugger.h"
 
 
-MultiMove::MultiMove(SongView* sv, bool allTracks)
-       : Command(sv->get_song(), (allTracks) ? tr("Fold Sheet") : tr("Fold 
Track"))
+MultiMove::MultiMove(SheetView* sv, bool allTracks)
+       : Command(sv->get_sheet(), (allTracks) ? tr("Fold Sheet") : tr("Fold 
Track"))
 {
        m_sv = sv;
-       m_song = sv->get_song();
+       m_sheet = sv->get_sheet();
        m_allTracks = allTracks;
        m_track = 0;
        
@@ -96,10 +96,10 @@
                return 1;
        }
        
-       m_selectionStartPos = m_song->get_last_location();
+       m_selectionStartPos = m_sheet->get_last_location();
        
        if (!m_track) {
-               QList<Marker*>markers = m_song->get_timeline()->get_markers();
+               QList<Marker*>markers = m_sheet->get_timeline()->get_markers();
                for (int i = 0; i < markers.size(); i++) {
                        if (markers[i]->get_when() > m_originalPos) {
                                m_markers.append(markers[i]);
@@ -111,7 +111,7 @@
                }
        }
        
-       QList<Track*> tracks = m_song->get_tracks();
+       QList<Track*> tracks = m_sheet->get_tracks();
        
        if (m_track) {
                tracks.clear();

Index: src/commands/MultiMove.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MultiMove.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- src/commands/MultiMove.h    2 Jan 2008 03:03:38 -0000       1.1
+++ src/commands/MultiMove.h    21 Jan 2008 16:22:11 -0000      1.2
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: MultiMove.h,v 1.1 2008/01/02 03:03:38 benjie Exp $
+    $Id: MultiMove.h,v 1.2 2008/01/21 16:22:11 r_sijrier Exp $
 */
 
 #ifndef MULTIMOVE_H
@@ -29,15 +29,15 @@
 
 class AudioClip;
 class Marker;
-class Song;
+class Sheet;
 class Track;
-class SongView;
+class SheetView;
 
 
 class MultiMove : public Command
 {
 public :
-        MultiMove(SongView* sv, bool allTracks);
+        MultiMove(SheetView* sv, bool allTracks);
         ~MultiMove();
 
         int begin_hold();
@@ -52,8 +52,8 @@
 private :
        QList<AudioClip* >      m_clips;
        QList<Marker* >         m_markers;
-       SongView*               m_sv;
-       Song*                   m_song;
+       SheetView*              m_sv;
+       Sheet*                  m_sheet;
        Track*                  m_track;
        bool                    m_allTracks;
        TimeRef                 m_originalPos;

Index: src/commands/PlayHeadMove.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/PlayHeadMove.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/commands/PlayHeadMove.cpp       29 Dec 2007 21:56:46 -0000      1.17
+++ src/commands/PlayHeadMove.cpp       21 Jan 2008 16:22:11 -0000      1.18
@@ -22,15 +22,15 @@
 #include "PlayHeadMove.h"
 
 #include <libtraversocore.h>
-#include <SongView.h>
+#include <SheetView.h>
 #include <Cursors.h>
 
 #include <Debugger.h>
 
-PlayHeadMove::PlayHeadMove(PlayHead* cursor, SongView* sv)
+PlayHeadMove::PlayHeadMove(PlayHead* cursor, SheetView* sv)
        : Command("Play Cursor Move")
        , m_cursor(cursor)
-       , m_song(sv->get_song())
+       , m_sheet(sv->get_sheet())
        , m_sv(sv)
 {
        m_resync = config().get_property("AudioClip", "SyncDuringDrag", 
false).toBool();
@@ -45,15 +45,15 @@
        
        // When SyncDuringDrag is true, don't seek in finish_hold()
        // since that causes another audio glitch.
-       if (!(m_resync && m_song->is_transport_rolling())) {
-               // if the song is transporting, the seek action will cause 
+       if (!(m_resync && m_sheet->is_transport_rolling())) {
+               // if the sheet is transporting, the seek action will cause 
                // the playcursor to be moved to the correct location.
                // Until then hide it, it will be shown again when the seek is 
finished!
-               if (m_song->is_transport_rolling()) {
+               if (m_sheet->is_transport_rolling()) {
                        m_cursor->hide();
                }
                TimeRef location(x * m_sv->timeref_scalefactor);
-               m_song->set_transport_pos(location);
+               m_sheet->set_transport_pos(location);
        }
        m_sv->start_shuttle(false);
        return -1;
@@ -62,7 +62,7 @@
 int PlayHeadMove::begin_hold()
 {
        m_cursor->set_active(false);
-       m_origXPos = m_newXPos = int(m_song->get_transport_location() / 
m_sv->timeref_scalefactor);
+       m_origXPos = m_newXPos = int(m_sheet->get_transport_location() / 
m_sv->timeref_scalefactor);
        m_sv->start_shuttle(true, true);
        
        // Mabye a technically more proper fix is to check if 
@@ -74,7 +74,7 @@
 void PlayHeadMove::cancel_action()
 {
        m_sv->start_shuttle(false);
-       m_cursor->set_active(m_song->is_transport_rolling());
+       m_cursor->set_active(m_sheet->is_transport_rolling());
        if (!m_resync) {
                m_cursor->setPos(m_origXPos, 0);
        }
@@ -103,8 +103,8 @@
        if (x != m_newXPos) {
                m_cursor->setPos(x, 0);
                TimeRef newpos(x * m_sv->timeref_scalefactor);
-               if (m_resync && m_song->is_transport_rolling()) {
-                       m_song->set_transport_pos(newpos);
+               if (m_resync && m_sheet->is_transport_rolling()) {
+                       m_sheet->set_transport_pos(newpos);
                }
                
                m_sv->update_shuttle_factor();

Index: src/commands/PlayHeadMove.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/PlayHeadMove.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- src/commands/PlayHeadMove.h 30 May 2007 16:14:47 -0000      1.4
+++ src/commands/PlayHeadMove.h 21 Jan 2008 16:22:12 -0000      1.5
@@ -24,14 +24,14 @@
 
 #include <Command.h>
 
-class Song;
-class SongView;
+class Sheet;
+class SheetView;
 class PlayHead;
 
 class PlayHeadMove : public Command
 {
 public :
-       PlayHeadMove(PlayHead* cursor, SongView* sv);
+       PlayHeadMove(PlayHead* cursor, SheetView* sv);
        ~PlayHeadMove(){};
 
        int finish_hold();
@@ -43,8 +43,8 @@
 
 private :
        PlayHead*       m_cursor;
-       Song*           m_song;
-       SongView*       m_sv;
+       Sheet*          m_sheet;
+       SheetView*      m_sv;
        bool            m_resync;
        int             m_origXPos;
        int             m_newXPos;

Index: src/commands/Scroll.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Scroll.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- src/commands/Scroll.cpp     27 Dec 2007 22:27:24 -0000      1.1
+++ src/commands/Scroll.cpp     21 Jan 2008 16:22:12 -0000      1.2
@@ -22,7 +22,7 @@
 
 #include "Scroll.h"
 
-#include "SongView.h"
+#include "SheetView.h"
 #include <ClipsViewPort.h>
 
 // Always put me below _all_ includes, this is needed
@@ -30,7 +30,7 @@
 #include "Debugger.h"
 
 
-Scroll::Scroll(int x, int y, SongView* sv)
+Scroll::Scroll(int x, int y, SheetView* sv)
        : Command("Scroll")
 {
        m_dx = x;

Index: src/commands/Scroll.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Scroll.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- src/commands/Scroll.h       27 Dec 2007 22:27:24 -0000      1.1
+++ src/commands/Scroll.h       21 Jan 2008 16:22:12 -0000      1.2
@@ -23,13 +23,13 @@
 
 #include "Command.h"
 
-class SongView;
+class SheetView;
 class QPoint;
 
 class Scroll : public Command
 {
 public :
-        Scroll(int x, int y, SongView* sv);
+        Scroll(int x, int y, SheetView* sv);
         ~Scroll() {};
 
         int begin_hold();
@@ -39,7 +39,7 @@
        int undo_action();
 
 private :
-        SongView* m_sv;
+        SheetView* m_sv;
        int m_dx;
        int m_dy;
 };

Index: src/commands/SplitClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/SplitClip.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- src/commands/SplitClip.cpp  22 Oct 2007 18:44:00 -0000      1.34
+++ src/commands/SplitClip.cpp  21 Jan 2008 16:22:12 -0000      1.35
@@ -22,7 +22,7 @@
 #include "SplitClip.h"
                
 #include <libtraversocore.h>
-#include <SongView.h>
+#include <SheetView.h>
 #include <AudioClipView.h>
 #include "LineView.h"
 #include <ViewItem.h>
@@ -37,13 +37,13 @@
        : Command(view->get_clip(), tr("Split Clip"))
 {
        m_clip = view->get_clip();
-       m_sv = view->get_songview();
+       m_sv = view->get_sheetview();
        m_cv = view;
        m_track = m_clip->get_track();
        leftClip = 0;
        rightClip = 0;
        m_splitPoint = TimeRef();
-       Q_ASSERT(m_clip->get_song());
+       Q_ASSERT(m_clip->get_sheet());
 }
 
 
@@ -60,7 +60,7 @@
        leftClip = resources_manager()->get_clip(m_clip->get_id());
        rightClip = resources_manager()->get_clip(m_clip->get_id());
        
-       leftClip->set_song(m_clip->get_song());
+       leftClip->set_sheet(m_clip->get_sheet());
        leftClip->set_track_start_location(m_clip->get_track_start_location());
        leftClip->set_right_edge(m_splitPoint);
        if (leftClip->get_fade_out()) {
@@ -69,7 +69,7 @@
                Command::process_command(cmd);
        }
        
-       rightClip->set_song(m_clip->get_song());
+       rightClip->set_sheet(m_clip->get_sheet());
        rightClip->set_left_edge(m_splitPoint);
        rightClip->set_track_start_location(m_splitPoint);
        if (rightClip->get_fade_in()) {
@@ -147,8 +147,8 @@
 
        m_splitPoint = x * m_sv->timeref_scalefactor;
 
-       if (m_clip->get_song()->is_snap_on()) {
-               SnapList* slist = m_clip->get_song()->get_snap_list();
+       if (m_clip->get_sheet()->is_snap_on()) {
+               SnapList* slist = m_clip->get_sheet()->get_snap_list();
                m_splitPoint = slist->get_snap_value(m_splitPoint);
        }
        

Index: src/commands/SplitClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/SplitClip.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/commands/SplitClip.h    10 Sep 2007 18:42:13 -0000      1.7
+++ src/commands/SplitClip.h    21 Jan 2008 16:22:12 -0000      1.8
@@ -27,7 +27,7 @@
 
 class AudioClip;
 class Track;
-class SongView;
+class SheetView;
 class AudioClipView;
 class LineView;
 
@@ -49,7 +49,7 @@
        int jog();
        
 private :
-       SongView* m_sv;
+       SheetView* m_sv;
        AudioClipView* m_cv;
         Track* m_track;
         AudioClip* m_clip;

Index: src/commands/TrackPan.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/TrackPan.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/commands/TrackPan.cpp   30 Apr 2007 11:08:18 -0000      1.11
+++ src/commands/TrackPan.cpp   21 Jan 2008 16:22:12 -0000      1.12
@@ -32,7 +32,7 @@
        : Command(track, "")
 {
         m_track = track;
-        m_song = track->get_song();
+        m_sheet = track->get_sheet();
        
        QString des;
        

Index: src/commands/TrackPan.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/TrackPan.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/commands/TrackPan.h     25 Apr 2007 05:43:36 -0000      1.7
+++ src/commands/TrackPan.h     21 Jan 2008 16:22:12 -0000      1.8
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: TrackPan.h,v 1.7 2007/04/25 05:43:36 benjie Exp $
+    $Id: TrackPan.h,v 1.8 2008/01/21 16:22:12 r_sijrier Exp $
 */
 
 #ifndef TRACKPAN_H
@@ -25,7 +25,7 @@
 
 #include "Command.h"
 
-class Song;
+class Sheet;
 class Track;
 
 class TrackPan : public Command
@@ -50,7 +50,7 @@
         float newPan;
         int origX;
 
-        Song* m_song;
+        Sheet* m_sheet;
         Track* m_track;
 };
 

Index: src/commands/WorkCursorMove.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/WorkCursorMove.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/commands/WorkCursorMove.cpp     28 Sep 2007 18:33:43 -0000      1.9
+++ src/commands/WorkCursorMove.cpp     21 Jan 2008 16:22:12 -0000      1.10
@@ -22,14 +22,14 @@
 #include "WorkCursorMove.h"
 
 #include <libtraversocore.h>
-#include <SongView.h>
+#include <SheetView.h>
 #include <Cursors.h>
 
 #include <Debugger.h>
 
-WorkCursorMove::WorkCursorMove(PlayHead* cursor, SongView* sv)
+WorkCursorMove::WorkCursorMove(PlayHead* cursor, SheetView* sv)
        : Command("Play Cursor Move")
-       , m_song(sv->get_song())
+       , m_sheet(sv->get_sheet())
        , m_sv(sv)
        , m_playCursor(cursor)
 {
@@ -43,7 +43,7 @@
                x = 0;
        }
 
-       m_song->get_work_snap()->set_snappable(true);
+       m_sheet->get_work_snap()->set_snappable(true);
 
        m_sv->start_shuttle(false);
        return -1;
@@ -51,19 +51,19 @@
 
 int WorkCursorMove::begin_hold()
 {
-       if (m_song->is_transport_rolling()) {
+       if (m_sheet->is_transport_rolling()) {
                m_playCursor->disable_follow();
        }
-       m_song->get_work_snap()->set_snappable(false);
+       m_sheet->get_work_snap()->set_snappable(false);
        m_sv->start_shuttle(true, true);
-       m_origPos = m_song->get_work_location();
+       m_origPos = m_sheet->get_work_location();
        return 1;
 }
 
 void WorkCursorMove::cancel_action()
 {
        m_sv->start_shuttle(false);
-       m_song->set_work_at(m_origPos);
+       m_sheet->set_work_at(m_origPos);
 }
 
 void WorkCursorMove::set_cursor_shape(int useX, int useY)
@@ -84,12 +84,12 @@
 
        TimeRef newLocation(x * m_sv->timeref_scalefactor);
 
-       if (m_song->is_snap_on()) {
-               SnapList* slist = m_song->get_snap_list();
+       if (m_sheet->is_snap_on()) {
+               SnapList* slist = m_sheet->get_snap_list();
                newLocation = slist->get_snap_value(newLocation);
        }
 
-       m_song->set_work_at(newLocation);
+       m_sheet->set_work_at(newLocation);
 
        m_sv->update_shuttle_factor();
        
cpointer().get_viewport()->set_holdcursor_text(timeref_to_text(newLocation, 
m_sv->timeref_scalefactor));

Index: src/commands/WorkCursorMove.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/WorkCursorMove.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/commands/WorkCursorMove.h       10 Sep 2007 18:42:13 -0000      1.3
+++ src/commands/WorkCursorMove.h       21 Jan 2008 16:22:12 -0000      1.4
@@ -25,14 +25,14 @@
 #include <Command.h>
 #include <defines.h>
 
-class Song;
-class SongView;
+class Sheet;
+class SheetView;
 class PlayHead;
 
 class WorkCursorMove : public Command
 {
 public :
-       WorkCursorMove (PlayHead* cursor, SongView* sv);
+       WorkCursorMove (PlayHead* cursor, SheetView* sv);
        ~WorkCursorMove (){};
 
        int finish_hold();
@@ -43,8 +43,8 @@
        void set_cursor_shape(int useX, int useY);
 
 private :
-       Song*           m_song;
-       SongView*       m_sv;
+       Sheet*          m_sheet;
+       SheetView*      m_sv;
        PlayHead*       m_playCursor;
        TimeRef         m_origPos;
 };

Index: src/commands/Zoom.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Zoom.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- src/commands/Zoom.cpp       22 May 2007 20:54:22 -0000      1.15
+++ src/commands/Zoom.cpp       21 Jan 2008 16:22:12 -0000      1.16
@@ -17,41 +17,61 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: Zoom.cpp,v 1.15 2007/05/22 20:54:22 benjie Exp $
 */
 
-#include <libtraversocore.h>
-
 #include "Zoom.h"
 
-#include "SongView.h"
-#include "TrackView.h"
+#include "SheetView.h"
+#include "Sheet.h"
+#include "ClipsViewPort.h"
+#include "ContextPointer.h"
 #include <QPoint>
-#include <ViewPort.h>
-#include <ClipsViewPort.h>
 
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
 #include "Debugger.h"
 
-Zoom::Zoom(SongView* sv)
+Zoom::Zoom(SheetView* sv, QVariantList args)
        : Command("Zoom")
 {
+       m_jogHorizontal = m_jogVertical = false;
+       
+       if (args.size() > 0) {
+               QString type = args.at(0).toString();
+               if (type == "JogZoom") {
+                       m_jogHorizontal = m_jogVertical = true;
+               } else if (type == "HJogZoom") {
+                       m_jogHorizontal = true;
+               } else if (type == "VJogZoom") {
+                       m_jogVertical = true;
+               }
+       }
+       if (args.size() > 1) {
+               m_xScalefactor = args.at(1).toDouble();
+       } else {
+               m_xScalefactor = 1;
+       }
+       if (args.size() > 2) {
+               m_yScalefactor = args.at(2).toDouble();
+       } else {
+               m_yScalefactor = 0;
+       }
+       
         m_sv = sv;
 }
 
 
 int Zoom::prepare_actions()
 {
-        return -1;
+       return 1;
 }
 
 
 int Zoom::begin_hold()
 {
-        jogZoomTotalX = cpointer().get_viewport()->viewport()->width();
-        verticalJogZoomLastY = cpointer().on_first_input_event_y();
-        baseJogZoomXFactor = m_sv->get_song()->get_hzoom() - ((int) ( (float) 
(jogZoomTotalX - cpointer().on_first_input_event_x()) / jogZoomTotalX * 50 ) + 
1 );
+       verticalJogZoomLastY = cpointer().y();
+       horizontalJogZoomLastX = cpointer().x();
+       origPos = cpointer().pos();
        
        return 1;
 }
@@ -59,7 +79,8 @@
 
 int Zoom::finish_hold()
 {
-       return 1;
+       QCursor::setPos(mousePos);
+       return -1;
 }
 
 
@@ -68,45 +89,66 @@
        Q_UNUSED(useX);
        Q_UNUSED(useY);
        
-       ViewPort* view = cpointer().get_viewport();
-       view->viewport()->setCursor(themer()->get_cursor("Zoom"));
+       if (useX && useY) {
+               cpointer().get_viewport()->set_holdcursor(":/cursorZoom");
+       } else if(useX) {
+               
cpointer().get_viewport()->set_holdcursor(":/cursorZoomHorizontal");
+       } else if (useY) {
+               
cpointer().get_viewport()->set_holdcursor(":/cursorZoomVertical");
+       }
+       
        mousePos = QCursor::pos();      
 }
 
 int Zoom::jog()
 {
         PENTER;
-        int x = cpointer().x();
+       
+       if (m_jogVertical) {
         int y = cpointer().y();
-        int jzxfactor = (int) ( (float) (jogZoomTotalX - x) / jogZoomTotalX * 
50 ) + 1;
-        if (jzxfactor==0)
-                jzxfactor=1;
-
-        if (jzxfactor != lastJogZoomXFactor) {
-                lastJogZoomXFactor = jzxfactor;
-                int newHZoom = jzxfactor + baseJogZoomXFactor;
-                if ( newHZoom < 0 )
-                        m_sv->get_song()->set_hzoom(0);
-                else if ( newHZoom > Peak::ZOOM_LEVELS -1 )
-                        m_sv->get_song()->set_hzoom(Peak::ZOOM_LEVELS - 1);
-                else
-                        m_sv->get_song()->set_hzoom(newHZoom);
-                m_sv->center();
+               int dy = y - verticalJogZoomLastY;
+               
+               if (abs(dy) > 8) {
+                       verticalJogZoomLastY = y;
+                       if (dy > 0) {
+                               m_sv->vzoom(1 + m_yScalefactor);
+                       } else {
+                               m_sv->vzoom(1 - m_yScalefactor);
+                       }
+               }
         }
 
-        int vzy = y - verticalJogZoomLastY;
-        if (vzy>10) {
-                m_sv->vzoom_in();
-                verticalJogZoomLastY = verticalJogZoomLastY + 10;
-        } else if (vzy<-10) {
-                m_sv->vzoom_out();
-                verticalJogZoomLastY = verticalJogZoomLastY - 10;
+       if (m_jogHorizontal) {
+               int x = cpointer().x();
+               int dx = x - horizontalJogZoomLastX;
+               
+               if (abs(dx) > 1) {
+                       horizontalJogZoomLastX = x;
+                       Sheet* sheet = m_sv->get_sheet();
+                       if (dx > 0) {
+                               sheet->set_hzoom(sheet->get_hzoom() / 
(m_xScalefactor + dx/18));
+                       } else {
+                               sheet->set_hzoom(sheet->get_hzoom() * 
(m_xScalefactor + abs(dx)/18));
+                       }
+                       m_sv->center();
         }
+       }
+       
+       
cpointer().get_viewport()->set_holdcursor_pos(m_sv->get_clips_viewport()->mapToScene(origPos).toPoint());
+       
         return 1;
 }
 
 int Zoom::do_action( )
 {
+       if (m_yScalefactor != 0) {
+               m_sv->vzoom(1 + m_yScalefactor);
+       }
+       if (m_xScalefactor != 1) {
+               m_sv->hzoom(m_xScalefactor);
+//             m_sv->center();
+       }
+       
        return -1;
 }
 
@@ -115,5 +157,30 @@
        return -1;
 }
 
+void Zoom::vzoom_in(bool autorepeat)
+{
+       m_sv->vzoom(1.3);
+}
+
+void Zoom::vzoom_out(bool autorepeat)
+{
+       m_sv->vzoom(0.7);
+}
+
+void Zoom::toggle_vertical_horizontal_jog_zoom(bool autorepeat)
+{
+       if (autorepeat) return;
+       
+       if (m_jogVertical) {
+               
cpointer().get_viewport()->set_holdcursor(":/cursorZoomHorizontal");
+               
cpointer().get_viewport()->set_holdcursor_pos(m_sv->get_clips_viewport()->mapToScene(origPos).toPoint());
+               m_jogVertical = false;
+               m_jogHorizontal = true;
+       } else {
+               
cpointer().get_viewport()->set_holdcursor(":/cursorZoomVertical");
+               
cpointer().get_viewport()->set_holdcursor_pos(m_sv->get_clips_viewport()->mapToScene(origPos).toPoint());
+               m_jogVertical = true;
+               m_jogHorizontal = false;
+       }
+}
 
-// eof

Index: src/commands/Zoom.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Zoom.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/commands/Zoom.h 16 Jan 2007 20:21:08 -0000      1.5
+++ src/commands/Zoom.h 21 Jan 2008 16:22:12 -0000      1.6
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: Zoom.h,v 1.5 2007/01/16 20:21:08 r_sijrier Exp $
+    $Id: Zoom.h,v 1.6 2008/01/21 16:22:12 r_sijrier Exp $
 */
 
 #ifndef ZOOM_H
@@ -25,13 +25,20 @@
 
 #include "Command.h"
 
-class SongView;
+#include <QTimer>
+
+class SheetView;
 class QPoint;
 
 class Zoom : public Command
 {
+       Q_OBJECT
+       Q_CLASSINFO("vzoom_in", tr("Zoom Vertical In"));
+       Q_CLASSINFO("vzoom_out", tr("Zoom Vertical Out"));
+       Q_CLASSINFO("toggle_vertical_horizontal_jog_zoom", tr("Toggle Vertical 
/ Horizontal"));
+
 public :
-        Zoom(SongView* sv);
+       Zoom(SheetView* sv, QVariantList args);
         ~Zoom() {};
 
         int begin_hold();
@@ -45,14 +52,22 @@
         void set_cursor_shape(int useX, int useY);
 
 private :
-        int origZoomLevel;
-        int jogZoomTotalX;
-        int lastJogZoomXFactor;
-        int baseJogZoomXFactor;
+       int horizontalJogZoomLastX;
         int verticalJogZoomLastY;
+       bool m_jogVertical;
+       bool m_jogHorizontal;
+       qreal m_xScalefactor;
+       qreal m_yScalefactor;
        QPoint          mousePos;
+       QPoint  origPos;
+       QTimer  m_jogVerticalResetTimer;
+       
+        SheetView* m_sv;
        
-        SongView* m_sv;
+public slots:
+       void vzoom_in(bool autorepeat);
+       void vzoom_out(bool autorepeat);
+       void toggle_vertical_horizontal_jog_zoom(bool autorepeat);
 };
 
 #endif

Index: src/common/Utils.h
===================================================================
RCS file: /sources/traverso/traverso/src/common/Utils.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- src/common/Utils.h  1 Dec 2007 16:34:23 -0000       1.4
+++ src/common/Utils.h  21 Jan 2008 16:22:12 -0000      1.5
@@ -51,6 +51,27 @@
        return !(n & (n - 1));
 }
 
+static inline int cnt_bits(unsigned long val, int & highbit)
+{
+       int cnt = 0;
+       highbit = 0;
+       while (val) {
+               if (val & 1) cnt++;
+               val>>=1;
+               highbit++;
+       }
+       return cnt;
+}
+
+// returns the next power of two greater or equal to val
+static inline long nearest_power_of_two(unsigned long val, int& highbit)
+{
+       if (cnt_bits(val, highbit) > 1) {
+               return 1<<highbit;
+       }
+       return val;
+}
+
 QPixmap find_pixmap(const QString& pixname);
 
 #endif

Index: src/core/AudioClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.cpp,v
retrieving revision 1.160
retrieving revision 1.161
diff -u -b -r1.160 -r1.161
--- src/core/AudioClip.cpp      29 Dec 2007 03:54:00 -0000      1.160
+++ src/core/AudioClip.cpp      21 Jan 2008 16:22:12 -0000      1.161
@@ -27,7 +27,7 @@
 #include "AudioClip.h"
 #include "AudioSource.h"
 #include "WriteSource.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "SnapList.h"
 #include "Track.h"
 #include "AudioChannel.h"
@@ -68,7 +68,7 @@
        PENTERCONS;
        m_isMuted=false;
        m_id = create_id();
-       m_readSourceId = m_songId = 0;
+       m_readSourceId = m_sheetId = 0;
        init();
 }
 
@@ -87,7 +87,7 @@
        QDomElement e = node.toElement();
        m_id = e.attribute("id", "").toLongLong();
        m_readSourceId = e.attribute("source", "").toLongLong();
-       m_songId = e.attribute("sheet", "0").toLongLong();
+       m_sheetId = e.attribute("sheet", "0").toLongLong();
        m_name = e.attribute( "clipname", "" ) ;
        m_isMuted =  e.attribute( "mute", "" ).toInt();
        // FIXME!!!!!!!
@@ -106,7 +106,7 @@
 {
        PENTERDES;
        if (m_readSource) {
-               m_song->get_diskio()->unregister_read_source(m_readSource);
+               m_sheet->get_diskio()->unregister_read_source(m_readSource);
                delete m_readSource;
        }
        if (m_peak) {
@@ -116,7 +116,7 @@
 
 void AudioClip::init()
 {
-       m_song = 0;
+       m_sheet = 0;
        m_track = 0;
        m_readSource = 0;
        m_peak = 0;
@@ -135,7 +135,7 @@
 {
        PENTER;
        
-       Q_ASSERT(m_song);
+       Q_ASSERT(m_sheet);
        
        QDomElement e = node.toElement();
 
@@ -144,11 +144,11 @@
        m_isLocked = e.attribute( "locked", "0" ).toInt();
 
        if (e.attribute("selected", "0").toInt() == 1) {
-               m_song->get_audioclip_manager()->select_clip(this);
+               m_sheet->get_audioclip_manager()->select_clip(this);
        }
 
        m_readSourceId = e.attribute("source", "").toLongLong();
-       m_songId = e.attribute("sheet", "0").toLongLong();
+       m_sheetId = e.attribute("sheet", "0").toLongLong();
        m_isMuted =  e.attribute( "mute", "" ).toInt();
 
        bool ok;
@@ -163,7 +163,7 @@
        QDomElement fadeInNode = node.firstChildElement("FadeIn");
        if (!fadeInNode.isNull()) {
                if (!fadeIn) {
-                       fadeIn = new FadeCurve(this, m_song, "FadeIn");
+                       fadeIn = new FadeCurve(this, m_sheet, "FadeIn");
                        fadeIn->set_history_stack(get_history_stack());
                        private_add_fade(fadeIn);
                }
@@ -173,7 +173,7 @@
        QDomElement fadeOutNode = node.firstChildElement("FadeOut");
        if (!fadeOutNode.isNull()) {
                if (!fadeOut) {
-                       fadeOut = new FadeCurve(this, m_song, "FadeOut");
+                       fadeOut = new FadeCurve(this, m_sheet, "FadeOut");
                        fadeOut->set_history_stack(get_history_stack());
                        private_add_fade(fadeOut);
                }
@@ -199,7 +199,7 @@
        node.setAttribute("clipname", m_name );
        node.setAttribute("selected", m_isSelected );
        node.setAttribute("id", m_id );
-       node.setAttribute("sheet", m_songId );
+       node.setAttribute("sheet", m_sheetId );
        node.setAttribute("locked", m_isLocked);
 
        node.setAttribute("source", m_readSourceId);
@@ -401,7 +401,7 @@
 //
 int AudioClip::process(nframes_t nframes)
 {
-       Q_ASSERT(m_song);
+       Q_ASSERT(m_sheet);
        
        if (m_recordingStatus == RECORDING) {
                process_capture(nframes);
@@ -418,7 +418,7 @@
        
        Q_ASSERT(m_readSource);
        
-       AudioBus* bus = m_song->get_clip_render_bus();
+       AudioBus* bus = m_sheet->get_clip_render_bus();
        bus->silence_buffers(nframes);
        
        TimeRef mix_pos;
@@ -428,7 +428,7 @@
 
 
        int outputRate = m_readSource->get_output_rate();
-       TimeRef transportLocation = m_song->get_transport_location();
+       TimeRef transportLocation = m_sheet->get_transport_location();
        TimeRef upperRange = transportLocation + TimeRef(framesToProcess, 
outputRate);
        
        
@@ -467,13 +467,13 @@
 
        uint read_frames = 0;
 
-       if (m_song->realtime_path()) {
+       if (m_sheet->realtime_path()) {
                read_frames = m_readSource->rb_read(mixdown, mix_pos, 
framesToProcess);
        } else {
-               read_frames = 
m_readSource->file_read(m_song->renderDecodeBuffer, mix_pos, framesToProcess);
+               read_frames = 
m_readSource->file_read(m_sheet->renderDecodeBuffer, mix_pos, framesToProcess);
                if (read_frames > 0) {
                        for (int chan=0; chan<channelcount; ++chan) {
-                               memcpy(mixdown[chan], 
m_song->renderDecodeBuffer->destination[chan], read_frames * 
sizeof(audio_sample_t));
+                               memcpy(mixdown[chan], 
m_sheet->renderDecodeBuffer->destination[chan], read_frames * 
sizeof(audio_sample_t));
                        }
                }
        }
@@ -495,7 +495,7 @@
        TimeRef endlocation = mix_pos + TimeRef(read_frames, get_rate());
        m_fader->process_gain(mixdown, mix_pos, endlocation, read_frames, 
channelcount);
        
-       AudioBus* sendbus = m_song->get_render_bus();
+       AudioBus* sendbus = m_sheet->get_render_bus();
        
        // NEVER EVER FORGET that the mixing should be done on the WHOLE 
buffer, not just part of it
        // so use an unmodified nframes variable!!!!!!!!!!!!!!!!!!!!!!!!!!!1
@@ -544,7 +544,7 @@
 
 int AudioClip::init_recording( QByteArray name )
 {
-       Q_ASSERT(m_song);
+       Q_ASSERT(m_sheet);
        Q_ASSERT(m_track);
        
        m_captureBusName = name;
@@ -570,7 +570,7 @@
        
        ReadSource* rs = resources_manager()->create_recording_source(
                                pm().get_project()->get_root_dir() + 
"/audiosources/",
-                               m_name, channelcount, m_song->get_id());
+                               m_name, channelcount, m_sheet->get_id());
        
        resources_manager()->set_source_for_clip(this, rs);
        
@@ -618,10 +618,10 @@
        m_recorder->set_process_peaks( true );
        m_recorder->set_recording( true );
        
-       m_song->get_diskio()->register_write_source(m_recorder);
+       m_sheet->get_diskio()->register_write_source(m_recorder);
        
        connect(m_recorder, SIGNAL(exportFinished()), this, 
SLOT(finish_write_source()));
-       connect(m_song, SIGNAL(transferStopped()), this, 
SLOT(finish_recording()));
+       connect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(finish_recording()));
        connect(&audiodevice(), SIGNAL(driverParamsChanged()), this, 
SLOT(get_capture_bus()));
 
        return 1;
@@ -678,12 +678,12 @@
 AudioClip* AudioClip::create_copy( )
 {
        PENTER;
-       Q_ASSERT(m_song);
+       Q_ASSERT(m_sheet);
        Q_ASSERT(m_track);
        QDomDocument doc("AudioClip");
        QDomNode clipState = get_state(doc);
        AudioClip* clip = new AudioClip(m_name);
-       clip->set_song(m_song);
+       clip->set_sheet(m_sheet);
        clip->set_track(m_track);
        clip->set_state(clipState);
        return clip;
@@ -745,7 +745,7 @@
        if (m_readSource->set_file(m_recorder->get_filename()) < 0) {
                PERROR("Setting file for ReadSource failed after finishing 
recording");
        } else {
-               m_song->get_diskio()->register_read_source(m_readSource);
+               m_sheet->get_diskio()->register_read_source(m_readSource);
                // re-inits the lenght from the audiofile due calling 
rsm->set_source_for_clip()
                m_length = TimeRef();
        }
@@ -767,7 +767,7 @@
        m_recordingStatus = FINISHING_RECORDING;
        m_recorder->set_recording(false);
 
-       disconnect(m_song, SIGNAL(transferStopped()), this, 
SLOT(finish_recording()));
+       disconnect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(finish_recording()));
        disconnect(&audiodevice(), SIGNAL(driverParamsChanged()), this, 
SLOT(get_capture_bus()));
 }
 
@@ -784,10 +784,10 @@
        return 0;
 }
 
-Song* AudioClip::get_song( ) const
+Sheet* AudioClip::get_sheet( ) const
 {
-       Q_ASSERT(m_song);
-       return m_song;
+       Q_ASSERT(m_sheet);
+       return m_sheet;
 }
 
 Track* AudioClip::get_track( ) const
@@ -796,20 +796,20 @@
        return m_track;
 }
 
-void AudioClip::set_song( Song * song )
+void AudioClip::set_sheet( Sheet * sheet )
 {
-       m_song = song;
+       m_sheet = sheet;
        if (m_readSource && m_isReadSourceValid) {
-               m_song->get_diskio()->register_read_source( m_readSource );
+               m_sheet->get_diskio()->register_read_source( m_readSource );
        } else {
-               PWARN("AudioClip::set_song() : Setting Song, but no ReadSource 
available!!");
+               PWARN("AudioClip::set_sheet() : Setting Sheet, but no 
ReadSource available!!");
        }
        
-       m_songId = song->get_id();
+       m_sheetId = sheet->get_id();
        
-       set_history_stack(m_song->get_history_stack());
-       m_pluginChain->set_song(m_song);
-       set_snap_list(m_song->get_snap_list());
+       set_history_stack(m_sheet->get_history_stack());
+       m_pluginChain->set_sheet(m_sheet);
+       set_snap_list(m_sheet->get_snap_list());
 }
 
 
@@ -961,7 +961,7 @@
 
 void AudioClip::create_fade_in( )
 {
-       fadeIn = new FadeCurve(this, m_song, "FadeIn");
+       fadeIn = new FadeCurve(this, m_sheet, "FadeIn");
        fadeIn->set_shape("Fast");
        fadeIn->set_history_stack(get_history_stack());
        THREAD_SAVE_INVOKE_AND_EMIT_SIGNAL(this, fadeIn, 
private_add_fade(FadeCurve*), fadeAdded(FadeCurve*));
@@ -969,7 +969,7 @@
 
 void AudioClip::create_fade_out( )
 {
-       fadeOut = new FadeCurve(this, m_song, "FadeOut");
+       fadeOut = new FadeCurve(this, m_sheet, "FadeOut");
        fadeOut->set_shape("Fast");
        fadeOut->set_history_stack(get_history_stack());
        THREAD_SAVE_INVOKE_AND_EMIT_SIGNAL(this, fadeOut, 
private_add_fade(FadeCurve*), fadeAdded(FadeCurve*));
@@ -980,9 +980,9 @@
        return m_domNode;
 }
 
-bool AudioClip::has_song() const
+bool AudioClip::has_sheet() const
 {
-       if (m_song) {
+       if (m_sheet) {
                return true;
        }
        return false;

Index: src/core/AudioClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.h,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -b -r1.72 -r1.73
--- src/core/AudioClip.h        29 Dec 2007 03:54:00 -0000      1.72
+++ src/core/AudioClip.h        21 Jan 2008 16:22:13 -0000      1.73
@@ -34,7 +34,7 @@
 #include "GainEnvelope.h"
 
 
-class Song;
+class Sheet;
 class ReadSource;
 class WriteSource;
 class Track;
@@ -75,14 +75,14 @@
        void set_fade_in(double range);
        void set_fade_out(double range);
        void set_track(Track* track);
-       void set_song(Song* song);
+       void set_sheet(Sheet* sheet);
 
        void set_selected(bool selected);
        int set_state( const QDomNode& node );
 
        AudioClip* create_copy();
        Track* get_track() const;
-       Song* get_song() const;
+       Sheet* get_sheet() const;
        Peak* get_peak() const {return m_peak;}
        QDomNode get_state(QDomDocument doc);
        FadeCurve* get_fade_in() const;
@@ -100,7 +100,7 @@
        int get_rate() const;
        int get_bitdepth() const;
        qint64 get_readsource_id() const;
-       qint64 get_song_id() const {return m_songId;}
+       qint64 get_sheet_id() const {return m_sheetId;}
        ReadSource* get_readsource() const;
        
        QString get_name() const;
@@ -109,7 +109,7 @@
        bool is_take() const;
        bool is_selected() const;
        bool is_locked() const {return m_isLocked;}
-       bool has_song() const;
+       bool has_sheet() const;
        bool is_readsource_invalid() const {return !m_isReadSourceValid;}
        bool is_smaller_then(APILinkedListNode* node) {return 
((AudioClip*)node)->get_track_start_location() > get_track_start_location();}
 
@@ -117,7 +117,7 @@
 
 private:
        Track*                  m_track;
-       Song*                   m_song;
+       Sheet*                  m_sheet;
        ReadSource*             m_readSource;
        WriteSource*            m_recorder;
        APILinkedList           m_fades;
@@ -144,7 +144,7 @@
        RecordingStatus         m_recordingStatus;
        
        qint64                  m_readSourceId;
-       qint64                  m_songId;
+       qint64                  m_sheetId;
 
        void create_fade_in();
        void create_fade_out();

Index: src/core/AudioClipManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClipManager.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- src/core/AudioClipManager.cpp       5 Nov 2007 15:49:29 -0000       1.20
+++ src/core/AudioClipManager.cpp       21 Jan 2008 16:22:13 -0000      1.21
@@ -17,12 +17,12 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: AudioClipManager.cpp,v 1.20 2007/11/05 15:49:29 r_sijrier Exp $
+    $Id: AudioClipManager.cpp,v 1.21 2008/01/21 16:22:13 r_sijrier Exp $
 */
  
 #include "AudioClipManager.h"
 
-#include "Song.h"
+#include "Sheet.h"
 #include "AudioClip.h"
 #include "ResourcesManager.h"
 #include "ProjectManager.h"
@@ -32,12 +32,12 @@
 #include "Utils.h"
 #include "Debugger.h"
 
-AudioClipManager::AudioClipManager( Song* song )
-       : ContextItem(song)
+AudioClipManager::AudioClipManager( Sheet* sheet )
+       : ContextItem(sheet)
 {
        PENTERCONS;
-       m_song = song;
-       set_history_stack( m_song->get_history_stack() );
+       m_sheet = sheet;
+       set_history_stack( m_sheet->get_history_stack() );
        lastLocation = TimeRef();
 }
 
@@ -57,9 +57,9 @@
        m_clips.append( clip );
        
        connect(clip, SIGNAL(trackEndLocationChanged()), this, 
SLOT(update_last_frame()));
-       connect(clip, SIGNAL(positionChanged(Snappable*)), 
m_song->get_snap_list(), SLOT(mark_dirty(Snappable*)));
+       connect(clip, SIGNAL(positionChanged(Snappable*)), 
m_sheet->get_snap_list(), SLOT(mark_dirty(Snappable*)));
        
-       m_song->get_snap_list()->mark_dirty(clip);
+       m_sheet->get_snap_list()->mark_dirty(clip);
        update_last_frame();
        resources_manager()->mark_clip_added(clip);
 }
@@ -67,13 +67,13 @@
 void AudioClipManager::remove_clip( AudioClip * clip )
 {
        PENTER;
-       disconnect(clip, SIGNAL(positionChanged(Snappable*)), 
m_song->get_snap_list(), SLOT(mark_dirty(Snappable*)));
+       disconnect(clip, SIGNAL(positionChanged(Snappable*)), 
m_sheet->get_snap_list(), SLOT(mark_dirty(Snappable*)));
        if (m_clips.removeAll(clip) == 0) {
                PERROR("Clip %s was not in my list, couldn't remove it!!", 
QS_C(clip->get_name()));
                return;
        }
        
-       m_song->get_snap_list()->mark_dirty(clip);
+       m_sheet->get_snap_list()->mark_dirty(clip);
        update_last_frame();
        resources_manager()->mark_clip_removed(clip);
 }
@@ -90,7 +90,7 @@
                        lastLocation = clip->get_track_end_location();
        }
        
-       emit m_song->lastFramePositionChanged();
+       emit m_sheet->lastFramePositionChanged();
 }
 
 const TimeRef& AudioClipManager::get_last_location() const

Index: src/core/AudioClipManager.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClipManager.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/core/AudioClipManager.h 10 Sep 2007 18:42:48 -0000      1.7
+++ src/core/AudioClipManager.h 21 Jan 2008 16:22:13 -0000      1.8
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: AudioClipManager.h,v 1.7 2007/09/10 18:42:48 r_sijrier Exp $
+$Id: AudioClipManager.h,v 1.8 2008/01/21 16:22:13 r_sijrier Exp $
 */
 
 #ifndef AUDIOCLIPMANAGER_H
@@ -29,7 +29,7 @@
 #include <QList>
 
 class AudioClip;
-class Song;
+class Sheet;
 
 class AudioClipManager : public ContextItem
 {
@@ -40,7 +40,7 @@
        Q_CLASSINFO("delete_selected_clips", tr("Delete selected"))
 
 public:
-       AudioClipManager(Song* song);
+       AudioClipManager(Sheet* sheet);
        ~AudioClipManager();
 
        void get_selected_clips_state(QList<AudioClip*> & list);
@@ -53,7 +53,7 @@
 private:
        QList<AudioClip* >              m_clips;
        QList<AudioClip* >              clipselection;
-       Song*                           m_song;
+       Sheet*                          m_sheet;
        
        TimeRef                         lastLocation;
 

Index: src/core/AudioSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioSource.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- src/core/AudioSource.cpp    17 Aug 2007 00:18:29 -0000      1.28
+++ src/core/AudioSource.cpp    21 Jan 2008 16:22:13 -0000      1.29
@@ -21,7 +21,7 @@
 
 
 #include "AudioSource.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "Peak.h"
 #include "Export.h"
 #include "Utils.h"
@@ -90,9 +90,9 @@
        m_origBitDepth = bitDepth;
 }
 
-void AudioSource::set_created_by_song(qint64 id)
+void AudioSource::set_created_by_sheet(qint64 id)
 {
-       m_origSongId = id;
+       m_origSheetId = id;
 }
 
 QString AudioSource::get_filename( ) const

Index: src/core/AudioSource.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioSource.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- src/core/AudioSource.h      17 Aug 2007 00:18:30 -0000      1.25
+++ src/core/AudioSource.h      21 Jan 2008 16:22:13 -0000      1.26
@@ -42,13 +42,13 @@
        void set_name(const QString& name);
        void set_dir(const QString& name);
        void set_original_bit_depth(uint bitDepth);
-       void set_created_by_song(qint64 id);
+       void set_created_by_sheet(qint64 id);
        QString get_filename() const;
        QString get_dir() const;
        QString get_name() const;
        QString get_short_name() const;
        qint64 get_id() const;
-       qint64 get_orig_song_id() const {return m_origSongId;}
+       qint64 get_orig_sheet_id() const {return m_origSheetId;}
        int get_rate() const;
        uint get_channel_count() const;
        int get_bit_depth() const;
@@ -60,7 +60,7 @@
        uint            m_chunkSize;
        
        int             m_channelCount;
-       qint64          m_origSongId;
+       qint64          m_origSheetId;
        QString         m_dir;
        qint64          m_id;
        QString         m_name;

Index: src/core/CMakeLists.txt
===================================================================
RCS file: /sources/traverso/traverso/src/core/CMakeLists.txt,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/core/CMakeLists.txt     19 Nov 2007 11:18:53 -0000      1.8
+++ src/core/CMakeLists.txt     21 Jan 2008 16:22:13 -0000      1.9
@@ -36,7 +36,7 @@
 ProjectManager.cpp
 ReadSource.cpp
 ResourcesManager.cpp
-Song.cpp
+Sheet.cpp
 Track.cpp
 ViewPort.cpp
 WriteSource.cpp
@@ -70,7 +70,7 @@
 ReadSource.h
 ResourcesManager.h
 SnapList.h
-Song.h
+Sheet.h
 Themer.h
 TimeLine.h
 Track.h

Index: src/core/ContextPointer.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ContextPointer.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- src/core/ContextPointer.h   16 Apr 2007 09:08:31 -0000      1.14
+++ src/core/ContextPointer.h   21 Jan 2008 16:22:13 -0000      1.15
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: ContextPointer.h,v 1.14 2007/04/16 09:08:31 r_sijrier Exp $
+    $Id: ContextPointer.h,v 1.15 2008/01/21 16:22:13 r_sijrier Exp $
 */
 
 #ifndef CONTEXTPOINTER_H
@@ -88,6 +88,7 @@
                return currentViewPort->mapToScene(m_x, m_y);
        }
        
+       
        /**
         *      Used by ViewPort to update the internal state of ContextPointer
                Not intended to be used somewhere else.
@@ -151,8 +152,7 @@
  
         ViewPort* get_viewport();
 
-        void set_current_viewport(ViewPort* vp)
-        {
+        void set_current_viewport(ViewPort* vp) {
                 currentViewPort = vp;
         }
         QList<QObject* > get_context_items();

Index: src/core/Curve.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Curve.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- src/core/Curve.cpp  26 Nov 2007 18:38:11 -0000      1.49
+++ src/core/Curve.cpp  21 Jan 2008 16:22:13 -0000      1.50
@@ -31,7 +31,7 @@
 #include <cmath>
 
 
-#include "Song.h"
+#include "Sheet.h"
 #include "Track.h"
 #include "InputEngine.h"
 #include "Utils.h"
@@ -128,7 +128,7 @@
        m_changed = true;
        m_lookup_cache.left = -1;
        m_defaultValue = 1.0f;
-       m_song = 0;
+       m_sheet = 0;
        
        connect(this, SIGNAL(nodePositionChanged()), this, SLOT(set_changed()));
 }
@@ -210,11 +210,11 @@
        }
        
        // Calculate the vector, an apply to the buffer including the makeup 
gain.
-       get_vector(startlocation.universal_frame(), 
endlocation.universal_frame(), m_song->mixdown, nframes);
+       get_vector(startlocation.universal_frame(), 
endlocation.universal_frame(), m_sheet->mixdown, nframes);
        
        for (uint chan=0; chan<channels; ++chan) {
                for (nframes_t n = 0; n < nframes; ++n) {
-                       buffer[chan][n] *= (m_song->mixdown[n] * makeupgain);
+                       buffer[chan][n] *= (m_sheet->mixdown[n] * makeupgain);
                }
        }
        
@@ -700,7 +700,7 @@
 
        
        AddRemove* cmd;
-       cmd = new AddRemove(this, node, historable, m_song,
+       cmd = new AddRemove(this, node, historable, m_sheet,
                        "private_add_node(CurveNode*)", "nodeAdded(CurveNode*)",
                        "private_remove_node(CurveNode*)", 
"nodeRemoved(CurveNode*)", 
                        tr("Add CurveNode"));
@@ -739,7 +739,7 @@
        
        AddRemove* cmd;
        
-       cmd = new AddRemove(this, node, historable, m_song,
+       cmd = new AddRemove(this, node, historable, m_sheet,
                        "private_remove_node(CurveNode*)", 
"nodeRemoved(CurveNode*)", 
                        "private_add_node(CurveNode*)", 
"nodeAdded(CurveNode*)", 
                        tr("Remove CurveNode"));
@@ -759,9 +759,9 @@
        set_changed();
 }
 
-void Curve::set_song(Song * song)
+void Curve::set_sheet(Sheet * sheet)
 {
-       m_song = song; 
-       set_history_stack(m_song->get_history_stack());
+       m_sheet = sheet; 
+       set_history_stack(m_sheet->get_history_stack());
 }
 

Index: src/core/Curve.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Curve.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- src/core/Curve.h    19 Nov 2007 11:18:53 -0000      1.25
+++ src/core/Curve.h    21 Jan 2008 16:22:13 -0000      1.26
@@ -39,7 +39,7 @@
 #include "defines.h"
 
 
-class Song;
+class Sheet;
 
 class Curve : public ContextItem
 {
@@ -61,11 +61,11 @@
        double get_range() const;
        void get_vector (double x0, double x1, float *arg, int32_t veclen);
        APILinkedList& get_nodes() {return m_nodes;}
-       Song* get_song() const {return m_song;}
+       Sheet* get_sheet() const {return m_sheet;}
 
        // Set functions
        virtual void set_range(double when);
-       void set_song(Song* song);
+       void set_sheet(Sheet* sheet);
        
        static bool smallerNode(const CurveNode* left, const CurveNode* right ) 
{
                return left->get_when() < right->get_when();
@@ -74,7 +74,7 @@
        void clear_curve() {m_nodes.clear();}
 
 protected:
-       Song* m_song;
+       Sheet* m_sheet;
 
 private :
        APILinkedList m_nodes;

Index: src/core/DiskIO.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/DiskIO.cpp,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -b -r1.56 -r1.57
--- src/core/DiskIO.cpp 28 Dec 2007 01:30:17 -0000      1.56
+++ src/core/DiskIO.cpp 21 Jan 2008 16:22:13 -0000      1.57
@@ -20,7 +20,7 @@
 */
 
 #include "DiskIO.h"
-#include "Song.h"
+#include "Sheet.h"
 #include <QThread>
 
 #if defined (Q_WS_X11)
@@ -135,12 +135,12 @@
 /**    \class DiskIO 
  *     \brief handles all the read's and write's of AudioSources in it's 
private thread.
  *     
- *     Each Song class has it's own DiskIO instance. 
- *     The DiskIO manages all the AudioSources related to a Song, and makes 
sure the RingBuffers
+ *     Each Sheet class has it's own DiskIO instance. 
+ *     The DiskIO manages all the AudioSources related to a Sheet, and makes 
sure the RingBuffers
  *     from the AudioSources are processed in time. (It at least tries very 
hard)
  */
-DiskIO::DiskIO(Song* song)
-       : m_song(song)
+DiskIO::DiskIO(Sheet* sheet)
+       : m_sheet(sheet)
 {
        m_diskThread = new DiskIOThread(this);
        cpuTimeBuffer = new RingBuffer(128);
@@ -186,7 +186,7 @@
        PENTER;
        
 #if defined (THREAD_CHECK)
-       Q_ASSERT_X(m_song->threadId != QThread::currentThreadId (), 
"DiskIO::seek", "Error, running in gui thread!!!!!");
+       Q_ASSERT_X(m_sheet->threadId != QThread::currentThreadId (), 
"DiskIO::seek", "Error, running in gui thread!!!!!");
 #endif
 
        mutex.lock();
@@ -194,7 +194,7 @@
        m_stopWork = 0;
        m_seeking = true;
        
-       TimeRef location = m_song->get_new_transport_location();
+       TimeRef location = m_sheet->get_new_transport_location();
        bool resampleQualityChanged = false;
        int quality = config().get_property("Conversion", 
"RTResamplingConverterType", 2).toInt();
        if (quality != m_resampleQuality) {
@@ -234,7 +234,7 @@
 void DiskIO::do_work( )
 {
 #if defined (THREAD_CHECK)
-       Q_ASSERT_X(m_song->threadId != QThread::currentThreadId (), 
"DiskIO::do_work", "Error, running in gui thread!!!!!");
+       Q_ASSERT_X(m_sheet->threadId != QThread::currentThreadId (), 
"DiskIO::do_work", "Error, running in gui thread!!!!!");
 #endif
 
        QMutexLocker locker(&mutex);
@@ -523,13 +523,13 @@
 
 void DiskIO::start_io( )
 {
-//     Q_ASSERT_X(m_song->threadId != QThread::currentThreadId (), 
"DiskIO::start_io", "Error, running in gui thread!!!!!");
+//     Q_ASSERT_X(m_sheet->threadId != QThread::currentThreadId (), 
"DiskIO::start_io", "Error, running in gui thread!!!!!");
        m_workTimer.start(UPDATE_INTERVAL);
 }
 
 void DiskIO::stop_io( )
 {
-//     Q_ASSERT_X(m_song->threadId != QThread::currentThreadId (), 
"DiskIO::stop_io", "Error, running in gui thread!!!!!");
+//     Q_ASSERT_X(m_sheet->threadId != QThread::currentThreadId (), 
"DiskIO::stop_io", "Error, running in gui thread!!!!!");
 //     m_workTimer.stop();
 }
 

Index: src/core/DiskIO.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/DiskIO.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- src/core/DiskIO.h   29 Nov 2007 19:52:18 -0000      1.27
+++ src/core/DiskIO.h   21 Jan 2008 16:22:13 -0000      1.28
@@ -34,7 +34,7 @@
 class AudioSource;
 class RingBuffer;
 class DiskIOThread;
-class Song;
+class Sheet;
 class DecodeBuffer;
 
 struct BufferStatus {
@@ -49,7 +49,7 @@
        Q_OBJECT
 
 public:
-       DiskIO(Song* song);
+       DiskIO(Sheet* sheet);
        ~DiskIO();
        
        static const int writebuffertime = 5;
@@ -72,7 +72,7 @@
        DecodeBuffer* get_resample_decode_buffer() {return 
m_resampleDecodeBuffer;}
 
 private:
-       Song*                   m_song;
+       Sheet*                  m_sheet;
        volatile size_t         m_stopWork;
        QList<ReadSource*>      m_readSources;
        QList<WriteSource*>     m_writeSources;

Index: src/core/Export.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Export.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- src/core/Export.cpp 22 Nov 2007 15:07:01 -0000      1.15
+++ src/core/Export.cpp 21 Jan 2008 16:22:13 -0000      1.16
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: Export.cpp,v 1.15 2007/11/22 15:07:01 r_sijrier Exp $
+    $Id: Export.cpp,v 1.16 2008/01/21 16:22:13 r_sijrier Exp $
 */
 
 #include "Export.h"
@@ -62,7 +62,7 @@
        totalTime = qint64(-1);
        pos = qint64(-1);
        
-       allSongs = false;
+       allSheets = false;
        stop = false;
        breakout = false;
        isRecording = -1;

Index: src/core/Export.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Export.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/core/Export.h   22 Nov 2007 15:07:01 -0000      1.17
+++ src/core/Export.h   21 Jan 2008 16:22:13 -0000      1.18
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: Export.h,v 1.17 2007/11/22 15:07:01 r_sijrier Exp $
+$Id: Export.h,v 1.18 2008/01/21 16:22:13 r_sijrier Exp $
 */
 
 #ifndef EXPORT_H
@@ -73,7 +73,7 @@
        bool            running;   /* audio thread sets to false when export is 
done */
 
        int             status;
-       bool            allSongs;
+       bool            allSheets;
        int             isRecording;
        QString         exportdir;
        QString         basename;

Index: src/core/FadeCurve.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/FadeCurve.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- src/core/FadeCurve.cpp      29 Dec 2007 02:03:36 -0000      1.32
+++ src/core/FadeCurve.cpp      21 Jan 2008 16:22:13 -0000      1.33
@@ -17,14 +17,14 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: FadeCurve.cpp,v 1.32 2007/12/29 02:03:36 benjie Exp $
+$Id: FadeCurve.cpp,v 1.33 2008/01/21 16:22:13 r_sijrier Exp $
 */
  
 #include "FadeCurve.h"
 
 #include <QFile>
 #include <cmath>
-#include "Song.h"
+#include "Sheet.h"
 #include "Fade.h"
 #include "AudioClip.h"
 #include "Command.h"
@@ -39,12 +39,12 @@
 
 QStringList FadeCurve::defaultShapes = QStringList() << "Fastest" << "Fast" << 
"Linear"  << "Slow" << "Slowest";
 
-FadeCurve::FadeCurve(AudioClip* clip, Song* song, QString type )
+FadeCurve::FadeCurve(AudioClip* clip, Sheet* sheet, QString type )
        : Curve(clip)
        , m_clip(clip)
        , m_sType(type)
 {
-       Q_UNUSED(song);
+       Q_UNUSED(sheet);
        
        if (type == "FadeIn") {
                m_type = FadeIn;
@@ -53,7 +53,7 @@
                m_type = FadeOut;
        }
        
-       m_song = m_clip->get_song();
+       m_sheet = m_clip->get_sheet();
                
        m_controlPoints.append(QPointF(0.0, 0.0));
        m_controlPoints.append(QPointF(0.25, 0.25));
@@ -176,17 +176,17 @@
        TimeRef fadepos;
        
        if (m_type == FadeIn) {
-               if( !( m_song->get_transport_location() < 
(m_clip->get_track_start_location() + faderange) ) ) {
+               if( !( m_sheet->get_transport_location() < 
(m_clip->get_track_start_location() + faderange) ) ) {
                        return;
                }
                
-               fadepos = m_song->get_transport_location() - 
m_clip->get_track_start_location();
+               fadepos = m_sheet->get_transport_location() - 
m_clip->get_track_start_location();
        } else {
-               if( !(m_song->get_transport_location() > 
(m_clip->get_track_end_location() - faderange)) ) {
+               if( !(m_sheet->get_transport_location() > 
(m_clip->get_track_end_location() - faderange)) ) {
                        return;
                }
                
-               fadepos = m_song->get_transport_location() - 
(m_clip->get_track_end_location() - faderange);
+               fadepos = m_sheet->get_transport_location() - 
(m_clip->get_track_end_location() - faderange);
        }
 
        TimeRef range(nframes, audiodevice().get_sample_rate());
@@ -194,11 +194,11 @@
        
        nframes_t framerange = limit.to_frame(audiodevice().get_sample_rate());
        
-       get_vector(fadepos.universal_frame(), (fadepos + 
limit).universal_frame(), m_song->gainbuffer, framerange);
+       get_vector(fadepos.universal_frame(), (fadepos + 
limit).universal_frame(), m_sheet->gainbuffer, framerange);
 
        for (uint chan=0; chan<channels; ++chan) {
                for (nframes_t frame = 0; frame < framerange; ++frame) {
-                       mixdown[chan][frame] *= m_song->gainbuffer[frame];
+                       mixdown[chan][frame] *= m_sheet->gainbuffer[frame];
                }
        }
 }

Index: src/core/FadeCurve.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/FadeCurve.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- src/core/FadeCurve.h        29 Dec 2007 03:54:00 -0000      1.18
+++ src/core/FadeCurve.h        21 Jan 2008 16:22:14 -0000      1.19
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: FadeCurve.h,v 1.18 2007/12/29 03:54:00 benjie Exp $
+$Id: FadeCurve.h,v 1.19 2008/01/21 16:22:14 r_sijrier Exp $
 */
 
 #ifndef FADE_CURVE_H
@@ -30,7 +30,7 @@
 #include <QList>
 #include <QPointF>
 
-class Song;
+class Sheet;
 class AudioClip;
 
 class FadeCurve : public Curve, public APILinkedListNode
@@ -45,7 +45,7 @@
 public:
        static QStringList defaultShapes;
        
-       FadeCurve(AudioClip* clip, Song* song, QString type);
+       FadeCurve(AudioClip* clip, Sheet* sheet, QString type);
        ~FadeCurve();
        
        enum FadeType {

Index: src/core/InputEngine.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/InputEngine.cpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- src/core/InputEngine.cpp    7 Dec 2007 20:28:25 -0000       1.66
+++ src/core/InputEngine.cpp    21 Jan 2008 16:22:14 -0000      1.67
@@ -954,7 +954,7 @@
                } else {
                        PMESG3("Detected [KK]");
                        fact1Type = HKEY2;
-                       holdEventCode = fact1_k1;
+                       holdEventCode = fact1_k2;
                }
        }
 
@@ -1230,10 +1230,13 @@
                cpointer().reset_cursor();
        } else if (holdingCommand) {
 
-               holdingCommand->finish_hold();
                cpointer().reset_cursor();
 
-               int holdprepare = holdingCommand->prepare_actions();
+               int holdFinish = holdingCommand->finish_hold();
+               int holdprepare = -1;
+               
+               if (holdFinish > 0) {
+                       holdprepare = holdingCommand->prepare_actions();
                if (holdprepare > 0) {
                        PMESG("holdingCommand->prepare_actions() returned 
succes!");
                        holdingCommand->set_valid(true);
@@ -1241,6 +1244,10 @@
                        PMESG("holdingCommand->prepare_actions() returned <= 0, 
so either it failed, or nothing happened!");
                        holdingCommand->set_valid( false );
                }
+               } else {
+                       PMESG("holdingCommand->finish_hold() returned <= 0, so 
either it failed, or nothing happened!");
+                       holdingCommand->set_valid( false );
+               }
 
                if (holdingCommand->push_to_history_stack() < 0) {
                        if (holdprepare == 1) {

Index: src/core/libtraversocore.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/libtraversocore.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/core/libtraversocore.h  16 Mar 2007 00:14:43 -0000      1.8
+++ src/core/libtraversocore.h  21 Jan 2008 16:22:14 -0000      1.9
@@ -19,7 +19,7 @@
 #include "ProjectManager.h"
 #include "ReadSource.h"
 #include "SnapList.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "TimeLine.h"
 #include "Track.h"
 #include "Utils.h"

Index: src/core/Marker.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Marker.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- src/core/Marker.cpp 23 Nov 2007 14:52:30 -0000      1.18
+++ src/core/Marker.cpp 21 Jan 2008 16:22:14 -0000      1.19
@@ -20,7 +20,7 @@
 */
 
 #include "Marker.h"
-#include "Song.h"
+#include "Sheet.h"
 
 #include "TimeLine.h"
 #include "Utils.h"
@@ -35,7 +35,7 @@
        set_history_stack(m_timeline->get_history_stack());
        m_id = create_id();
 
-       set_snap_list(m_timeline->get_song()->get_snap_list());
+       set_snap_list(m_timeline->get_sheet()->get_snap_list());
 
        m_description = "";
        m_performer = "";
@@ -52,7 +52,7 @@
        , Snappable()
        , m_timeline(tl)
 {
-       set_snap_list(m_timeline->get_song()->get_snap_list());
+       set_snap_list(m_timeline->get_sheet()->get_snap_list());
        set_history_stack(m_timeline->get_history_stack());
        set_state(node);
 }
@@ -66,7 +66,7 @@
        domNode.setAttribute("id",  m_id);
        domNode.setAttribute("performer", m_performer);
        domNode.setAttribute("composer", m_composer);
-       domNode.setAttribute("songwriter", m_songwriter);
+       domNode.setAttribute("sheetwriter", m_sheetwriter);
        domNode.setAttribute("arranger", m_arranger);
        domNode.setAttribute("message", m_message);
        domNode.setAttribute("isrc", m_isrc);
@@ -95,7 +95,7 @@
        m_id = e.attribute("id", "0").toLongLong();
        m_performer = e.attribute("performer", "");
        m_composer = e.attribute("composer", "");
-       m_songwriter = e.attribute("songwriter", "");
+       m_sheetwriter = e.attribute("sheetwriter", "");
        m_arranger = e.attribute("arranger", "");
        m_message = e.attribute("message", "");
        m_isrc = e.attribute("isrc", "");
@@ -132,9 +132,9 @@
        m_composer = s;
 }
 
-void Marker::set_songwriter(const QString &s)
+void Marker::set_sheetwriter(const QString &s)
 {
-       m_songwriter = s;
+       m_sheetwriter = s;
 }
 
 void Marker::set_arranger(const QString &s)

Index: src/core/Marker.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Marker.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- src/core/Marker.h   30 Nov 2007 19:35:43 -0000      1.16
+++ src/core/Marker.h   21 Jan 2008 16:22:14 -0000      1.17
@@ -50,7 +50,7 @@
        void set_description(const QString &);
        void set_performer(const QString &);
        void set_composer(const QString &);
-       void set_songwriter(const QString &);
+       void set_sheetwriter(const QString &);
        void set_arranger(const QString &);
        void set_message(const QString &);
        void set_isrc(const QString &);
@@ -62,7 +62,7 @@
        QString get_description() const {return m_description;}
        QString get_performer() const {return m_performer;}
        QString get_composer() const {return m_composer;}
-       QString get_songwriter() const {return m_songwriter;}
+       QString get_sheetwriter() const {return m_sheetwriter;}
        QString get_arranger() const {return m_arranger;}
        QString get_message() const {return m_message;}
        QString get_isrc() const {return m_isrc;}
@@ -81,7 +81,7 @@
        QString m_description,
                m_performer,
                m_composer,
-               m_songwriter,
+               m_sheetwriter,
                m_arranger,
                m_message,
                m_isrc;

Index: src/core/Peak.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Peak.cpp,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -b -r1.79 -r1.80
--- src/core/Peak.cpp   7 Jan 2008 19:20:48 -0000       1.79
+++ src/core/Peak.cpp   21 Jan 2008 16:22:14 -0000      1.80
@@ -35,12 +35,6 @@
 
 #include "Debugger.h"
 
-/* Store for each zoomStep the upper and lower sample to hard disk as a
-* peak_data_t. The top-top resolution is then 512 pixels, which should do
-* Painting the waveform will be as simple as painting a line starting from the
-* lower value to the upper value.
-*/
-
 #define NORMALIZE_CHUNK_SIZE   10000
 #define PEAKFILE_MAJOR_VERSION 1
 #define PEAKFILE_MINOR_VERSION 4
@@ -52,6 +46,8 @@
        64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 
262144, 524288, 1048576 
 };
 
+QHash<int, int> Peak::chacheIndexLut;
+
 Peak::Peak(AudioSource* source)
 {
        PENTERCONS;
@@ -89,6 +85,10 @@
                // peak data creation, no m_source needed!
                m_source = 0;
        }
+       
+       int error;
+       int converter_type = 4;
+       m_srcState = src_new(converter_type, 2, &error);
 }
 
 Peak::~Peak()
@@ -131,7 +131,7 @@
        
        foreach(ChannelData* data, m_channelData) {
                
-               data->file.setFileName(data->fileName.toLatin1().data());
+               data->file.setFileName(data->fileName);
                
                if (! data->file.open(QIODevice::ReadOnly)) {
                        if (QFile::exists(data->fileName)) {
@@ -242,32 +242,7 @@
 }
 
 
-// static int
-// cnt_bits(unsigned long val, int & highbit)
-// {
-//     int cnt = 0;
-//     highbit = 0;
-//     while (val) {
-//             if (val & 1) cnt++;
-//             val>>=1;
-//             highbit++;
-//     }
-//     return cnt;
-// }
-// 
-// // returns the next power of two greater or equal to val
-// static unsigned long
-// nearest_power_of_two(unsigned long val)
-// {
-//     int highbit;
-//     if (cnt_bits(val, highbit) > 1) {
-//             return 1<<highbit;
-//     }
-//     return val;
-// }
-
-
-int Peak::calculate_peaks(int chan, float** buffer, int zoomLevel, TimeRef 
startlocation, int pixelcount)
+int Peak::calculate_peaks(int chan, float** buffer, qreal zoomLevel, TimeRef 
startlocation, int pixelcount)
 {
        PENTER3;
        
@@ -287,46 +262,59 @@
        
        ChannelData* data = m_channelData.at(chan);
        
+       int highbit;
+       unsigned long nearestpow2 = nearest_power_of_two(qRound(zoomLevel), 
highbit);
+       if (nearestpow2 == 0) {
+               return NO_PEAKDATA_FOUND;
+       }
+       
+       int produced = 0;
+       float* inputData;
+       
 //     PROFILE_START;
        
        // Macro view mode
-       if ( zoomLevel > MAX_ZOOM_USING_SOURCEFILE) {
+       if ( nearestpow2 > 32) {
                nframes_t startPos = startlocation.to_frame(44100);
                
-               int offset = (startPos / zoomStep[zoomLevel]) * 2;
+               int index = cache_index_lut()->value(nearestpow2, -1);
+               if(index >= 0) {
+//                     printf("index %d\n", index);
+               }
+               
+               int offset = qRound(startPos / nearestpow2) * 2;
                int truncate = 0;
                
                // Check if this zoom level has as many data as requested.
-               if ( (pixelcount + offset) > 
data->headerdata.peakDataSizeForLevel[zoomLevel - SAVING_ZOOM_FACTOR]) {
-                       truncate = pixelcount - 
(data->headerdata.peakDataSizeForLevel[zoomLevel - SAVING_ZOOM_FACTOR] - 
offset);
-//                     pixelcount = 
data->headerdata.peakDataSizeForLevel[zoomLevel - SAVING_ZOOM_FACTOR] - offset;
+               if ( (pixelcount + offset) > 
data->headerdata.peakDataSizeForLevel[index]) {
+                       truncate = pixelcount - 
(data->headerdata.peakDataSizeForLevel[index] - offset);
+//                     pixelcount = 
data->headerdata.peakDataSizeForLevel[index] - offset;
                }
                
-               nframes_t readposition = data->headerdata.headerSize + 
(data->headerdata.peakDataOffsets[zoomLevel - SAVING_ZOOM_FACTOR] + offset) * 
sizeof(peak_data_t);
-               int read = 
data->peakreader->read_from(data->peakdataDecodeBuffer, readposition, 
pixelcount);
+               nframes_t readposition = data->headerdata.headerSize + 
(data->headerdata.peakDataOffsets[index] + offset) * sizeof(peak_data_t);
+               produced = 
data->peakreader->read_from(data->peakdataDecodeBuffer, readposition, 
pixelcount);
                
-               if (read != pixelcount) {
-                       PERROR("Could not read in all peak data, pixelcount is 
%d, read count is %d", pixelcount, read);
+               if (produced != pixelcount) {
+                       PERROR("Could not read in all peak data, pixelcount is 
%d, read count is %d", pixelcount, produced);
                }
                
 //             PROFILE_END("Peak calculate_peaks");
                
-               if (read == 0) {
+               if (produced == 0) {
                        return NO_PEAKDATA_FOUND;
                }
                
-               for (int i=(pixelcount-truncate); i<(pixelcount); ++i) {
-                       data->peakdataDecodeBuffer->destination[0][i] = 0;
-               }
-
-               *buffer = data->peakdataDecodeBuffer->destination[0];
+               inputData = data->peakdataDecodeBuffer->destination[0];
                
-               return read;
+//             for (int i=(pixelcount-truncate); i<(pixelcount); ++i) {
+//                     data->peakdataDecodeBuffer->destination[0][i] = 0;
+//             }
+//             
                
        // Micro view mode
        } else {
                // Calculate the amount of frames to be read
-               nframes_t toRead = pixelcount * zoomStep[zoomLevel];
+               nframes_t toRead = pixelcount * nearestpow2;
                
                nframes_t readFrames = 
m_source->file_read(data->peakdataDecodeBuffer, startlocation, toRead);
 
@@ -336,7 +324,7 @@
                
                if ( readFrames != toRead) {
                        PWARN("Unable to read nframes %d (only %d available)", 
toRead, readFrames);
-                       pixelcount = readFrames / zoomStep[zoomLevel];
+                       pixelcount = qRound(readFrames / nearestpow2);
                }
 
                int count = 0;
@@ -351,7 +339,7 @@
                do {
                        valueMax = valueMin = 0;
 
-                       for(int i=0; i < zoomStep[zoomLevel]; i++) {
+                       for(int i=0; i < nearestpow2; i++) {
                                Q_ASSERT(pos <= readFrames);
                                sample = 
data->peakdataDecodeBuffer->destination[chan][pos];
                                if (sample > valueMax)
@@ -375,13 +363,32 @@
 //             PROFILE_END("Peak calculate_peaks");            
                
                // Assign the supplied buffer to the 'real' peakdata buffer.
-               *buffer = peakdata;
+               inputData = peakdata;
                
-               return count;
+               produced = count;
        }
 
+       src_reset(m_srcState);
+       qreal ratio = qreal(nearestpow2) / zoomLevel;
+       m_srcData.data_in = inputData;
+       m_srcData.input_frames = qRound(pixelcount / ratio);
+       m_srcData.data_out = data->peakdataDecodeBuffer->destination[1];
+       m_srcData.output_frames = pixelcount;
+       m_srcData.src_ratio = ratio;
+       src_set_ratio(m_srcState, m_srcData.src_ratio);
        
-       return 1;
+//             printf("scale factor %f, pixels generated %ld, wanted %d\n", 
ratio,  m_srcData.output_frames_gen, pixelcount);
+               
+       if (src_process(m_srcState, &m_srcData)) {
+               PERROR("Resampler: src_process() error!");
+               return NO_PEAKDATA_FOUND;
+       }
+               
+       produced = m_srcData.output_frames_gen;
+
+       *buffer = data->peakdataDecodeBuffer->destination[1];
+               
+       return produced;
 }
 
 
@@ -929,7 +936,7 @@
        }
                
        // Make sure the read buffer is big enough for this read
-       buffer->check_buffers_capacity(count*2, 1);
+       buffer->check_buffers_capacity(count*3, 2);
        
        Q_ASSERT(m_d->file.isOpen());
        
@@ -957,3 +964,27 @@
        return framesRead;
 }
 
+void Peak::calculate_lut_data()
+{
+       chacheIndexLut.insert(64     , 0);
+       chacheIndexLut.insert(128    , 1);
+       chacheIndexLut.insert(256    , 2);
+       chacheIndexLut.insert(512    , 3);
+       chacheIndexLut.insert(1024   , 4);
+       chacheIndexLut.insert(2048   , 5);
+       chacheIndexLut.insert(4096   , 6);
+       chacheIndexLut.insert(8192   , 7);
+       chacheIndexLut.insert(16384  , 8);
+       chacheIndexLut.insert(32768  , 9);
+       chacheIndexLut.insert(65536  , 10);
+       chacheIndexLut.insert(131072 , 11);
+       chacheIndexLut.insert(262144 , 12);
+       chacheIndexLut.insert(524288 , 13);
+       chacheIndexLut.insert(1048576, 14);
+}
+
+int Peak::max_zoom_value()
+{
+       return 1048576;
+}
+

Index: src/core/Peak.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Peak.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- src/core/Peak.h     19 Nov 2007 11:19:49 -0000      1.29
+++ src/core/Peak.h     21 Jan 2008 16:22:14 -0000      1.30
@@ -30,6 +30,7 @@
 #include <QFile>
 #include <QHash>
 #include <QPair>
+#include <samplerate.h>
 
 #include "defines.h"
 
@@ -114,7 +115,7 @@
        void process(uint channel, audio_sample_t* buffer, nframes_t frames);
        int prepare_processing(int rate);
        int finish_processing();
-       int calculate_peaks(int chan, float** buffer, int zoomLevel, TimeRef 
startlocation, int count);
+       int calculate_peaks(int chan, float** buffer, qreal zoomLevel, TimeRef 
startlocation, int count);
 
        void close();
        
@@ -122,11 +123,19 @@
 
        audio_sample_t get_max_amplitude(TimeRef startlocation, TimeRef 
endlocation);
 
+       static QHash<int, int>* cache_index_lut();
+       static int max_zoom_value();
+
 private:
        ReadSource*     m_source;
        bool            m_peaksAvailable;
        bool            m_permanentFailure;
        bool            m_interuptPeakBuild;
+       static QHash<int, int> chacheIndexLut;
+       
+       SRC_STATE*      m_srcState;
+       SRC_DATA        m_srcData;
+       audio_sample_t* m_peakBuffer;
        
        struct ProcessData {
                ProcessData() {
@@ -182,6 +191,7 @@
        int create_from_scratch();
        int read_header();
        int write_header(ChannelData* data);
+       static void calculate_lut_data();
 
        friend class PeakProcessor;
        friend class PeakDataReader;
@@ -208,6 +218,14 @@
        nframes_t read(DecodeBuffer* buffer, nframes_t frameCount);
 };
 
+inline QHash< int, int > * Peak::cache_index_lut()
+{
+       if(chacheIndexLut.isEmpty()) {
+               calculate_lut_data();
+       }
+       return &chacheIndexLut;
+}
+
 
 #endif
 

Index: src/core/ProjectConverter.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ProjectConverter.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/core/ProjectConverter.cpp       26 Nov 2007 18:21:47 -0000      1.6
+++ src/core/ProjectConverter.cpp       21 Jan 2008 16:22:14 -0000      1.7
@@ -248,13 +248,13 @@
                clipsNode = clipsNode.nextSibling();
        }
                
-       QDomNode songsNode = docElem.firstChildElement("Sheets");
-       QDomNode songNode = songsNode.firstChild();
+       QDomNode sheetsNode = docElem.firstChildElement("Sheets");
+       QDomNode sheetNode = sheetsNode.firstChild();
 
-               // Load all the Songs
-       while(!songNode.isNull())
+               // Load all the Sheets
+       while(!sheetNode.isNull())
        {
-               QDomNode tracksNode = songNode.firstChildElement("Tracks");
+               QDomNode tracksNode = sheetNode.firstChildElement("Tracks");
                QDomNode trackNode = tracksNode.firstChild();
 
                while(!trackNode.isNull()) {
@@ -262,7 +262,7 @@
                        trackelement.setAttribute("OutBus", "Master Out");
                        trackNode = trackNode.nextSibling();
                }
-               songNode = songNode.nextSibling();
+               sheetNode = sheetNode.nextSibling();
        }
        
        emit message(tr("Converting project.tpf file..... Done!"));

Index: src/core/Project.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Project.cpp,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66
--- src/core/Project.cpp        3 Dec 2007 14:05:25 -0000       1.65
+++ src/core/Project.cpp        21 Jan 2008 16:22:14 -0000      1.66
@@ -28,7 +28,7 @@
 #include <cfloat>
 
 #include "Project.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "ProjectManager.h"
 #include "Information.h"
 #include "InputEngine.h"
@@ -52,7 +52,7 @@
        : ContextItem(), m_title(title)
 {
        PENTERCONS;
-       m_currentSongId = 0;
+       m_currentSheetId = 0;
        m_exportThread = 0;
        engineer = "";
 
@@ -74,19 +74,19 @@
        PENTERDES;
        cpointer().remove_contextitem(this);
 
-       foreach(Song* song, m_songs) {
-               song->schedule_for_deletion();
-               song->disconnect_from_audiodevice();
+       foreach(Sheet* sheet, m_sheets) {
+               sheet->schedule_for_deletion();
+               sheet->disconnect_from_audiodevice();
        }
 
        delete m_hs;
 }
 
 
-int Project::create(int songcount, int numtracks)
+int Project::create(int sheetcount, int numtracks)
 {
        PENTER;
-       PMESG("Creating new project %s  NumSongs=%d", QS_C(m_title), songcount);
+       PMESG("Creating new project %s  NumSheets=%d", QS_C(m_title), 
sheetcount);
 
        QDir dir;
        if (dir.mkdir(m_rootDir) < 0) {
@@ -106,14 +106,14 @@
                return -1;
        }
        
-       for (int i=0; i< songcount; i++) {
-               Song* song = new Song(this, numtracks);
-               m_songs.append(song);
-               song->connect_to_audiodevice();
+       for (int i=0; i< sheetcount; i++) {
+               Sheet* sheet = new Sheet(this, numtracks);
+               m_sheets.append(sheet);
+               sheet->connect_to_audiodevice();
        }
 
-       if (m_songs.size()) {
-               set_current_song(m_songs.first()->get_id());
+       if (m_sheets.size()) {
+               set_current_sheet(m_sheets.first()->get_id());
        }
        
        m_id = create_id();
@@ -206,7 +206,7 @@
        m_genre = e.attribute( "genre", "" ).toInt();
        m_performer = e.attribute( "performer", "" );
        m_arranger = e.attribute( "arranger", "" );
-       m_songwriter = e.attribute( "songwriter", "" );
+       m_sheetwriter = e.attribute( "sheetwriter", "" );
        m_message = e.attribute( "message", "" );
        m_rate = e.attribute( "rate", "" ).toInt();
        m_bitDepth = e.attribute( "bitdepth", "" ).toInt();
@@ -222,26 +222,26 @@
        m_resourcesManager->set_state(asmNode);
 
 
-       QDomNode songsNode = docElem.firstChildElement("Sheets");
-       QDomNode songNode = songsNode.firstChild();
+       QDomNode sheetsNode = docElem.firstChildElement("Sheets");
+       QDomNode sheetNode = sheetsNode.firstChild();
 
-       // Load all the Songs
-       while(!songNode.isNull())
+       // Load all the Sheets
+       while(!sheetNode.isNull())
        {
-               Song* song = new Song(this, songNode);
-               Command::process_command(add_song(song, false));
-               songNode = songNode.nextSibling();
+               Sheet* sheet = new Sheet(this, sheetNode);
+               Command::process_command(add_sheet(sheet, false));
+               sheetNode = sheetNode.nextSibling();
        }
 
        qint64 id = e.attribute("currentsheetid", "0" ).toLongLong();
        
        if ( id == 0) {
-               if (m_songs.size()) {
-                       id = m_songs.first()->get_id();
+               if (m_sheets.size()) {
+                       id = m_sheets.first()->get_id();
                }
        }
                        
-       set_current_song(id);
+       set_current_sheet(id);
 
        info().information( tr("Project %1 loaded").arg(m_title) );
        
@@ -295,9 +295,9 @@
        properties.setAttribute("genre", QString::number(m_genre));
        properties.setAttribute("performer", m_performer);
        properties.setAttribute("arranger", m_arranger);
-       properties.setAttribute("songwriter", m_songwriter);
+       properties.setAttribute("sheetwriter", m_sheetwriter);
        properties.setAttribute("message", m_message);
-       properties.setAttribute("currentsheetid", m_currentSongId);
+       properties.setAttribute("currentsheetid", m_currentSheetId);
        properties.setAttribute("rate", m_rate);
        properties.setAttribute("bitdepth", m_bitDepth);
        properties.setAttribute("projectfileversion", PROJECT_FILE_VERSION);
@@ -318,14 +318,14 @@
                projectNode.appendChild(m_resourcesManager->get_state(doc));
        }
 
-       // Get all the Songs
-       QDomNode songsNode = doc.createElement("Sheets");
+       // Get all the Sheets
+       QDomNode sheetsNode = doc.createElement("Sheets");
 
-       foreach(Song* song, m_songs) {
-               songsNode.appendChild(song->get_state(doc, istemplate));
+       foreach(Sheet* sheet, m_sheets) {
+               sheetsNode.appendChild(sheet->get_state(doc, istemplate));
        }
 
-       projectNode.appendChild(songsNode);
+       projectNode.appendChild(sheetsNode);
        
        return projectNode;
 }
@@ -395,9 +395,9 @@
        m_arranger = pArranger;
 }
 
-void Project::set_songwriter(const QString& pSongwriter)
+void Project::set_sheetwriter(const QString& pSheetwriter)
 {
-       m_songwriter = pSongwriter;
+       m_sheetwriter = pSheetwriter;
 }
 
 void Project::set_message(const QString& pMessage)
@@ -417,23 +417,23 @@
 
 bool Project::has_changed()
 {
-       foreach(Song* song, m_songs) {
-               if(song->is_changed())
+       foreach(Sheet* sheet, m_sheets) {
+               if(sheet->is_changed())
                        return true;
        }
        return false;
 }
 
 
-Command* Project::add_song(Song* song, bool historable)
+Command* Project::add_sheet(Sheet* sheet, bool historable)
 {
        PENTER;
        
        AddRemove* cmd;
-       cmd = new AddRemove(this, song, historable, 0,
-               "private_add_song(Song*)", "songAdded(Song*)",
-                       "private_remove_song(Song*)", "songRemoved(Song*)",
-                       tr("Sheet %1 added").arg(song->get_title()));
+       cmd = new AddRemove(this, sheet, historable, 0,
+               "private_add_sheet(Sheet*)", "sheetAdded(Sheet*)",
+                       "private_remove_sheet(Sheet*)", "sheetRemoved(Sheet*)",
+                       tr("Sheet %1 added").arg(sheet->get_title()));
        
        cmd->set_instantanious(true);
        
@@ -441,42 +441,42 @@
 }
 
 
-void Project::set_current_song(qint64 id)
+void Project::set_current_sheet(qint64 id)
 {
        PENTER;
        
-       if (m_currentSongId == id) {
+       if (m_currentSheetId == id) {
                return;
        }
        
-       Song* newcurrent = 0;
+       Sheet* newcurrent = 0;
        
-       foreach(Song* song, m_songs) {
-               if (song->get_id() == id) {
-                       newcurrent = song;
+       foreach(Sheet* sheet, m_sheets) {
+               if (sheet->get_id() == id) {
+                       newcurrent = sheet;
                        break;
                }
        }
        
        if (!newcurrent) {
                info().information( tr("Sheet '%1' doesn't exist!").arg(id) );
-               emit currentSongChanged(0);
+               emit currentSheetChanged(0);
                return;
        }
 
-       m_currentSongId=id;
+       m_currentSheetId=id;
        
-       emit currentSongChanged(newcurrent);
+       emit currentSheetChanged(newcurrent);
 }
 
 
-Song* Project::get_current_song() const
+Sheet* Project::get_current_sheet() const
 {
-       Song* current = 0;
+       Sheet* current = 0;
        
-       foreach(Song* song, m_songs) {
-               if (song->get_id() == m_currentSongId) {
-                       current = song;
+       foreach(Sheet* sheet, m_sheets) {
+               if (sheet->get_id() == m_currentSheetId) {
+                       current = sheet;
                        break;
                }
        }
@@ -485,13 +485,13 @@
 }
 
 
-Song* Project::get_song(qint64 id) const
+Sheet* Project::get_sheet(qint64 id) const
 {
-       Song* current = 0;
+       Sheet* current = 0;
        
-       foreach(Song* song, m_songs) {
-               if (song->get_id() == id) {
-                       current = song;
+       foreach(Sheet* sheet, m_sheets) {
+               if (sheet->get_id() == id) {
+                       current = sheet;
                        break;
                }
        }
@@ -500,13 +500,13 @@
 }
 
 
-Command* Project::remove_song(Song* song, bool historable)
+Command* Project::remove_sheet(Sheet* sheet, bool historable)
 {
        AddRemove* cmd;
-       cmd = new AddRemove(this, song, historable, 0,
-               "private_remove_song(Song*)", "songRemoved(Song*)",
-               "private_add_song(Song*)", "songAdded(Song*)",
-               tr("Remove Sheet %1").arg(song->get_title()));
+       cmd = new AddRemove(this, sheet, historable, 0,
+               "private_remove_sheet(Sheet*)", "sheetRemoved(Sheet*)",
+               "private_add_sheet(Sheet*)", "sheetAdded(Sheet*)",
+               tr("Remove Sheet %1").arg(sheet->get_title()));
        
        cmd->set_instantanious(true);
        
@@ -547,38 +547,38 @@
        spec->dataF = new audio_sample_t[spec->blocksize * spec->channels];
        audio_sample_t* readbuffer = new audio_sample_t[spec->blocksize * 
spec->channels];
 
-       overallExportProgress = renderedSongs = 0;
-       songsToRender.clear();
+       overallExportProgress = renderedSheets = 0;
+       sheetsToRender.clear();
 
-       if (spec->allSongs) {
-               foreach(Song* song, m_songs) {
-                       songsToRender.append(song);
+       if (spec->allSheets) {
+               foreach(Sheet* sheet, m_sheets) {
+                       sheetsToRender.append(sheet);
                }
        } else {
-               Song* song = get_current_song();
-               if (song) {
-                       songsToRender.append(song);
+               Sheet* sheet = get_current_sheet();
+               if (sheet) {
+                       sheetsToRender.append(sheet);
                }
        }
 
-       foreach(Song* song, songsToRender) {
-               PMESG("Starting export for song %lld", song->get_id());
-               emit exportStartedForSong(song);
+       foreach(Sheet* sheet, sheetsToRender) {
+               PMESG("Starting export for sheet %lld", sheet->get_id());
+               emit exportStartedForSheet(sheet);
                spec->resumeTransport = false;
-               spec->resumeTransportLocation = song->get_transport_location();
-               song->readbuffer = readbuffer;
+               spec->resumeTransportLocation = sheet->get_transport_location();
+               sheet->readbuffer = readbuffer;
                
                if (spec->normalize) {
                        spec->peakvalue = 0.0;
                        spec->renderpass = 
ExportSpecification::CALC_NORM_FACTOR;
                        
                        
-                       if (song->prepare_export(spec) < 0) {
-                               PERROR("Failed to prepare song for export");
+                       if (sheet->prepare_export(spec) < 0) {
+                               PERROR("Failed to prepare sheet for export");
                                continue;
                        }
                        
-                       while(song->render(spec) > 0) {}
+                       while(sheet->render(spec) > 0) {}
                        
                        spec->normvalue = (1.0 - FLT_EPSILON) / spec->peakvalue;
                        
@@ -594,25 +594,25 @@
 
                spec->renderpass = ExportSpecification::WRITE_TO_HARDDISK;
                
-               if (song->prepare_export(spec) < 0) {
+               if (sheet->prepare_export(spec) < 0) {
                        PERROR("Failed to prepare sheet for export");
                        break;
                }
                
-               while(song->render(spec) > 0) {}
+               while(sheet->render(spec) > 0) {}
                
-               if (!QMetaObject::invokeMethod(song, "set_transport_pos",  
Qt::QueuedConnection, Q_ARG(TimeRef, spec->resumeTransportLocation))) {
-                       printf("Invoking Song::set_transport_pos() failed\n");
+               if (!QMetaObject::invokeMethod(sheet, "set_transport_pos",  
Qt::QueuedConnection, Q_ARG(TimeRef, spec->resumeTransportLocation))) {
+                       printf("Invoking Sheet::set_transport_pos() failed\n");
                }
                if (spec->resumeTransport) {
-                       if (!QMetaObject::invokeMethod(song, "start_transport", 
 Qt::QueuedConnection)) {
-                               printf("Invoking Song::start_transport() 
failed\n");
+                       if (!QMetaObject::invokeMethod(sheet, 
"start_transport",  Qt::QueuedConnection)) {
+                               printf("Invoking Sheet::start_transport() 
failed\n");
                        }
                }
                if (spec->breakout) {
                        break;
                }
-               renderedSongs++;
+               renderedSheets++;
        }
 
        PMESG("Export Finished");
@@ -631,21 +631,21 @@
 
 int Project::create_cdrdao_toc(ExportSpecification* spec)
 {
-       QList<Song* > songs;
+       QList<Sheet* > sheets;
        QString filename = spec->exportdir;
        
-       if (spec->allSongs) {
-               foreach(Song* song, m_songs) {
-                       songs.append(song);
+       if (spec->allSheets) {
+               foreach(Sheet* sheet, m_sheets) {
+                       sheets.append(sheet);
                }
                // filename of the toc file is "project-name.toc"
                filename += get_title() + ".toc";
        } else {
-               Song* song = get_current_song();
-               if (!song) {
+               Sheet* sheet = get_current_sheet();
+               if (!sheet) {
                        return -1;
                }
-               songs.append(song);
+               sheets.append(sheet);
        }
        
        QString output;
@@ -662,7 +662,7 @@
        output += "    UPC_EAN \"" + get_upc_ean() + "\"\n\n";
 
        output += "    ARRANGER \"" + get_arranger() + "\"\n";
-       output += "    SONGWRITER \"" + get_songwriter() + "\"\n";
+       output += "    SONGWRITER \"" + get_sheetwriter() + "\"\n";
        output += "    MESSAGE \"" + get_message() + "\"\n";
        output += "    GENRE \"" + QString::number(get_genre()) + "\"\n  
}\n}\n\n";
 
@@ -670,18 +670,18 @@
        bool pregap = true;
        spec->renderpass = ExportSpecification::CREATE_CDRDAO_TOC;
        
-       foreach(Song* song, songs) {
-               if (song->prepare_export(spec) < 0) {
+       foreach(Sheet* sheet, sheets) {
+               if (sheet->prepare_export(spec) < 0) {
                        return -1;
                }
-               output += song->get_cdrdao_tracklist(spec, pregap);
-               pregap = false; // only add the pregap at the first song
+               output += sheet->get_cdrdao_tracklist(spec, pregap);
+               pregap = false; // only add the pregap at the first sheet
        }
        
 
        if (spec->writeToc) {
-               if (!spec->allSongs) {
-                       // filename of the toc file is "song-name.toc"
+               if (!spec->allSheets) {
+                       // filename of the toc file is "sheet-name.toc"
                        filename += spec->basename + ".toc";
                }
                
@@ -705,8 +705,8 @@
 Command* Project::select()
 {
        int index = ie().collected_number();
-       if (index <= m_songs.size() && index > 0) {
-               set_current_song(m_songs.at(index - 1)->get_id());
+       if (index <= m_sheets.size() && index > 0) {
+               set_current_sheet(m_sheets.at(index - 1)->get_id());
        }
        return (Command*) 0;
 }
@@ -726,24 +726,24 @@
        return m_bitDepth;
 }
 
-void Project::set_song_export_progress(int progress)
+void Project::set_sheet_export_progress(int progress)
 {
-       overallExportProgress = (progress / songsToRender.count()) + 
-                       (renderedSongs * (100 / songsToRender.count()) );
+       overallExportProgress = (progress / sheetsToRender.count()) + 
+                       (renderedSheets * (100 / sheetsToRender.count()) );
 
-       emit songExportProgressChanged(progress);
+       emit sheetExportProgressChanged(progress);
        emit overallExportProgressChanged(overallExportProgress);
 }
 
-QList<Song* > Project::get_songs( ) const
+QList<Sheet* > Project::get_sheets( ) const
 {
-       return m_songs;
+       return m_sheets;
 }
 
-int Project::get_song_index(qint64 id) const
+int Project::get_sheet_index(qint64 id) const
 {
-       for (int i=0; i<m_songs.size(); ++i) {
-               if (m_songs.at(i)->get_id() == id) {
+       for (int i=0; i<m_sheets.size(); ++i) {
+               if (m_sheets.at(i)->get_id() == id) {
                        return i + 1;
                }
        }
@@ -752,14 +752,14 @@
 }
 
 
-int Project::get_current_song_id( ) const
+int Project::get_current_sheet_id( ) const
 {
-       return m_currentSongId;
+       return m_currentSheetId;
 }
 
-int Project::get_num_songs( ) const
+int Project::get_num_sheets( ) const
 {
-       return m_songs.size();
+       return m_sheets.size();
 }
 
 QString Project::get_title( ) const
@@ -792,9 +792,9 @@
        return m_arranger;
 }
 
-QString Project::get_songwriter() const
+QString Project::get_sheetwriter() const
 {
-       return m_songwriter;
+       return m_sheetwriter;
 }
 
 QString Project::get_message() const
@@ -828,33 +828,33 @@
 }
 
 
-void Project::private_add_song(Song * song)
+void Project::private_add_sheet(Sheet * sheet)
 {
        PENTER;
-       m_songs.append(song);
-       song->connect_to_audiodevice();
+       m_sheets.append(sheet);
+       sheet->connect_to_audiodevice();
        
-       set_current_song(song->get_id());
+       set_current_sheet(sheet->get_id());
 }
 
-void Project::private_remove_song(Song * song)
+void Project::private_remove_sheet(Sheet * sheet)
 {
        PENTER;
-       m_songs.removeAll(song);
+       m_sheets.removeAll(sheet);
        
-       if (m_songs.isEmpty()) {
-               m_currentSongId = -1;
+       if (m_sheets.isEmpty()) {
+               m_currentSheetId = -1;
        }
                
        qint64 newcurrent = 0;
                
-       if (m_songs.size() > 0) {
-               newcurrent = m_songs.last()->get_id();
+       if (m_sheets.size() > 0) {
+               newcurrent = m_sheets.last()->get_id();
        }
                
-       set_current_song(newcurrent);
+       set_current_sheet(newcurrent);
 
-       song->disconnect_from_audiodevice();
+       sheet->disconnect_from_audiodevice();
 }
 
 QString Project::get_import_dir() const
@@ -881,8 +881,8 @@
 
 bool Project::is_recording() const
 {
-       foreach(Song* song, m_songs) {
-               if (song->is_recording() && song->is_transport_rolling()) {
+       foreach(Sheet* sheet, m_sheets) {
+               if (sheet->is_recording() && sheet->is_transport_rolling()) {
                        return true;
                }
        }

Index: src/core/Project.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Project.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- src/core/Project.h  29 Nov 2007 11:04:08 -0000      1.29
+++ src/core/Project.h  21 Jan 2008 16:22:14 -0000      1.30
@@ -28,7 +28,7 @@
 #include "ContextItem.h"
 
 
-class Song;
+class Sheet;
 class ResourcesManager;
 struct ExportSpecification;
 class ExportThread;
@@ -42,8 +42,8 @@
 
 
        // Get functions
-       int get_current_song_id() const;
-       int get_num_songs() const;
+       int get_current_sheet_id() const;
+       int get_num_sheets() const;
        int get_rate() const;
        int get_bitdepth() const;
        
@@ -54,7 +54,7 @@
        QString get_discid() const;
        QString get_performer() const;
        QString get_arranger() const;
-       QString get_songwriter() const;
+       QString get_sheetwriter() const;
        QString get_message() const;
        QString get_upc_ean() const;
        int get_genre();
@@ -62,10 +62,10 @@
        QString get_audiosources_dir() const;
        QString get_import_dir() const;
        QString get_error_string() const {return m_errorString;}
-       QList<Song* > get_songs() const;
-       Song* get_current_song() const ;
-       Song* get_song(qint64 id) const;
-       int get_song_index(qint64 id) const;
+       QList<Sheet* > get_sheets() const;
+       Sheet* get_current_sheet() const ;
+       Sheet* get_sheet(qint64 id) const;
+       int get_sheet_index(qint64 id) const;
        QDomNode get_state(QDomDocument doc, bool istemplate=false);
 
 
@@ -76,17 +76,17 @@
        void set_discid(const QString& pId);
        void set_performer(const QString& pPerformer);
        void set_arranger(const QString& pArranger);
-       void set_songwriter(const QString& pSongwriter);
+       void set_sheetwriter(const QString& pSheetwriter);
        void set_message(const QString& pMessage);
        void set_upc_ean(const QString& pUPC);
        void set_genre(int pGenre);
-       void set_song_export_progress(int pogress);
-       void set_current_song(qint64 id);
+       void set_sheet_export_progress(int pogress);
+       void set_current_sheet(qint64 id);
        void set_import_dir(const QString& dir);
 
        
-       Command* add_song(Song* song, bool historable=true);
-       Command* remove_song(Song* song, bool historable=true);
+       Command* add_sheet(Sheet* sheet, bool historable=true);
+       Command* remove_sheet(Sheet* sheet, bool historable=true);
        
        bool has_changed();
        bool is_save_to_close() const;
@@ -111,7 +111,7 @@
 private:
        Project(const QString& title);
        
-       QList<Song* >   m_songs;
+       QList<Sheet* >  m_sheets;
        ResourcesManager*       m_resourcesManager;
        ExportThread*   m_exportThread;
 
@@ -126,7 +126,7 @@
        QString         m_upcEan;
        QString         m_performer;
        QString         m_arranger;
-       QString         m_songwriter;
+       QString         m_sheetwriter;
        QString         m_message;
        QString         m_errorString;
 
@@ -135,29 +135,29 @@
        bool            m_useResampling;
 
        int             overallExportProgress;
-       int             renderedSongs;
-       QList<Song* >   songsToRender;
+       int             renderedSheets;
+       QList<Sheet* >  sheetsToRender;
 
-       qint64          m_currentSongId;
+       qint64          m_currentSheetId;
        
-       int create(int songcount, int numtracks);
+       int create(int sheetcount, int numtracks);
        int create_audiosources_dir();
        int create_peakfiles_dir();
        
        friend class ProjectManager;
 
 private slots:
-       void private_add_song(Song* song);
-       void private_remove_song(Song* song);
+       void private_add_sheet(Sheet* sheet);
+       void private_remove_sheet(Sheet* sheet);
 
 signals:
-       void currentSongChanged(Song* );
-       void songAdded(Song*);
-       void songRemoved(Song*);
-       void songExportProgressChanged(int );
+       void currentSheetChanged(Sheet* );
+       void sheetAdded(Sheet*);
+       void sheetRemoved(Sheet*);
+       void sheetExportProgressChanged(int );
        void overallExportProgressChanged(int );
        void exportFinished();
-       void exportStartedForSong(Song* );
+       void exportStartedForSheet(Sheet* );
        void projectLoadFinished();
 };
 

Index: src/core/ProjectManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ProjectManager.cpp,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- src/core/ProjectManager.cpp 3 Dec 2007 14:05:25 -0000       1.52
+++ src/core/ProjectManager.cpp 21 Jan 2008 16:22:14 -0000      1.53
@@ -31,7 +31,7 @@
 
 
 #include "Project.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "ContextPointer.h"
 #include "ResourcesManager.h"
 #include "Information.h"
@@ -140,7 +140,7 @@
 
 }
 
-Project* ProjectManager::create_new_project(int numSongs, int numTracks, const 
QString& projectName)
+Project* ProjectManager::create_new_project(int numSheets, int numTracks, 
const QString& projectName)
 {
        PENTER;
 
@@ -154,7 +154,7 @@
        
        Project* newProject = new Project(projectName);
 
-       if (newProject->create(numSongs, numTracks) < 0) {
+       if (newProject->create(numSheets, numTracks) < 0) {
                delete newProject;
                info().critical(tr("Unable to create new Project 
%1").arg(projectName));
                return 0;
@@ -384,7 +384,7 @@
        PENTER;
        
        if (currentProject) {
-               if (currentProject->get_songs().size() == 0) {
+               if (currentProject->get_sheets().size() == 0) {
                        // No sheets to unregister from the audiodevice,
                        // just save and quit:
                        set_current_project(0);
@@ -404,20 +404,20 @@
        return (Command*) 0;
 }
 
-void ProjectManager::scheduled_for_deletion( Song * song )
+void ProjectManager::scheduled_for_deletion( Sheet * sheet )
 {
        PENTER;
-       m_deletionSongList.append(song);
+       m_deletionSheetList.append(sheet);
 }
 
-void ProjectManager::delete_song( Song * song )
+void ProjectManager::delete_sheet( Sheet * sheet )
 {
        PENTER;
-       m_deletionSongList.removeAll(song);
-       emit aboutToDelete(song);
-       delete song;
+       m_deletionSheetList.removeAll(sheet);
+       emit aboutToDelete(sheet);
+       delete sheet;
        
-       if (m_deletionSongList.isEmpty() && m_exitInProgress) {
+       if (m_deletionSheetList.isEmpty() && m_exitInProgress) {
                QApplication::exit();
        }
                

Index: src/core/ProjectManager.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ProjectManager.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- src/core/ProjectManager.h   22 Nov 2007 17:00:55 -0000      1.23
+++ src/core/ProjectManager.h   21 Jan 2008 16:22:14 -0000      1.24
@@ -30,7 +30,7 @@
 
 
 class Project;
-class Song;
+class Sheet;
 class Command;
 class ResourcesManager;
 class QFileSystemWatcher;
@@ -43,7 +43,7 @@
        Q_CLASSINFO("exit", tr("Exit application"))
        
 public:
-       Project* create_new_project(int numSong, int numTracks, const QString& 
projectName);
+       Project* create_new_project(int numSheet, int numTracks, const QString& 
projectName);
        Project* create_new_project(const QString& templatefile, const QString& 
projectName);
        
        int load_project(const QString& projectName);
@@ -55,8 +55,8 @@
        int create_projectfilebackup_dir(const QString& rootDir);
        int remove_project(const QString& title);
        
-       void scheduled_for_deletion(Song* song);
-       void delete_song(Song* song);
+       void scheduled_for_deletion(Sheet* sheet);
+       void delete_sheet(Sheet* sheet);
        void set_current_project_dir(const QString& path);
        void add_valid_project_path(const QString& path);
        void remove_wrong_project_path(const QString& path);
@@ -85,7 +85,7 @@
        ProjectManager(const ProjectManager&);
 
        Project* currentProject;
-       QList<Song*>    m_deletionSongList;
+       QList<Sheet*>   m_deletionSheetList;
        bool            m_exitInProgress;
        QStringList     m_projectDirs;
        QFileSystemWatcher*     m_watcher;
@@ -102,7 +102,7 @@
 
 signals:
        void projectLoaded(Project* );
-       void aboutToDelete(Song* );
+       void aboutToDelete(Sheet* );
        void currentProjectDirChanged();
        void unsupportedProjectDirChangeDetected();
        void projectDirChangeDetected();

Index: src/core/ReadSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.cpp,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -b -r1.90 -r1.91
--- src/core/ReadSource.cpp     11 Jan 2008 15:35:57 -0000      1.90
+++ src/core/ReadSource.cpp     21 Jan 2008 16:22:14 -0000      1.91
@@ -27,7 +27,7 @@
 #include "AudioClip.h"
 #include "DiskIO.h"
 #include "Utils.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "AudioDevice.h"
 #include <QFile>
 #include "Config.h"
@@ -142,7 +142,7 @@
 {
        QDomElement node = doc.createElement("Source");
        node.setAttribute("channelcount", m_channelCount);
-       node.setAttribute("origsheetid", m_origSongId);
+       node.setAttribute("origsheetid", m_origSheetId);
        node.setAttribute("dir", m_dir);
        node.setAttribute("id", m_id);
        node.setAttribute("name", m_name);
@@ -162,7 +162,7 @@
        
        QDomElement e = node.toElement();
        m_channelCount = e.attribute("channelcount", "0").toInt();
-       m_origSongId = e.attribute("origsheetid", "0").toLongLong();
+       m_origSheetId = e.attribute("origsheetid", "0").toLongLong();
        set_dir( e.attribute("dir", "" ));
        m_id = e.attribute("id", "").toLongLong();
        m_rate = m_outputRate = e.attribute("rate", "0").toUInt();
@@ -175,7 +175,7 @@
        // For older project files, this should properly detect if the 
        // audio source was a recording or not., in fact this should suffice
        // and the flag wasrecording would be unneeded, but oh well....
-       if (m_origSongId != 0) {
+       if (m_origSheetId != 0) {
                m_wasRecording = true;
        }
        
@@ -619,7 +619,7 @@
                m_buffers.append(new RingBufferNPT<float>(m_bufferSize));
        }
 
-       TimeRef synclocation = m_clip->get_song()->get_work_location();
+       TimeRef synclocation = m_clip->get_sheet()->get_work_location();
        start_resync(synclocation);
 }
 
@@ -632,7 +632,7 @@
        int freespace = m_buffers.at(0)->write_space();
        
 //     printf("m_rbFileReadPos, m_length %lld, %lld\n", 
m_rbFileReadPos.universal_frame(), m_length.universal_frame());
-       TimeRef transport = m_clip->get_song()->get_transport_location();
+       TimeRef transport = m_clip->get_sheet()->get_transport_location();
        TimeRef syncstartlocation = m_clip->get_track_start_location();
        bool transportBeforeSyncStartLocation = transport < (syncstartlocation 
- (3 * UNIVERSAL_SAMPLE_RATE));
        bool transportAfterClipEndLocation = transport > 
(m_clip->get_track_end_location() + (3 * UNIVERSAL_SAMPLE_RATE));

Index: src/core/ResourcesManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ResourcesManager.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- src/core/ResourcesManager.cpp       11 Jan 2008 15:35:57 -0000      1.23
+++ src/core/ResourcesManager.cpp       21 Jan 2008 16:22:15 -0000      1.24
@@ -25,7 +25,7 @@
 #include "Information.h"
 #include "AudioClip.h"
 #include "Project.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "Utils.h"
 #include "AudioDevice.h"
 
@@ -153,7 +153,7 @@
        ReadSource* source = new ReadSource(dir, name);
        SourceData* data = new SourceData();
        data->source = source;
-       source->set_created_by_song(m_project->get_current_song()->get_id());
+       source->set_created_by_sheet(m_project->get_current_sheet()->get_id());
        
        m_sources.insert(source->get_id(), data);
        
@@ -175,7 +175,7 @@
        const QString& dir,
        const QString& name,
        int channelCount,
-       qint64 songId)
+       qint64 sheetId)
 {
        PENTER;
        
@@ -184,7 +184,7 @@
        data->source = source;
        
        source->set_original_bit_depth(audiodevice().get_bit_depth());
-       source->set_created_by_song(songId);
+       source->set_created_by_sheet(sheetId);
        source->ref();
        
        m_sources.insert(source->get_id(), data);
@@ -202,7 +202,7 @@
                SourceData* data = new SourceData();
                data->source = m_silentReadSource;
                m_sources.insert(m_silentReadSource->get_id(), data);
-               m_silentReadSource->set_created_by_song( -1 );
+               m_silentReadSource->set_created_by_sheet( -1 );
        }
        
        m_silentReadSource = get_readsource(m_silentReadSource->get_id());

Index: src/core/ResourcesManager.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ResourcesManager.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- src/core/ResourcesManager.h 18 Jul 2007 13:13:07 -0000      1.13
+++ src/core/ResourcesManager.h 21 Jan 2008 16:22:15 -0000      1.14
@@ -48,7 +48,7 @@
        ReadSource* create_recording_source(const QString& dir,
                                const QString& name,
                                int channelCount,
-                               qint64 songId);
+                               qint64 sheetId);
        
        ReadSource* import_source(const QString& dir, const QString& name);
        ReadSource* get_silent_readsource();

Index: src/core/SnapList.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/SnapList.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- src/core/SnapList.cpp       29 Nov 2007 11:26:28 -0000      1.25
+++ src/core/SnapList.cpp       21 Jan 2008 16:22:15 -0000      1.26
@@ -21,7 +21,7 @@
 
 #include "SnapList.h"
 #include "Peak.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "AudioClip.h"
 #include "AudioClipManager.h"
 #include "ContextPointer.h"
@@ -42,9 +42,9 @@
 
 static const int SNAP_WIDTH = 10;
 
-SnapList::SnapList(Song* song) 
-       : QObject(song)
-       , m_song(song)
+SnapList::SnapList(Sheet* sheet) 
+       : QObject(sheet)
+       , m_sheet(sheet)
 {
        m_isDirty = true;
        m_rangeStart = TimeRef();
@@ -66,7 +66,7 @@
        m_xposBool.clear();
        
        // collects all clip boundaries and adds them to the snap list
-       QList<AudioClip* >* acList = 
m_song->get_audioclip_manager()->get_clip_list();
+       QList<AudioClip* >* acList = 
m_sheet->get_audioclip_manager()->get_clip_list();
        
        SLPRINT("acList size is %d\n", acList->size());
 
@@ -98,7 +98,7 @@
        }
 
        // add all on-screen markers
-       QList<Marker*> markerList = m_song->get_timeline()->get_markers();
+       QList<Marker*> markerList = m_sheet->get_timeline()->get_markers();
        for (int i = 0; i < markerList.size(); ++i) {
                if (markerList.at(i)->is_snappable() && 
markerList.at(i)->get_when() >= m_rangeStart && markerList.at(i)->get_when() <= 
m_rangeEnd) {
                        m_xposList.append(markerList.at(i)->get_when());
@@ -106,10 +106,10 @@
        }
 
        // add the working cursor's position
-       TimeRef worklocation = m_song->get_work_location();
+       TimeRef worklocation = m_sheet->get_work_location();
        //printf("worklocation xpos is %d\n",  worklocation / m_scalefactor);
-       if (m_song->get_work_snap()->is_snappable() && worklocation >= 
m_rangeStart && worklocation <= m_rangeEnd) {
-               m_xposList.append(m_song->get_work_location());
+       if (m_sheet->get_work_snap()->is_snappable() && worklocation >= 
m_rangeStart && worklocation <= m_rangeEnd) {
+               m_xposList.append(m_sheet->get_work_location());
        }
        
 

Index: src/core/SnapList.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/SnapList.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/core/SnapList.h 10 Sep 2007 18:42:48 -0000      1.12
+++ src/core/SnapList.h 21 Jan 2008 16:22:15 -0000      1.13
@@ -27,7 +27,7 @@
 
 #include "defines.h"
 
-class Song;
+class Sheet;
 class AudioClip;
 class Snappable;
 
@@ -36,7 +36,7 @@
        Q_OBJECT
 
 public:
-       SnapList(Song* song);
+       SnapList(Sheet* sheet);
        ~SnapList() {};
 
        TimeRef get_snap_value(const TimeRef& location);
@@ -48,7 +48,7 @@
        void set_range(const TimeRef& start, const TimeRef& end, int 
scalefactor);
 
 private:
-       Song*           m_song;
+       Sheet*          m_sheet;
        QList<TimeRef>  m_xposList;
        QList<TimeRef>  m_xposLut;
        QList<bool>     m_xposBool;

Index: src/core/Themer.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Themer.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/core/Themer.cpp 27 Nov 2007 13:11:56 -0000      1.9
+++ src/core/Themer.cpp 21 Jan 2008 16:22:15 -0000      1.10
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: Themer.cpp,v 1.9 2007/11/27 13:11:56 r_sijrier Exp $
+$Id: Themer.cpp,v 1.10 2008/01/21 16:22:15 r_sijrier Exp $
 */
 
 #include "Themer.h"
@@ -249,6 +249,8 @@
        m_cursors.insert("Fade", QCursor(find_pixmap(":/cursorFloatOverFade")));
        m_cursors.insert("Default", QCursor(find_pixmap(":/cursorFloat")));
        m_cursors.insert("Zoom", QCursor(find_pixmap(":/cursorZoom")));
+       m_cursors.insert("ZoomVertical", 
QCursor(find_pixmap(":/cursorZoomVertical")));
+       m_cursors.insert("ZoomHorizontal", 
QCursor(find_pixmap(":/cursorZoomHorizontal")));
        m_cursors.insert("CurveNode", QCursor(find_pixmap(":/cursorDragNode")));
        
        m_cursors.insert("LRUD", QCursor(find_pixmap(":/cursorHoldLrud")));
@@ -424,8 +426,8 @@
                
                if (name == "ResourcesBin:alternaterowcolor") c = 
p.color(QPalette::AlternateBase);
 
-               if (name == "Song:background") c = p.color(QPalette::Base);
-               if (name == "SongPanel:background") c = 
p.color(QPalette::Window);
+               if (name == "Sheet:background") c = p.color(QPalette::Base);
+               if (name == "SheetPanel:background") c = 
p.color(QPalette::Window);
                
                if (name == "Timeline:background") c = 
p.color(QPalette::Window);
                if (name == "Timeline:text") c = p.color(QPalette::WindowText);

Index: src/core/TimeLine.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/TimeLine.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- src/core/TimeLine.cpp       29 Dec 2007 21:50:15 -0000      1.15
+++ src/core/TimeLine.cpp       21 Jan 2008 16:22:15 -0000      1.16
@@ -21,7 +21,7 @@
 
 #include "TimeLine.h"
 
-#include "Song.h"
+#include "Sheet.h"
 #include "Marker.h"
 #include <AddRemove.h>
 #include "AudioDevice.h"
@@ -31,11 +31,11 @@
        return left->get_when() < right->get_when();
 }
 
-TimeLine::TimeLine(Song * song)
-       : ContextItem(song)
-       , m_song(song)
+TimeLine::TimeLine(Sheet * sheet)
+       : ContextItem(sheet)
+       , m_sheet(sheet)
 {
-       set_history_stack(m_song->get_history_stack());
+       set_history_stack(m_sheet->get_history_stack());
 }
 
 QDomNode TimeLine::get_state(QDomDocument doc)
@@ -75,7 +75,7 @@
        connect(marker, SIGNAL(positionChanged(Snappable*)), this, 
SLOT(marker_position_changed(Snappable*)));
        
        AddRemove* cmd;
-       cmd = new AddRemove(this, marker, historable, m_song,
+       cmd = new AddRemove(this, marker, historable, m_sheet,
                "private_add_marker(Marker*)", "markerAdded(Marker*)",
                "private_remove_marker(Marker*)", "markerRemoved(Marker*)",
                tr("Add Marker"));
@@ -92,7 +92,7 @@
 Command* TimeLine::remove_marker(Marker* marker, bool historable)
 {
        AddRemove* cmd;
-       cmd = new AddRemove(this, marker, historable, m_song,
+       cmd = new AddRemove(this, marker, historable, m_sheet,
                "private_remove_marker(Marker*)", "markerRemoved(Marker*)",
                "private_add_marker(Marker*)", "markerAdded(Marker*)",
                tr("Remove Marker"));
@@ -167,8 +167,8 @@
        qSort(m_markers.begin(), m_markers.end(), smallerMarker);
        emit markerPositionChanged((Marker*)snap);
        
-       // FIXME This is not a fix to let the songview scrollbars 
+       // FIXME This is not a fix to let the sheetview scrollbars 
        // know that it's range possably has to be recalculated!!!!!!!!!!!!!!
-       emit m_song->lastFramePositionChanged();
+       emit m_sheet->lastFramePositionChanged();
 }
 

Index: src/core/TimeLine.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/TimeLine.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/core/TimeLine.h 23 Nov 2007 14:21:08 -0000      1.11
+++ src/core/TimeLine.h 21 Jan 2008 16:22:15 -0000      1.12
@@ -27,7 +27,7 @@
 #include <QList>
 #include "defines.h"
 
-class Song;
+class Sheet;
 class Marker;
 class Snappable;
 class Command;
@@ -36,14 +36,14 @@
 {
        Q_OBJECT
 public:
-       TimeLine(Song* song);
+       TimeLine(Sheet* sheet);
        ~TimeLine() {};
        
        QDomNode get_state(QDomDocument doc);
        int set_state(const QDomNode& node);
        
        QList<Marker*> get_markers() const {return m_markers;}
-       Song *get_song() const {return m_song;}
+       Sheet *get_sheet() const {return m_sheet;}
        
        Marker* get_marker(qint64 id);
        bool get_end_location(TimeRef& location);
@@ -54,7 +54,7 @@
        Command* remove_marker(Marker* marker, bool historable=true);
 
 private:
-       Song* m_song;
+       Sheet* m_sheet;
        QList<Marker*> m_markers;
 
 private slots:

Index: src/core/Track.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Track.cpp,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -b -r1.76 -r1.77
--- src/core/Track.cpp  2 Jan 2008 19:23:59 -0000       1.76
+++ src/core/Track.cpp  21 Jan 2008 16:22:15 -0000      1.77
@@ -20,7 +20,7 @@
 */
 
 #include "Track.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "AudioClip.h"
 #include "AudioClipManager.h"
 #include <AudioBus.h>
@@ -41,9 +41,9 @@
 #include "Debugger.h"
 
 
-Track::Track(Song* song, const QString& name, int height )
-       : ContextItem(song), 
-         m_song(song), 
+Track::Track(Sheet* sheet, const QString& name, int height )
+       : ContextItem(sheet), 
+         m_sheet(sheet), 
          m_name(name),
          m_height(height)
 {
@@ -58,9 +58,9 @@
        init();
 }
 
-Track::Track( Song * song, const QDomNode node)
-       : ContextItem(song), 
-         m_song(song)
+Track::Track( Sheet * sheet, const QDomNode node)
+       : ContextItem(sheet), 
+         m_sheet(sheet)
 {
        PENTERCONS;
        Q_UNUSED(node);
@@ -76,8 +76,8 @@
 void Track::init()
 {
        isSolo = mutedBySolo = m_isMuted = isArmed = false;
-       set_history_stack(m_song->get_history_stack());
-       m_pluginChain = new PluginChain(this, m_song);
+       set_history_stack(m_sheet->get_history_stack());
+       m_pluginChain = new PluginChain(this, m_sheet);
        m_fader = m_pluginChain->get_fader();
        m_fader->set_gain(1.0);
        m_captureRightChannel = m_captureLeftChannel = true;
@@ -168,10 +168,10 @@
                                break;
                        }
                        
-                       clip->set_song(m_song);
+                       clip->set_sheet(m_sheet);
                        clip->set_track(this);
                        clip->set_state(clip->get_dom_node());
-                       m_song->get_audioclip_manager()->add_clip(clip);
+                       m_sheet->get_audioclip_manager()->add_clip(clip);
                        private_add_clip(clip);
                        
                        clipNode = clipNode.nextSibling();
@@ -213,9 +213,9 @@
 {
        PENTER;
        if (! ismove) {
-               m_song->get_audioclip_manager()->remove_clip(clip);
+               m_sheet->get_audioclip_manager()->remove_clip(clip);
        }
-       return new AddRemove(this, clip, historable, m_song,
+       return new AddRemove(this, clip, historable, m_sheet,
                "private_remove_clip(AudioClip*)", 
"audioClipRemoved(AudioClip*)",
                "private_add_clip(AudioClip*)", "audioClipAdded(AudioClip*)", 
                tr("Remove Clip"));
@@ -227,9 +227,9 @@
        PENTER;
        clip->set_track(this);
        if (! ismove) {
-               m_song->get_audioclip_manager()->add_clip(clip);
+               m_sheet->get_audioclip_manager()->add_clip(clip);
        }
-       return new AddRemove(this, clip, historable, m_song,
+       return new AddRemove(this, clip, historable, m_sheet,
                "private_add_clip(AudioClip*)", "audioClipAdded(AudioClip*)",
                "private_remove_clip(AudioClip*)", 
"audioClipRemoved(AudioClip*)", 
                tr("Add Clip"));
@@ -309,7 +309,7 @@
        if ( ! isArmed) {
                return 0;
        }
-       int number = m_song->get_track_index(m_id);
+       int number = m_sheet->get_track_index(m_id);
        QString snumber = QString::number(number);
        if (number < 10) {
                snumber.prepend("0");
@@ -318,9 +318,9 @@
                        "_take-" + QString::number(++numtakes);
        
        AudioClip* clip = resources_manager()->new_audio_clip(name);
-       clip->set_song(m_song);
+       clip->set_sheet(m_sheet);
        clip->set_track(this);
-       clip->set_track_start_location(m_song->get_transport_location());
+       clip->set_track_start_location(m_sheet->get_transport_location());
        
        if (clip->init_recording(busIn) < 0) {
                PERROR("Could not create AudioClip to record to!");
@@ -411,10 +411,10 @@
                return 0;
        }
        
-       // Get the 'render bus' from song, a bit hackish solution, but
+       // Get the 'render bus' from sheet, a bit hackish solution, but
        // it avoids to have a dedicated render bus for each Track,
        // or buffers located on the heap...
-       AudioBus* bus = m_song->get_render_bus();
+       AudioBus* bus = m_sheet->get_render_bus();
        bus->silence_buffers(nframes);
        
        int result;
@@ -458,7 +458,7 @@
        processResult |= m_pluginChain->process_post_fader(bus, nframes);
                
        for (int i=0; i<bus->get_channel_count(); ++i) {
-               
Mixer::mix_buffers_no_gain(m_song->get_master_out()->get_buffer(i, nframes), 
bus->get_buffer(i, nframes), nframes);
+               
Mixer::mix_buffers_no_gain(m_sheet->get_master_out()->get_buffer(i, nframes), 
bus->get_buffer(i, nframes), nframes);
        }
        
        return processResult;
@@ -483,7 +483,7 @@
 
 Command* Track::solo(  )
 {
-       m_song->solo_track(this);
+       m_sheet->solo_track(this);
        return (Command*) 0;
 }
 

Index: src/core/Track.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Track.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- src/core/Track.h    2 Jan 2008 19:23:59 -0000       1.37
+++ src/core/Track.h    21 Jan 2008 16:22:15 -0000      1.38
@@ -35,7 +35,7 @@
 #include "defines.h"
 
 class AudioClip;
-class Song;
+class Sheet;
 class PluginChain;
 class Plugin;
 
@@ -48,8 +48,8 @@
        Q_CLASSINFO("silence_others", tr("Silence other tracks"))
 
 public :
-       Track(Song* song, const QString& name, int height);
-       Track(Song* song, const QDomNode node);
+       Track(Sheet* sheet, const QString& name, int height);
+       Track(Sheet* sheet, const QDomNode node);
        ~Track();
 
        static const int INITIAL_HEIGHT = 100;
@@ -73,7 +73,7 @@
        QString get_bus_out() const{return busOut;}
        int get_height() const {return m_height;}
        float get_pan() const {return m_pan;}
-       Song* get_song() const {return m_song;}
+       Sheet* get_sheet() const {return m_sheet;}
        QString get_name() const {return m_name;}
        
        int get_total_clips();
@@ -118,7 +118,7 @@
        int process(nframes_t nframes);
 
 private :
-       Song*           m_song;
+       Sheet*          m_sheet;
        APILinkedList   m_clips;
 
        float   m_pan;

Index: src/core/ViewPort.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ViewPort.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- src/core/ViewPort.cpp       7 Jan 2008 18:11:30 -0000       1.27
+++ src/core/ViewPort.cpp       21 Jan 2008 16:22:15 -0000      1.28
@@ -280,6 +280,7 @@
 
 HoldCursor::HoldCursor()
 {
+       setFlag(QGraphicsItem::ItemIgnoresTransformations);
        setZValue(200);
 }
 

Index: src/engine/AudioBus.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/engine/AudioBus.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/engine/AudioBus.cpp     4 Jun 2007 20:47:16 -0000       1.10
+++ src/engine/AudioBus.cpp     21 Jan 2008 16:22:15 -0000      1.11
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: AudioBus.cpp,v 1.10 2007/06/04 20:47:16 r_sijrier Exp $
+$Id: AudioBus.cpp,v 1.11 2008/01/21 16:22:15 r_sijrier Exp $
 */
 
 #include "AudioBus.h"
@@ -95,6 +95,7 @@
  */
 void AudioBus::add_channel(AudioChannel* chan)
 {
+       Q_ASSERT(chan);
        channels.append(chan);
        channelCount++;
 }

Index: src/engine/AudioDevice.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/engine/AudioDevice.cpp,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -b -r1.50 -r1.51
--- src/engine/AudioDevice.cpp  15 Jan 2008 19:51:48 -0000      1.50
+++ src/engine/AudioDevice.cpp  21 Jan 2008 16:22:15 -0000      1.51
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: AudioDevice.cpp,v 1.50 2008/01/15 19:51:48 r_sijrier Exp $
+$Id: AudioDevice.cpp,v 1.51 2008/01/21 16:22:15 r_sijrier Exp $
 */
 
 #include "AudioDevice.h"
@@ -553,6 +553,7 @@
        int number = 1;
        QByteArray name;
 
+       // FIXME check if value() return an AudioChannel!!!!!!!!!!!!!
        for (int i=1; i <= captureChannels.size();) {
                name = "Capture " + QByteArray::number(number++);
                AudioBus* bus = new AudioBus(name);

Index: src/plugins/LV2/LV2Plugin.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/LV2/LV2Plugin.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/plugins/LV2/LV2Plugin.cpp       7 Nov 2007 12:08:05 -0000       1.17
+++ src/plugins/LV2/LV2Plugin.cpp       21 Jan 2008 16:22:15 -0000      1.18
@@ -33,8 +33,8 @@
 
 
 
-LV2Plugin::LV2Plugin(Song* song, bool slave)
-       : Plugin(song)
+LV2Plugin::LV2Plugin(Sheet* sheet, bool slave)
+       : Plugin(sheet)
        , m_instance(0)
        , m_slv2plugin(0)
 {
@@ -42,8 +42,8 @@
 }
 
 
-LV2Plugin::LV2Plugin(Song* song, char* pluginUri)
-       : Plugin(song)
+LV2Plugin::LV2Plugin(Sheet* sheet, char* pluginUri)
+       : Plugin(sheet)
        , m_pluginUri((char*) pluginUri)
        , m_instance(0)
        , m_slv2plugin(0)
@@ -386,7 +386,7 @@
 {
        QDomDocument doc("LV2Plugin");
        QDomNode pluginState = get_state(doc);
-       LV2Plugin* plug = new LV2Plugin(m_song, true);
+       LV2Plugin* plug = new LV2Plugin(m_sheet, true);
        plug->set_state(pluginState);
        return plug;
 }

Index: src/plugins/LV2/LV2Plugin.h
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/LV2/LV2Plugin.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/plugins/LV2/LV2Plugin.h 8 Jun 2007 22:44:29 -0000       1.10
+++ src/plugins/LV2/LV2Plugin.h 21 Jan 2008 16:22:15 -0000      1.11
@@ -34,7 +34,7 @@
 class LV2ControlPort;
 class AudioInputPort;
 class AudioOutputPort;
-class Song;
+class Sheet;
 
 class LV2Plugin : public Plugin
 {
@@ -42,8 +42,8 @@
        Q_CLASSINFO("toggle_bypass", tr("Bypass: On/Off"))
 
 public:
-       LV2Plugin(Song* song, bool slave=false);
-       LV2Plugin(Song* song, char* pluginUri);
+       LV2Plugin(Sheet* sheet, bool slave=false);
+       LV2Plugin(Sheet* sheet, char* pluginUri);
        ~LV2Plugin();
 
        void process(AudioBus* bus, unsigned long nframes);

Index: src/plugins/native/CorrelationMeter.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/native/CorrelationMeter.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/plugins/native/CorrelationMeter.cpp     5 Nov 2007 15:49:31 -0000       
1.2
+++ src/plugins/native/CorrelationMeter.cpp     21 Jan 2008 16:22:16 -0000      
1.3
@@ -16,7 +16,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: CorrelationMeter.cpp,v 1.2 2007/11/05 15:49:31 r_sijrier Exp $
+$Id: CorrelationMeter.cpp,v 1.3 2008/01/21 16:22:16 r_sijrier Exp $
 
 */
 
@@ -155,7 +155,7 @@
 
 /**
  * Compute the correlation coefficient of the stereo master output data
- * of the active song, and the direction. When there is new data, the new
+ * of the active sheet, and the direction. When there is new data, the new
  * data will be assigned to the \a r and \a direction variables, else no 
  * data will be assigned to those variables
  * 

Index: src/plugins/native/GainEnvelope.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/native/GainEnvelope.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/plugins/native/GainEnvelope.cpp 19 Nov 2007 11:18:54 -0000      1.6
+++ src/plugins/native/GainEnvelope.cpp 21 Jan 2008 16:22:16 -0000      1.7
@@ -20,19 +20,19 @@
 
 #include "GainEnvelope.h"
 
-#include "Song.h"
+#include "Sheet.h"
 #include "Curve.h"
 #include "Mixer.h"
 #include "AudioBus.h"
 
-GainEnvelope::GainEnvelope(Song* song)
-       : Plugin(song)
+GainEnvelope::GainEnvelope(Sheet* sheet)
+       : Plugin(sheet)
 {
        PluginControlPort* port = new PluginControlPort(this, 0, 1.0);
        port->set_index(0);
        m_controlPorts.append(port);
-       if (song) {
-               set_song(song);
+       if (sheet) {
+               set_sheet(sheet);
        }
 }
 
@@ -78,12 +78,12 @@
        return "Gain Envelope";
 }
 
-void GainEnvelope::set_song(Song * song)
+void GainEnvelope::set_sheet(Sheet * sheet)
 {
-       m_song = song;
-       set_history_stack(m_song->get_history_stack());
+       m_sheet = sheet;
+       set_history_stack(m_sheet->get_history_stack());
        if (get_curve()) {
-               get_curve()->set_song(song);
+               get_curve()->set_sheet(sheet);
        }
 }
 

Index: src/plugins/native/GainEnvelope.h
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/native/GainEnvelope.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/plugins/native/GainEnvelope.h   19 Nov 2007 11:18:54 -0000      1.3
+++ src/plugins/native/GainEnvelope.h   21 Jan 2008 16:22:16 -0000      1.4
@@ -27,14 +27,14 @@
 #include "Curve.h"
 #include "Mixer.h"
 
-class Song;
+class Sheet;
 
 class GainEnvelope : public Plugin
 {
        Q_OBJECT
        
 public:
-       GainEnvelope(Song* song);
+       GainEnvelope(Sheet* sheet);
        ~GainEnvelope(){};
 
        QDomNode get_state(QDomDocument doc);
@@ -42,7 +42,7 @@
        void process(AudioBus* bus, unsigned long nframes);
        void process_gain(audio_sample_t** buffer, const TimeRef& 
startlocation, const TimeRef& endlocation, nframes_t nframes, uint channels);
        
-       void set_song(Song* song);
+       void set_sheet(Sheet* sheet);
        void set_gain(float gain) {m_gain = gain;}
        
        float get_gain() const {return m_gain;}

Index: src/plugins/PluginChain.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/PluginChain.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/plugins/PluginChain.cpp 5 Nov 2007 15:49:31 -0000       1.12
+++ src/plugins/PluginChain.cpp 21 Jan 2008 16:22:16 -0000      1.13
@@ -25,7 +25,7 @@
 #include "PluginManager.h"
 #include <Tsar.h>
 #include <InputEngine.h>
-#include <Song.h>
+#include <Sheet.h>
 #include <AddRemove.h>
 #include "AudioBus.h"
 
@@ -39,11 +39,11 @@
        m_fader = new GainEnvelope(0);
 }
 
-PluginChain::PluginChain(ContextItem* parent, Song* song)
+PluginChain::PluginChain(ContextItem* parent, Sheet* sheet)
        : ContextItem(parent)
 {
-       m_fader = new GainEnvelope(song);
-       set_song(song);
+       m_fader = new GainEnvelope(sheet);
+       set_sheet(sheet);
 }
 
 PluginChain::~ PluginChain()
@@ -99,7 +99,7 @@
 {
        plugin->set_history_stack(get_history_stack());
        
-       return new AddRemove( this, plugin, historable, m_song,
+       return new AddRemove( this, plugin, historable, m_sheet,
                "private_add_plugin(Plugin*)", "pluginAdded(Plugin*)",
                "private_remove_plugin(Plugin*)", "pluginRemoved(Plugin*)",
                tr("Add Plugin (%1)").arg(plugin->get_name()));
@@ -108,7 +108,7 @@
 
 Command* PluginChain::remove_plugin(Plugin* plugin, bool historable)
 {
-       return new AddRemove( this, plugin, historable, m_song,
+       return new AddRemove( this, plugin, historable, m_sheet,
                "private_remove_plugin(Plugin*)", "pluginRemoved(Plugin*)",
                "private_add_plugin(Plugin*)", "pluginAdded(Plugin*)",
                tr("Remove Plugin (%1)").arg(plugin->get_name()));
@@ -132,10 +132,10 @@
        }
 }
 
-void PluginChain::set_song(Song * song)
+void PluginChain::set_sheet(Sheet * sheet)
 {
-       m_song = song;
-       set_history_stack(m_song->get_history_stack());
-       m_fader->set_song(song);
+       m_sheet = sheet;
+       set_history_stack(m_sheet->get_history_stack());
+       m_fader->set_sheet(sheet);
 }
 

Index: src/plugins/PluginChain.h
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/PluginChain.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/plugins/PluginChain.h   24 Sep 2007 16:58:39 -0000      1.11
+++ src/plugins/PluginChain.h   21 Jan 2008 16:22:16 -0000      1.12
@@ -29,7 +29,7 @@
 #include "Plugin.h"
 #include "GainEnvelope.h"
 
-class Song;
+class Sheet;
 class AudioBus;
 
 class PluginChain : public ContextItem
@@ -38,7 +38,7 @@
        
 public:
        PluginChain(ContextItem* parent);
-       PluginChain(ContextItem* parent, Song* song);
+       PluginChain(ContextItem* parent, Sheet* sheet);
        ~PluginChain();
        
        QDomNode get_state(QDomDocument doc);
@@ -50,7 +50,7 @@
        int process_post_fader(AudioBus* bus, unsigned long nframes);
 //     void process_fader(audio_sample_t* buffer, nframes_t pos, nframes_t 
nframes) {m_fader->process_gain(buffer, pos, nframes);}
        
-       void set_song(Song* song);
+       void set_sheet(Sheet* sheet);
        
        QList<Plugin* > get_plugin_list() {return m_pluginList;}
        GainEnvelope* get_fader() const {return m_fader;}
@@ -58,7 +58,7 @@
 private:
        QList<Plugin* > m_pluginList;
        GainEnvelope*   m_fader;
-       Song*           m_song;
+       Sheet*          m_sheet;
        
 signals:
        void pluginAdded(Plugin* plugin);

Index: src/plugins/Plugin.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/Plugin.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/plugins/Plugin.cpp      5 Nov 2007 15:49:31 -0000       1.7
+++ src/plugins/Plugin.cpp      21 Jan 2008 16:22:16 -0000      1.8
@@ -26,9 +26,9 @@
 
 #include "Debugger.h"
 
-Plugin::Plugin(Song* song)
+Plugin::Plugin(Sheet* sheet)
        : m_slave(0)
-       , m_song(song)
+       , m_sheet(sheet)
 {
        m_bypass = false;
 }
@@ -201,7 +201,7 @@
        QDomElement curveNode = node.firstChildElement("PortAutomation");
        if (!curveNode.isNull()) {
                m_curve = new Curve(m_plugin, curveNode);
-               m_curve->set_song(m_plugin->get_song());
+               m_curve->set_sheet(m_plugin->get_sheet());
        }
                
        return 1;
@@ -232,8 +232,8 @@
                AddRemove* cmd = (AddRemove*)m_curve->add_node(node, false);
                cmd->set_instantanious(true);
                Command::process_command(cmd);
-               if (m_plugin->get_song()) {
-                       m_curve->set_song(m_plugin->get_song());
+               if (m_plugin->get_sheet()) {
+                       m_curve->set_sheet(m_plugin->get_sheet());
                }
        }
 }

Index: src/plugins/Plugin.h
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/Plugin.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/plugins/Plugin.h        8 Jun 2007 22:44:30 -0000       1.9
+++ src/plugins/Plugin.h        21 Jan 2008 16:22:16 -0000      1.10
@@ -35,7 +35,7 @@
 class AudioInputPort;
 class AudioOutputPort;
 class Curve;
-class Song;
+class Sheet;
 
 struct PluginInfo {
        PluginInfo() {
@@ -55,7 +55,7 @@
        Q_CLASSINFO("toggle_bypass", tr("Bypass: On/Off"))
        
 public:
-       Plugin(Song* song = 0);
+       Plugin(Sheet* sheet = 0);
        virtual ~Plugin(){};
 
        virtual int init() {return 1;}
@@ -68,14 +68,14 @@
        QList<PluginControlPort* > get_control_ports() const { return 
m_controlPorts; }
        
        Plugin* get_slave() const {return m_slave;}
-       Song* get_song() const {return m_song;}
+       Sheet* get_sheet() const {return m_sheet;}
        bool is_bypassed() const {return m_bypass;}
        
        void automate_port(int index, bool automate);
        
 protected:
        Plugin* m_slave;
-       Song* m_song;
+       Sheet* m_sheet;
        QList<PluginControlPort* >      m_controlPorts;
        QList<AudioInputPort* >         m_audioInputPorts;
        QList<AudioOutputPort* >        m_audioOutputPorts;

Index: src/plugins/PluginManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/PluginManager.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/plugins/PluginManager.cpp       16 Jun 2007 15:52:42 -0000      1.11
+++ src/plugins/PluginManager.cpp       21 Jan 2008 16:22:16 -0000      1.12
@@ -21,7 +21,7 @@
 
 #include "ProjectManager.h"
 #include "Project.h"
-#include "Song.h"
+#include "Sheet.h"
 #include "PluginManager.h"
 #include "Plugin.h"
 #include "CorrelationMeter.h"
@@ -79,11 +79,11 @@
        QString type = e.attribute( "type", "");
 
        Plugin* plugin = 0;
-       Song* song = pm().get_project()->get_current_song();
+       Sheet* sheet = pm().get_project()->get_current_sheet();
 
 #if defined (LV2_SUPPORT)
        if (type == "LV2Plugin") {
-               plugin = new LV2Plugin(song);
+               plugin = new LV2Plugin(sheet);
        }
 #endif
        
@@ -123,8 +123,8 @@
 
 Plugin* PluginManager::create_lv2_plugin(const QString& uri)
 {
-       Song* song = pm().get_project()->get_current_song();
-       LV2Plugin* plugin = new LV2Plugin(song, QS_C(uri));
+       Sheet* sheet = pm().get_project()->get_current_sheet();
+       LV2Plugin* plugin = new LV2Plugin(sheet, QS_C(uri));
        
        if (plugin->init() < 0) {
                info().warning(QObject::tr("Plugin %1 initialization 
failed!").arg(uri));

Index: src/traverso/CMakeLists.txt
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/CMakeLists.txt,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/traverso/CMakeLists.txt 2 Jan 2008 22:05:19 -0000       1.8
+++ src/traverso/CMakeLists.txt 21 Jan 2008 16:22:16 -0000      1.9
@@ -8,7 +8,7 @@
 ${CMAKE_SOURCE_DIR}/src/plugins
 ${CMAKE_SOURCE_DIR}/src/plugins/LV2
 ${CMAKE_SOURCE_DIR}/src/plugins/native
-${CMAKE_SOURCE_DIR}/src/traverso/songcanvas
+${CMAKE_SOURCE_DIR}/src/sheetcanvas
 ${QT_QTGUI_INCLUDE_DIR}
 ${QT_QTXML_INCLUDE_DIR}
 )
@@ -25,7 +25,6 @@
 Traverso.cpp
 BusMonitor.cpp
 ContextDialog.cpp
-FadeContextDialog.cpp
 Main.cpp
 PluginSelectorDialog.cpp
 Interface.cpp
@@ -39,7 +38,7 @@
 dialogs/InsertSilenceDialog.cpp
 dialogs/MarkerDialog.cpp
 dialogs/BusSelectorDialog.cpp
-dialogs/project/NewSongDialog.cpp
+dialogs/project/NewSheetDialog.cpp
 dialogs/project/NewProjectDialog.cpp
 dialogs/project/OpenProjectDialog.cpp
 dialogs/project/NewTrackDialog.cpp
@@ -64,13 +63,13 @@
 ui/RecordingConfigPage.ui
 ui/ThemeConfigPage.ui
 ui/PerformanceConfigPage.ui
-ui/SongManagerDialog.ui
+ui/SheetManagerDialog.ui
 ui/ProjectManagerDialog.ui
 ui/MarkerDialog.ui
 ui/BusSelectorDialog.ui
 ui/OpenProjectDialog.ui
 ui/NewProjectDialog.ui
-ui/NewSongDialog.ui
+ui/NewSheetDialog.ui
 ui/NewTrackDialog.ui
 ui/ResourcesWidget.ui
 ui/QuickStart.ui
@@ -84,7 +83,6 @@
 SET(TRAVERSO_GUI_MOC_CLASSES
 BusMonitor.h
 CorrelationMeterWidget.h
-FadeContextDialog.h
 Interface.h
 PluginSelectorDialog.h
 QuickDriverConfigWidget.h
@@ -98,7 +96,7 @@
 dialogs/MarkerDialog.h
 dialogs/ProjectConverterDialog.h
 dialogs/RestoreProjectBackupDialog.h
-dialogs/project/NewSongDialog.h
+dialogs/project/NewSheetDialog.h
 dialogs/project/NewTrackDialog.h
 dialogs/project/NewProjectDialog.h
 dialogs/project/OpenProjectDialog.h
@@ -226,7 +224,7 @@
 TARGET_LINK_LIBRARIES(traverso
        ${QT_LIBRARIES}
        ${QT_QTXML_LIBRARY}
-       traversosongcanvas
+       traversosheetcanvas
        traversocore
        traversoaudiofileio
        traversoaudiobackend

Index: src/traverso/CorrelationMeterWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/CorrelationMeterWidget.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- src/traverso/CorrelationMeterWidget.cpp     15 Jan 2008 19:56:07 -0000      
1.29
+++ src/traverso/CorrelationMeterWidget.cpp     21 Jan 2008 16:22:16 -0000      
1.30
@@ -27,7 +27,7 @@
 #include <ProjectManager.h>
 #include <Project.h>
 #include <InputEngine.h>
-#include <Song.h>
+#include <Sheet.h>
 #include <Themer.h>
 #include <ContextPointer.h>
 #include <Config.h>
@@ -111,7 +111,7 @@
        : ViewItem(0, 0)
        , m_widget(widget)
        , m_meter(0)
-       , m_song(0)
+       , m_sheet(0)
 {
        gradPhase.setColorAt(0.0,  
themer()->get_color("CorrelationMeter:foreground:side"));
        gradPhase.setColorAt(0.5,  
themer()->get_color("CorrelationMeter:foreground:center"));
@@ -223,36 +223,36 @@
 void CorrelationMeterView::set_project(Project *project)
 {
        if (project) {
-               connect(project, SIGNAL(currentSongChanged(Song *)), this, 
SLOT(set_song(Song*)));
+               connect(project, SIGNAL(currentSheetChanged(Sheet *)), this, 
SLOT(set_sheet(Sheet*)));
        } else {
-               set_song(0);
+               set_sheet(0);
                timer.stop();
        }
 }
 
-void CorrelationMeterView::set_song(Song *song)
+void CorrelationMeterView::set_sheet(Sheet *sheet)
 {
        if (m_widget->parentWidget()->isHidden()) {
-               m_song = song;
+               m_sheet = sheet;
                return;
        }
        
 
-       if (m_song) {
+       if (m_sheet) {
                if (m_meter) {
                        // FIXME The removed plugin still needs to be 
deleted!!!!!!
-                       
Command::process_command(m_song->get_plugin_chain()->remove_plugin(m_meter, 
false));
+                       
Command::process_command(m_sheet->get_plugin_chain()->remove_plugin(m_meter, 
false));
                        timer.stop();
                }
        }
        
-       m_song = song;
+       m_sheet = sheet;
        
-       if ( ! m_song ) {
+       if ( ! m_sheet ) {
                return;
        }
        
-       PluginChain* chain = m_song->get_plugin_chain();
+       PluginChain* chain = m_sheet->get_plugin_chain();
        
        foreach(Plugin* plugin, chain->get_plugin_list()) {
                m_meter = dynamic_cast<CorrelationMeter*>(plugin);
@@ -271,9 +271,9 @@
 
 void CorrelationMeterView::hide_event()
 {
-       if (m_song) {
+       if (m_sheet) {
                if (m_meter) {
-                       
Command::process_command(m_song->get_plugin_chain()->remove_plugin(m_meter, 
false));
+                       
Command::process_command(m_sheet->get_plugin_chain()->remove_plugin(m_meter, 
false));
                        timer.stop();
                }
        }
@@ -281,12 +281,12 @@
 
 void CorrelationMeterView::show_event()
 {
-       if (m_song) {
+       if (m_sheet) {
                if (m_meter) {
-                       
Command::process_command(m_song->get_plugin_chain()->add_plugin(m_meter, 
false));
+                       
Command::process_command(m_sheet->get_plugin_chain()->add_plugin(m_meter, 
false));
                        timer.start(40);
                } else {
-                       set_song(m_song);
+                       set_sheet(m_sheet);
                }
        }
 }

Index: src/traverso/CorrelationMeterWidget.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/CorrelationMeterWidget.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/traverso/CorrelationMeterWidget.h       8 Jul 2007 20:51:29 -0000       
1.11
+++ src/traverso/CorrelationMeterWidget.h       21 Jan 2008 16:22:16 -0000      
1.12
@@ -30,7 +30,7 @@
 
 class CorrelationMeter;
 class CorrelationMeterView;
-class Song;
+class Sheet;
 class Project;
 class Command;
 class QLinearGradient;
@@ -79,7 +79,7 @@
        float           coeff;
        float           direction;
        CorrelationMeter*       m_meter;
-       Song*           m_song;
+       Sheet*          m_sheet;
        QLinearGradient gradPhase;
        int             range;
 
@@ -88,7 +88,7 @@
 
 private slots:
        void            set_project( Project* );
-       void            set_song( Song* );
+       void            set_sheet( Sheet* );
        void            update_data();
 
 public slots:

Index: src/traverso/Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -b -r1.122 -r1.123
--- src/traverso/Interface.cpp  7 Jan 2008 19:36:05 -0000       1.122
+++ src/traverso/Interface.cpp  21 Jan 2008 16:22:17 -0000      1.123
@@ -22,7 +22,7 @@
 #include "../config.h"
 
 #include <libtraversocore.h>
-#include "libtraversosongcanvas.h"
+#include "libtraversosheetcanvas.h"
 #include <AudioDevice.h> 
 
 #include <QDockWidget>
@@ -47,7 +47,7 @@
                
 #include "Import.h"
 
-#include "songcanvas/SongWidget.h"
+#include "../sheetcanvas/SheetWidget.h"
 
 #include "ui_QuickStart.h"
 
@@ -58,7 +58,7 @@
 #include "dialogs/project/ProjectManagerDialog.h"
 #include "dialogs/project/OpenProjectDialog.h"
 #include "dialogs/project/NewProjectDialog.h"
-#include "dialogs/project/NewSongDialog.h"
+#include "dialogs/project/NewSheetDialog.h"
 #include "dialogs/project/NewTrackDialog.h"
 #include "dialogs/MarkerDialog.h"
 #include "dialogs/BusSelectorDialog.h"
@@ -167,7 +167,7 @@
        
        
        // Some default values.
-       currentSongWidget = 0;
+       currentSheetWidget = 0;
        m_exportDialog = 0;
        m_cdWritingDialog = 0;
        m_settingsdialog = 0;
@@ -177,7 +177,7 @@
        m_insertSilenceDialog = 0;
        m_markerDialog = 0;
        m_busSelector = 0;
-       m_newSongDialog = 0;
+       m_newSheetDialog = 0;
        m_newTrackDialog = 0;
        m_quickStart = 0;
        m_restoreProjectBackupDialog = 0;
@@ -192,7 +192,7 @@
 
        // Connections to core:
        connect(&pm(), SIGNAL(projectLoaded(Project*)), this, 
SLOT(set_project(Project*)));
-       connect(&pm(), SIGNAL(aboutToDelete(Song*)), this, 
SLOT(delete_songwidget(Song*)));
+       connect(&pm(), SIGNAL(aboutToDelete(Sheet*)), this, 
SLOT(delete_sheetwidget(Sheet*)));
        connect(&pm(), SIGNAL(unsupportedProjectDirChangeDetected()), this, 
SLOT(project_dir_change_detected()));       
        connect(&pm(), SIGNAL(projectLoadFailed(QString,QString)), this, 
SLOT(project_load_failed(QString,QString)));
        connect(&pm(), SIGNAL(projectFileVersionMismatch(QString,QString)), 
this, SLOT(project_file_mismatch(QString,QString)), Qt::QueuedConnection);
@@ -222,24 +222,24 @@
        PENTER;
        
        if ( project ) {
-               connect(project, SIGNAL(currentSongChanged(Song*)), this, 
SLOT(show_song(Song*)));
+               connect(project, SIGNAL(currentSheetChanged(Sheet*)), this, 
SLOT(show_sheet(Sheet*)));
                setWindowTitle(project->get_title() + " - Traverso");
                m_projectSaveAction->setEnabled(true);
-               m_projectSongManagerAction->setEnabled(true);
+               m_projectSheetManagerAction->setEnabled(true);
                m_projectExportAction->setEnabled(true);
-               m_songMenuAction->setEnabled(true);
+               m_sheetMenuAction->setEnabled(true);
 
-               // the project's songs will be deleted _after_
+               // the project's sheets will be deleted _after_
                // the project has been deleted, which will happen after this
-               // function returns. When the songs have been disconnected from 
the
-               // audiodevice, delete_songwidget(Song* song) is called for all 
the songs
-               // in the project. Meanwhile, disable updates of the 
SongWidgets (and implicitily
+               // function returns. When the sheets have been disconnected 
from the
+               // audiodevice, delete_sheetwidget(Sheet* sheet) is called for 
all the sheets
+               // in the project. Meanwhile, disable updates of the 
SheetWidgets (and implicitily
                // all their childrens) to avoid the (unlikely) situation of a 
paint event that 
                // refers to data that was part of the then deleted project!
-               // The reason to not delete the SongWidgets right now is that 
the newly loaded project
-               // now will be able to create and show it's songcanvas first, 
which improves the 
+               // The reason to not delete the SheetWidgets right now is that 
the newly loaded project
+               // now will be able to create and show it's sheetcanvas first, 
which improves the 
                // users experience a lot!
-               foreach(SongWidget* sw, m_songWidgets) {
+               foreach(SheetWidget* sw, m_sheetWidgets) {
                        sw->setUpdatesEnabled(false);
                }
        } else {
@@ -247,66 +247,66 @@
                        hide();
                }
                m_projectSaveAction->setEnabled(false);
-               m_projectSongManagerAction->setEnabled(false);
+               m_projectSheetManagerAction->setEnabled(false);
                m_projectExportAction->setEnabled(false);
-               m_songMenuAction->setEnabled(false);
+               m_sheetMenuAction->setEnabled(false);
                setWindowTitle("Traverso");
                // No project loaded, the currently  loaded project will be 
deleted after this
-               // function returns, if the songcanvas is still painting (due 
playback e.g.) we
+               // function returns, if the sheetcanvas is still painting (due 
playback e.g.) we
                // could get a crash due canvas items refering to data that was 
managed by the project.
-               // so let's delete the SongWidgets before the project is 
deleted!
-               if (m_songWidgets.contains(0)) {
-                       delete m_songWidgets.take(0);
+               // so let's delete the SheetWidgets before the project is 
deleted!
+               if (m_sheetWidgets.contains(0)) {
+                       delete m_sheetWidgets.take(0);
                }
-               foreach(SongWidget* sw, m_songWidgets) {
-                       delete_songwidget(sw->get_song());
+               foreach(SheetWidget* sw, m_sheetWidgets) {
+                       delete_sheetwidget(sw->get_sheet());
                }
        }
 }
 
-void Interface::delete_songwidget(Song* song)
+void Interface::delete_sheetwidget(Sheet* sheet)
 {
-       SongWidget* sw = m_songWidgets.value(song);
+       SheetWidget* sw = m_sheetWidgets.value(sheet);
        if (sw) {
-               m_songWidgets.remove(song);
+               m_sheetWidgets.remove(sheet);
                centerAreaWidget->removeWidget(sw);
                delete sw;
        }
 }
 
 
-void Interface::show_song(Song* song)
+void Interface::show_sheet(Sheet* sheet)
 {
        PENTER;
        
-       SongWidget* songWidget = 0;
+       SheetWidget* sheetWidget = 0;
        
-       if (!song) {
+       if (!sheet) {
                Project* project = pm().get_project();
-               if (project && project->get_songs().size() == 0) {
-                       songWidget = m_songWidgets.value(0);
+               if (project && project->get_sheets().size() == 0) {
+                       sheetWidget = m_sheetWidgets.value(0);
                        
-                       if (!songWidget) {
-                               songWidget = new SongWidget(0, 
centerAreaWidget);
-                               centerAreaWidget->addWidget(songWidget);
-                               m_songWidgets.insert(0, songWidget);
+                       if (!sheetWidget) {
+                               sheetWidget = new SheetWidget(0, 
centerAreaWidget);
+                               centerAreaWidget->addWidget(sheetWidget);
+                               m_sheetWidgets.insert(0, sheetWidget);
                        }
                }
        } else {
-               songWidget = m_songWidgets.value(song);
+               sheetWidget = m_sheetWidgets.value(sheet);
        }
        
-       if (!songWidget) {
-               songWidget = new SongWidget(song, centerAreaWidget);
-               centerAreaWidget->addWidget(songWidget);
-               m_songWidgets.insert(song, songWidget);
+       if (!sheetWidget) {
+               sheetWidget = new SheetWidget(sheet, centerAreaWidget);
+               centerAreaWidget->addWidget(sheetWidget);
+               m_sheetWidgets.insert(sheet, sheetWidget);
        }
-       currentSongWidget = songWidget;
-       
centerAreaWidget->setCurrentIndex(centerAreaWidget->indexOf(songWidget));
-       songWidget->setFocus();
+       currentSheetWidget = sheetWidget;
+       
centerAreaWidget->setCurrentIndex(centerAreaWidget->indexOf(sheetWidget));
+       sheetWidget->setFocus();
        
-       if (song) {
-               pm().get_undogroup()->setActiveStack(song->get_history_stack());
+       if (sheet) {
+               
pm().get_undogroup()->setActiveStack(sheet->get_history_stack());
        }
 }
 
@@ -473,8 +473,8 @@
        QList<QKeySequence> list;
        list.append(QKeySequence("F4"));
        action->setShortcuts(list);
-       action->setIcon(QIcon(find_pixmap(":/songmanager-16")));
-       m_projectSongManagerAction = action;
+       action->setIcon(QIcon(find_pixmap(":/sheetmanager-16")));
+       m_projectSheetManagerAction = action;
        connect(action, SIGNAL(triggered(bool)), this, 
SLOT(show_project_manager_dialog()));
        
        action = menu->addAction(tr("&Export..."));
@@ -510,12 +510,12 @@
        
        
        menu = menuBar()->addMenu(tr("&Sheet"));
-       m_songMenuAction = menu->menuAction();
+       m_sheetMenuAction = menu->menuAction();
        
        action = menu->addAction(tr("New &Track(s)..."));
        connect(action, SIGNAL(triggered()), this, 
SLOT(show_newtrack_dialog()));
        action = menu->addAction(tr("New &Sheet(s)..."));
-       connect(action, SIGNAL(triggered()), this, SLOT(show_newsong_dialog()));
+       connect(action, SIGNAL(triggered()), this, 
SLOT(show_newsheet_dialog()));
 
        menu->addSeparator();
        
@@ -680,8 +680,6 @@
                        action = toplevelmenu->insertMenu(action, menu);
                        QString name = className.remove("View");
 
-                       if (name == "Song") name = "Sheet"; // FIXME!!!
-
                        action->setText(name);
                }
        }
@@ -738,7 +736,7 @@
        
        QMap<QString, QList<const QMetaObject*> > objects;
        
-       QList<const QMetaObject*> songlist; songlist << 
&Song::staticMetaObject; songlist << &SongView::staticMetaObject;
+       QList<const QMetaObject*> sheetlist; sheetlist << 
&Sheet::staticMetaObject; sheetlist << &SheetView::staticMetaObject;
        QList<const QMetaObject*> tracklist; tracklist << 
&Track::staticMetaObject; tracklist << &TrackView::staticMetaObject;
        QList<const QMetaObject*> cliplist; cliplist << 
&AudioClip::staticMetaObject; cliplist << &AudioClipView::staticMetaObject;
        QList<const QMetaObject*> curvelist; curvelist << 
&Curve::staticMetaObject; curvelist << &CurveView::staticMetaObject;
@@ -749,7 +747,7 @@
        QList<const QMetaObject*> interfacelist; interfacelist << 
&Interface::staticMetaObject;
        QList<const QMetaObject*> pmlist; pmlist << 
&ProjectManager::staticMetaObject;
                
-       objects.insert("Sheet", songlist);
+       objects.insert("Sheet", sheetlist);
        objects.insert("Track", tracklist);
        objects.insert("AudioClip", cliplist);
        objects.insert("Curve", curvelist);
@@ -838,8 +836,6 @@
                name = "noname";
        }
 
-       if (name == "Song") name = "Sheet"; // FIXME!!!
-
        QMenu* menu = new QMenu(this);
        menu->installEventFilter(this);
        
@@ -1016,7 +1012,7 @@
 {
        bool toggled = config().get_property("Interface", "OpenGL", 
false).toBool();
 
-       foreach(SongWidget* widget, m_songWidgets) {
+       foreach(SheetWidget* widget, m_sheetWidgets) {
                widget->set_use_opengl(toggled);
        }
        
@@ -1045,8 +1041,8 @@
 
 void Interface::import_audio()
 {
-       if (currentSongWidget->get_song()->get_numtracks() > 0) {
-               QList<Track*> tracks = 
currentSongWidget->get_song()->get_tracks();
+       if (currentSheetWidget->get_sheet()->get_numtracks() > 0) {
+               QList<Track*> tracks = 
currentSheetWidget->get_sheet()->get_tracks();
                Track*  shortestTrack = tracks.first();
 
                foreach(Track* track, tracks) {
@@ -1148,7 +1144,7 @@
        if (! m_markerDialog ) {
                m_markerDialog = new MarkerDialog(this);
        }
-       
m_markerDialog->song_to_be_showed(pm().get_project()->get_current_song());
+       
m_markerDialog->sheet_to_be_showed(pm().get_project()->get_current_sheet());
        m_markerDialog->show();
        
        return 0;
@@ -1159,13 +1155,13 @@
        return QSize(800, 600);
 }
 
-Command* Interface::show_newsong_dialog()
+Command* Interface::show_newsheet_dialog()
 {
-       if (! m_newSongDialog) {
-               m_newSongDialog = new NewSongDialog(this);
+       if (! m_newSheetDialog) {
+               m_newSheetDialog = new NewSheetDialog(this);
        }
        
-       m_newSongDialog->show();
+       m_newSheetDialog->show();
        
        return 0;
 }

Index: src/traverso/Interface.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.h,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -b -r1.50 -r1.51
--- src/traverso/Interface.h    6 Dec 2007 20:51:59 -0000       1.50
+++ src/traverso/Interface.h    21 Jan 2008 16:22:17 -0000      1.51
@@ -26,7 +26,7 @@
 #include <QMainWindow>
 #include <QHash>
 
-class Song;
+class Sheet;
 class Track;
 class Project;
 class BusMonitor;
@@ -49,7 +49,7 @@
 class ResourcesInfoWidget;
 class DriverInfoWidget;
 class HDDSpaceInfoWidget;
-class SongWidget;
+class SheetWidget;
 class CorrelationMeterWidget;
 class SpectralMeterWidget;
 class SettingsDialog;
@@ -60,7 +60,7 @@
 class InsertSilenceDialog;
 class MarkerDialog;
 class BusSelectorDialog;
-class NewSongDialog;
+class NewSheetDialog;
 class NewTrackDialog;
 class NewProjectDialog;
 class Ui_QuickStartDialog;
@@ -98,8 +98,8 @@
 
 private:
        QStackedWidget*         centerAreaWidget;
-       QHash<Song*, SongWidget* > m_songWidgets;
-       SongWidget*             currentSongWidget;
+       QHash<Sheet*, SheetWidget* > m_sheetWidgets;
+       SheetWidget*            currentSheetWidget;
        QList<ViewPort* >       currentProjectViewPortList;
        QHash<QString, QMenu*>  m_contextMenus;
        ExportDialog*           m_exportDialog;
@@ -121,7 +121,7 @@
        InfoToolBar*            m_infoBar;
        SysInfoToolBar*         m_sysinfo;
        BusSelectorDialog*      m_busSelector;
-       NewSongDialog*          m_newSongDialog;
+       NewSheetDialog*         m_newSheetDialog;
        NewTrackDialog*         m_newTrackDialog;
        NewProjectDialog*       m_newProjectDialog;
        QDialog*                m_quickStart;
@@ -132,9 +132,9 @@
        QToolBar*               mainToolBar;
        QToolButton*            openGlButton;
        QAction*                m_projectSaveAction;
-       QAction*                m_projectSongManagerAction;
+       QAction*                m_projectSheetManagerAction;
        QAction*                m_projectExportAction;
-       QAction*                m_songMenuAction;
+       QAction*                m_sheetMenuAction;
        QMenu*                  m_encodingMenu;
        QMenu*                  m_resampleQualityMenu;
        
@@ -152,7 +152,7 @@
 
 public slots :
        void set_project(Project* project);
-       void show_song(Song* song);
+       void show_sheet(Sheet* sheet);
        void show_settings_dialog();
        void open_help_browser();
        void process_context_menu_action(QAction* action);
@@ -182,12 +182,12 @@
        Command* show_restore_project_backup_dialog(QString projectdir);
        Command* show_insertsilence_dialog();
        Command* show_marker_dialog();
-       Command* show_newsong_dialog();
+       Command* show_newsheet_dialog();
        Command* show_newtrack_dialog();
        Command* show_newproject_dialog();
        
 private slots:
-       void delete_songwidget(Song*);
+       void delete_sheetwidget(Sheet*);
        void project_dir_change_detected();
        void project_load_failed(QString project, QString reason);
        void project_file_mismatch(QString rootdir, QString projectname);

Index: src/traverso/SpectralMeterWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/SpectralMeterWidget.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- src/traverso/SpectralMeterWidget.cpp        15 Jan 2008 19:56:07 -0000      
1.48
+++ src/traverso/SpectralMeterWidget.cpp        21 Jan 2008 16:22:17 -0000      
1.49
@@ -29,7 +29,7 @@
 #include <Project.h>
 #include <AudioDevice.h>
 #include <InputEngine.h>
-#include <Song.h>
+#include <Sheet.h>
 #include <ContextPointer.h>
 #include <Themer.h>
 
@@ -121,7 +121,7 @@
                Project* project = pm().get_project(); 
                m_item->set_project(project);
                if (project) {
-                       m_item->set_song(project->get_current_song());
+                       m_item->set_sheet(project->get_current_sheet());
                }
        
                setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -138,7 +138,7 @@
        : ViewItem(0, 0)
        , m_widget(widget)
        , m_meter(0)
-       , m_song(0)
+       , m_sheet(0)
 {
 
        m_config = new SpectralMeterConfigWidget(m_widget);
@@ -340,41 +340,41 @@
 void SpectralMeterView::set_project(Project *project)
 {
        if (project) {
-               connect(project, SIGNAL(currentSongChanged(Song *)), this, 
SLOT(set_song(Song*)));
+               connect(project, SIGNAL(currentSheetChanged(Sheet *)), this, 
SLOT(set_sheet(Sheet*)));
                m_project = project;
        } else {
-               set_song(0);
+               set_sheet(0);
                timer.stop();
        }
 }
 
-void SpectralMeterView::set_song(Song *song)
+void SpectralMeterView::set_sheet(Sheet *sheet)
 {
        if (m_widget->parentWidget()->isHidden()) {
-               m_song = song;
+               m_sheet = sheet;
                return;
        }
        
        
-       if (m_song) {
+       if (m_sheet) {
                if (m_meter) {
                        // FIXME The removed plugin still needs to be 
deleted!!!!!!
-                       
Command::process_command(m_song->get_plugin_chain()->remove_plugin(m_meter, 
false));
+                       
Command::process_command(m_sheet->get_plugin_chain()->remove_plugin(m_meter, 
false));
                        timer.stop();
                }
        }
        
-       m_song = song;
+       m_sheet = sheet;
        
-       if ( ! m_song ) {
+       if ( ! m_sheet ) {
                return;
        }
        
-       PluginChain* chain = m_song->get_plugin_chain();
+       PluginChain* chain = m_sheet->get_plugin_chain();
        sample_rate = audiodevice().get_sample_rate();
        
-       connect(m_song, SIGNAL(transferStarted()), this, 
SLOT(transfer_started()));
-       connect(m_song, SIGNAL(transferStopped()), this, 
SLOT(transfer_stopped()));
+       connect(m_sheet, SIGNAL(transferStarted()), this, 
SLOT(transfer_started()));
+       connect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(transfer_stopped()));
 
        foreach(Plugin* plugin, chain->get_plugin_list()) {
                m_meter = qobject_cast<SpectralMeter*>(plugin);
@@ -395,9 +395,9 @@
 
 void SpectralMeterView::hide_event()
 {
-       if (m_song) {
+       if (m_sheet) {
                if (m_meter) {
-                       
Command::process_command(m_song->get_plugin_chain()->remove_plugin(m_meter, 
false));
+                       
Command::process_command(m_sheet->get_plugin_chain()->remove_plugin(m_meter, 
false));
                        timer.stop();
                }
        }
@@ -405,12 +405,12 @@
 
 void SpectralMeterView::show_event()
 {
-       if (m_song) {
+       if (m_sheet) {
                if (m_meter) {
-                       
Command::process_command(m_song->get_plugin_chain()->add_plugin(m_meter, 
false));
+                       
Command::process_command(m_sheet->get_plugin_chain()->add_plugin(m_meter, 
false));
                        timer.start(UPDATE_INTERVAL);
                } else {
-                       set_song(m_song);
+                       set_sheet(m_sheet);
                }
        }
 }

Index: src/traverso/SpectralMeterWidget.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/SpectralMeterWidget.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- src/traverso/SpectralMeterWidget.h  23 Nov 2007 16:23:28 -0000      1.22
+++ src/traverso/SpectralMeterWidget.h  21 Jan 2008 16:22:17 -0000      1.23
@@ -29,7 +29,7 @@
 #include "ui_SpectralMeterConfigWidget.h"
 #include <QDialog>
 
-class Song;
+class Sheet;
 class Project;
 class QRect;
 class QPixmap;
@@ -104,7 +104,7 @@
        SpectralMeterWidget* m_widget;
        SpectralMeter*  m_meter;
        Project*        m_project;
-       Song*           m_song;
+       Sheet*          m_sheet;
        QTimer          timer;
        QVector<float>  specl;
        QVector<float>  specr;
@@ -157,7 +157,7 @@
 public slots:
        void            set_project( Project* );
        void            load_configuration();
-       void            set_song( Song* );
+       void            set_sheet( Sheet* );
        void            show_event();
 
        Command*        edit_properties();

Index: src/traverso/Traverso.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Traverso.cpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- src/traverso/Traverso.cpp   15 Jan 2008 19:51:49 -0000      1.54
+++ src/traverso/Traverso.cpp   21 Jan 2008 16:22:17 -0000      1.55
@@ -82,7 +82,7 @@
        The AddRemove Command class has to be used for adding/removing items
        to/from ContextItem objects. <br />This class detects if the add/remove 
function
        can be called directly, or in a thread save way, and uses therefore the
-       Tsar class, and the Song object in case it was given as a parameter.<br 
/>
+       Tsar class, and the Sheet object in case it was given as a 
parameter.<br />
        See for more information the AddRemove, AudioDevice and Tsar class
        documentation.
  */

Index: src/traverso/traverso.qrc
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/traverso.qrc,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- src/traverso/traverso.qrc   24 Nov 2007 10:21:29 -0000      1.24
+++ src/traverso/traverso.qrc   21 Jan 2008 16:22:17 -0000      1.25
@@ -8,6 +8,8 @@
                <file 
alias="cursorFloatOverTrack">../../resources/images/cursorFloatOverTrack.xpm</file>
                <file 
alias="cursorFloat">../../resources/images/cursorFloat.xpm</file>
                <file 
alias="cursorZoom">../../resources/images/cursorZoom.xpm</file>
+               <file 
alias="cursorZoomHorizontal">../../resources/images/cursorZoomHorizontal.xpm</file>
+               <file 
alias="cursorZoomVertical">../../resources/images/cursorZoomVertical.xpm</file>
                <file 
alias="cursorHoldLrud">../../resources/images/cursorHoldLrud.xpm</file>
                <file 
alias="cursorHoldLr">../../resources/images/cursorHoldLr.xpm</file>
                <file 
alias="cursorHoldUd">../../resources/images/cursorHoldUd.xpm</file>
@@ -37,7 +39,7 @@
                <file 
alias="playstart">../../resources/images/player_play.png</file>
                <file 
alias="playstop">../../resources/images/player_stop.png</file>
                <file 
alias="projectmanagement">../../resources/images/icons/32X32/projects.png</file>
-               <file 
alias="songmanagement">../../resources/images/icons/32X32/songs.png</file>
+               <file 
alias="sheetmanagement">../../resources/images/icons/32X32/sheets.png</file>
                <file 
alias="audiosourcesmanagement">../../resources/images/icons/32X32/audiosources.png</file>
                <file 
alias="exit-16">../../resources/images/icons/16x16/exit.png</file>
                <file 
alias="undo-16">../../resources/images/icons/16x16/undo.png</file>
@@ -45,7 +47,7 @@
                <file 
alias="redled-16">../../resources/images/icons/16x16/redled.png</file>
                <file 
alias="refresh-16">../../resources/images/icons/16x16/reload.png</file>
                <file 
alias="redledinactive-16">../../resources/images/icons/16x16/redledinactive.png</file>
-               <file 
alias="songmanager-16">../../resources/images/icons/16x16/contents.png</file>
+               <file 
alias="sheetmanager-16">../../resources/images/icons/16x16/contents.png</file>
                <file 
alias="new-16">../../resources/images/icons/16x16/new.png</file>
                <file alias="traverso_nl">../../traverso_nl.qm</file>
                <file alias="traverso_de">../../traverso_de.qm</file>

Index: src/traverso/ui/CDWritingDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/CDWritingDialog.ui,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/traverso/ui/CDWritingDialog.ui  22 Nov 2007 15:07:02 -0000      1.3
+++ src/traverso/ui/CDWritingDialog.ui  21 Jan 2008 16:22:17 -0000      1.4
@@ -40,7 +40,7 @@
          <number>6</number>
         </property>
         <item>
-         <widget class="QRadioButton" name="cdCurrentSongButton" >
+         <widget class="QRadioButton" name="cdCurrentSheetButton" >
           <property name="text" >
            <string>Write current Sheet</string>
           </property>
@@ -50,7 +50,7 @@
          </widget>
         </item>
         <item>
-         <widget class="QRadioButton" name="cdAllSongsButton" >
+         <widget class="QRadioButton" name="cdAllSheetsButton" >
           <property name="text" >
            <string>Write all Sheets</string>
           </property>

Index: src/traverso/ui/ExportDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/ExportDialog.ui,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/traverso/ui/ExportDialog.ui     17 Oct 2007 18:28:15 -0000      1.5
+++ src/traverso/ui/ExportDialog.ui     21 Jan 2008 16:22:17 -0000      1.6
@@ -62,7 +62,7 @@
          <number>6</number>
         </property>
         <item>
-         <widget class="QRadioButton" name="currentSongButton" >
+         <widget class="QRadioButton" name="currentSheetButton" >
           <property name="text" >
            <string>Export current Sheet</string>
           </property>
@@ -72,7 +72,7 @@
          </widget>
         </item>
         <item>
-         <widget class="QRadioButton" name="allSongsButton" >
+         <widget class="QRadioButton" name="allSheetsButton" >
           <property name="text" >
            <string>Export all Sheets</string>
           </property>
@@ -821,7 +821,7 @@
          <number>6</number>
         </property>
         <item>
-         <widget class="QLabel" name="currentProcessingSongName" >
+         <widget class="QLabel" name="currentProcessingSheetName" >
           <property name="text" >
            <string>-</string>
           </property>

Index: src/traverso/ui/MarkerDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/MarkerDialog.ui,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/traverso/ui/MarkerDialog.ui     21 May 2007 08:49:46 -0000      1.6
+++ src/traverso/ui/MarkerDialog.ui     21 Jan 2008 16:22:18 -0000      1.7
@@ -35,12 +35,12 @@
       </widget>
      </item>
      <item>
-      <widget class="QComboBox" name="comboBoxDisplaySong" />
+      <widget class="QComboBox" name="comboBoxDisplaySheet" />
      </item>
      <item>
-      <widget class="QCheckBox" name="checkBoxAllSongs" >
+      <widget class="QCheckBox" name="checkBoxAllSheets" >
        <property name="text" >
-        <string>all Songs</string>
+        <string>all Sheets</string>
        </property>
       </widget>
      </item>
@@ -56,7 +56,7 @@
      </property>
      <column>
       <property name="text" >
-       <string>Song</string>
+       <string>Sheet</string>
       </property>
      </column>
      <column>
@@ -250,15 +250,15 @@
        <item row="0" column="0" >
         <widget class="QLabel" name="label_4" >
          <property name="text" >
-          <string>Songwriter</string>
+          <string>Sheetwriter</string>
          </property>
         </widget>
        </item>
        <item row="0" column="1" >
-        <widget class="QLineEdit" name="lineEditSongwriter" />
+        <widget class="QLineEdit" name="lineEditSheetwriter" />
        </item>
        <item row="0" column="2" >
-        <widget class="QToolButton" name="toolButtonSongwriterAll" >
+        <widget class="QToolButton" name="toolButtonSheetwriterAll" >
          <property name="toolTip" >
           <string>Apply to all</string>
          </property>
@@ -383,8 +383,8 @@
   <tabstop>toolButtonPerformerAll</tabstop>
   <tabstop>lineEditComposer</tabstop>
   <tabstop>toolButtonComposerAll</tabstop>
-  <tabstop>lineEditSongwriter</tabstop>
-  <tabstop>toolButtonSongwriterAll</tabstop>
+  <tabstop>lineEditSheetwriter</tabstop>
+  <tabstop>toolButtonSheetwriterAll</tabstop>
   <tabstop>lineEditArranger</tabstop>
   <tabstop>toolButtonArrangerAll</tabstop>
   <tabstop>lineEditMessage</tabstop>
@@ -410,9 +410,9 @@
    </hints>
   </connection>
   <connection>
-   <sender>checkBoxAllSongs</sender>
+   <sender>checkBoxAllSheets</sender>
    <signal>toggled(bool)</signal>
-   <receiver>comboBoxDisplaySong</receiver>
+   <receiver>comboBoxDisplaySheet</receiver>
    <slot>setDisabled(bool)</slot>
    <hints>
     <hint type="sourcelabel" >

Index: src/traverso/ui/NewProjectDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/NewProjectDialog.ui,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/traverso/ui/NewProjectDialog.ui 24 May 2007 11:53:25 -0000      1.3
+++ src/traverso/ui/NewProjectDialog.ui 21 Jan 2008 16:22:18 -0000      1.4
@@ -166,7 +166,7 @@
          </widget>
         </item>
         <item>
-         <widget class="QSpinBox" name="songCountSpinBox" >
+         <widget class="QSpinBox" name="sheetCountSpinBox" >
           <property name="sizePolicy" >
            <sizepolicy>
             <hsizetype>1</hsizetype>

Index: src/traverso/ui/ProjectManagerDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/ProjectManagerDialog.ui,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- src/traverso/ui/ProjectManagerDialog.ui     26 Jun 2007 18:07:57 -0000      
1.15
+++ src/traverso/ui/ProjectManagerDialog.ui     21 Jan 2008 16:22:18 -0000      
1.16
@@ -167,7 +167,7 @@
            <number>9</number>
           </property>
           <item>
-           <widget class="QPushButton" name="songsExportButton" >
+           <widget class="QPushButton" name="sheetsExportButton" >
             <property name="text" >
              <string>Sheet(s)</string>
             </property>
@@ -226,7 +226,7 @@
         <number>6</number>
        </property>
        <item>
-        <widget class="QTreeWidget" name="treeSongWidget" >
+        <widget class="QTreeWidget" name="treeSheetWidget" >
          <property name="sizePolicy" >
           <sizepolicy>
            <hsizetype>0</hsizetype>
@@ -279,7 +279,7 @@
              <number>6</number>
             </property>
             <item>
-             <widget class="QLineEdit" name="selectedSongName" >
+             <widget class="QLineEdit" name="selectedSheetName" >
               <property name="minimumSize" >
                <size>
                 <width>0</width>
@@ -297,7 +297,7 @@
                <number>6</number>
               </property>
               <item>
-               <widget class="QPushButton" name="deleteSongButton" >
+               <widget class="QPushButton" name="deleteSheetButton" >
                 <property name="text" >
                  <string>Delete</string>
                 </property>
@@ -323,7 +323,7 @@
                </spacer>
               </item>
               <item>
-               <widget class="QPushButton" name="renameSongButton" >
+               <widget class="QPushButton" name="renameSheetButton" >
                 <property name="text" >
                  <string>Rename</string>
                 </property>
@@ -355,7 +355,7 @@
                <number>6</number>
               </property>
               <item>
-               <widget class="QPushButton" name="createSongButton" >
+               <widget class="QPushButton" name="createSheetButton" >
                 <property name="text" >
                  <string>Create new Sheet</string>
                 </property>
@@ -625,12 +625,12 @@
        <item row="5" column="0" >
         <widget class="QLabel" name="label_9" >
          <property name="text" >
-          <string>Songwriter</string>
+          <string>Sheetwriter</string>
          </property>
         </widget>
        </item>
        <item row="5" column="1" colspan="2" >
-        <widget class="QLineEdit" name="lineEditSongwriter" />
+        <widget class="QLineEdit" name="lineEditSheetwriter" />
        </item>
        <item row="6" column="0" >
         <widget class="QLabel" name="label_10" >

Index: src/traverso/ui/ResourcesWidget.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/ResourcesWidget.ui,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/traverso/ui/ResourcesWidget.ui  21 May 2007 08:49:46 -0000      1.5
+++ src/traverso/ui/ResourcesWidget.ui  21 Jan 2008 16:22:18 -0000      1.6
@@ -50,7 +50,7 @@
       </widget>
      </item>
      <item>
-      <widget class="QComboBox" name="songComboBox" />
+      <widget class="QComboBox" name="sheetComboBox" />
      </item>
      <item>
       <spacer>

Index: src/traverso/widgets/InfoWidgets.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.cpp,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -b -r1.53 -r1.54
--- src/traverso/widgets/InfoWidgets.cpp        2 Jan 2008 19:23:59 -0000       
1.53
+++ src/traverso/widgets/InfoWidgets.cpp        21 Jan 2008 16:22:18 -0000      
1.54
@@ -119,10 +119,10 @@
        int bufWriteStatus = 100;
        
        if (m_project) {
-               foreach(Song* song, m_project->get_songs() ) {
-                       bufReadStatus = 
std::min(song->get_diskio()->get_read_buffers_fill_status(), bufReadStatus);
-                       bufWriteStatus = 
std::min(song->get_diskio()->get_write_buffers_fill_status(), bufWriteStatus);
-                       time += song->get_diskio()->get_cpu_time();
+               foreach(Sheet* sheet, m_project->get_sheets() ) {
+                       bufReadStatus = 
std::min(sheet->get_diskio()->get_read_buffers_fill_status(), bufReadStatus);
+                       bufWriteStatus = 
std::min(sheet->get_diskio()->get_write_buffers_fill_status(), bufWriteStatus);
+                       time += sheet->get_diskio()->get_cpu_time();
                }
        }
 
@@ -252,29 +252,29 @@
 }
 
 
-void HDDSpaceInfo::set_song(Song* song)
+void HDDSpaceInfo::set_sheet(Sheet* sheet)
 {
-       m_song = song;
+       m_sheet = sheet;
        
-       if (! m_song) {
+       if (! m_sheet) {
                updateTimer.start(20000);
                return;
        }
        
        update_status();
        
-       connect(m_song, SIGNAL(transferStopped()), this, SLOT(song_stopped()));
-       connect(m_song, SIGNAL(transferStarted()), this, SLOT(song_started()));
+       connect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(sheet_stopped()));
+       connect(m_sheet, SIGNAL(transferStarted()), this, 
SLOT(sheet_started()));
 }
 
-void HDDSpaceInfo::song_started()
+void HDDSpaceInfo::sheet_started()
 {
        updateTimer.start(5000);
        m_button->setEnabled(true);
        update_status();
 }
 
-void HDDSpaceInfo::song_stopped()
+void HDDSpaceInfo::sheet_stopped()
 {
        updateTimer.start(60000);
        m_button->setEnabled(false);
@@ -318,19 +318,19 @@
 #endif
 #endif
 
-       QList<Song*> recordingSongs;
-       foreach(Song* song, m_project->get_songs()) {
-               if (song->is_recording() && song->any_track_armed()) {
-                       recordingSongs.append(song);
+       QList<Sheet*> recordingSheets;
+       foreach(Sheet* sheet, m_project->get_sheets()) {
+               if (sheet->is_recording() && sheet->any_track_armed()) {
+                       recordingSheets.append(sheet);
                }
        }
        
        QString text;
        
-       if (recordingSongs.size()) {
+       if (recordingSheets.size()) {
                int recChannelCount = 0;
-               foreach(Song* song, recordingSongs) {
-                       foreach(Track* track, song->get_tracks()) {
+               foreach(Sheet* sheet, recordingSheets) {
+                       foreach(Track* track, sheet->get_tracks()) {
                                if (track->armed()) {
                                        recChannelCount += 
track->capture_left_channel() ? 1 : 0;
                                        recChannelCount += 
track->capture_right_channel() ? 1 : 0;
@@ -396,28 +396,28 @@
 void PlayHeadInfo::set_project(Project* project )
 {
        if (! project) {
-               stop_song_update_timer();
+               stop_sheet_update_timer();
        }
        
        InfoWidget::set_project(project);
 }
 
-void PlayHeadInfo::set_song(Song* song)
+void PlayHeadInfo::set_sheet(Sheet* sheet)
 {
-       m_song = song;
+       m_sheet = sheet;
        
-       if (!m_song) {
-               stop_song_update_timer();
+       if (!m_sheet) {
+               stop_sheet_update_timer();
                m_playpixmap = find_pixmap(":/playstart");
                return;
        }
        
-       connect(m_song, SIGNAL(transferStopped()), this, 
SLOT(stop_song_update_timer()));
-       connect(m_song, SIGNAL(transferStarted()), this, 
SLOT(start_song_update_timer()));
-       connect(m_song, SIGNAL(transportPosSet()), this, SLOT(update()));
+       connect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(stop_sheet_update_timer()));
+       connect(m_sheet, SIGNAL(transferStarted()), this, 
SLOT(start_sheet_update_timer()));
+       connect(m_sheet, SIGNAL(transportPosSet()), this, SLOT(update()));
        
        
-       if (m_song->is_transport_rolling()) {
+       if (m_sheet->is_transport_rolling()) {
                m_playpixmap = find_pixmap(":/playstop");
        } else {
                m_playpixmap = find_pixmap(":/playstart");
@@ -431,16 +431,16 @@
        QPainter painter(this);
        QString currentTime;
        
-       if (!m_song) {
+       if (!m_sheet) {
                currentTime = "0:00.0";
        } else {
-               currentTime = timeref_to_ms_2(m_song->get_transport_location());
+               currentTime = 
timeref_to_ms_2(m_sheet->get_transport_location());
        }
        
        int fc = 170;
        QColor fontcolor = QColor(fc, fc, fc);
        
-       if (m_song && m_song->is_transport_rolling()) {
+       if (m_sheet && m_sheet->is_transport_rolling()) {
                fc = 60;
                fontcolor = QColor(fc, fc, fc);
        }
@@ -453,13 +453,13 @@
        painter.drawText(QRect(12, 4, width() - 6, height() - 6), 
Qt::AlignCenter, currentTime);
 }
 
-void PlayHeadInfo::start_song_update_timer( )
+void PlayHeadInfo::start_sheet_update_timer( )
 {
        m_playpixmap = find_pixmap(":/playstop");
        m_updateTimer.start(150);
 }
 
-void PlayHeadInfo::stop_song_update_timer( )
+void PlayHeadInfo::stop_sheet_update_timer( )
 {
        m_updateTimer.stop();
        m_playpixmap = find_pixmap(":/playstart");
@@ -492,12 +492,12 @@
 
 void PlayHeadInfo::mousePressEvent(QMouseEvent * event)
 {
-       if (! m_song) {
+       if (! m_sheet) {
                return;
        }
        
        if (event->button() == Qt::LeftButton) {
-               m_song->start_transport();
+               m_sheet->start_transport();
        }
 }
 
@@ -511,16 +511,16 @@
        
        setMovable(false);
        
-       m_songinfo = new SongInfo(this);
+       m_sheetinfo = new SheetInfo(this);
        
-       QAction* action = addWidget(m_songinfo);
+       QAction* action = addWidget(m_sheetinfo);
        action->setVisible(true);
 }
 
 
 InfoWidget::InfoWidget(QWidget* parent)
        : QFrame(parent)
-       , m_song(0)
+       , m_sheet(0)
        , m_project(0)
 {
        setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
@@ -534,25 +534,25 @@
 {
        m_project = project;
        if (m_project) {
-               connect(m_project, SIGNAL(currentSongChanged(Song*)), this, 
SLOT(set_song(Song*)));
+               connect(m_project, SIGNAL(currentSheetChanged(Sheet*)), this, 
SLOT(set_sheet(Sheet*)));
        } else {
-               set_song(0);
+               set_sheet(0);
        }
 }
 
-void InfoWidget::set_song(Song* song)
+void InfoWidget::set_sheet(Sheet* sheet)
 {
-       m_song = song;
+       m_sheet = sheet;
 }
 
 
-SongInfo::SongInfo(QWidget * parent)
+SheetInfo::SheetInfo(QWidget * parent)
        : InfoWidget(parent)
 {
-       m_songselectbox = new QComboBox(this);
-       m_songselectbox->setMinimumWidth(140);
-       m_songselectbox->setToolTip(tr("Select Sheet to be displayed"));
-       connect(m_songselectbox, SIGNAL(activated(int)), this, 
SLOT(song_selector_index_changed(int)));
+       m_sheetselectbox = new QComboBox(this);
+       m_sheetselectbox->setMinimumWidth(140);
+       m_sheetselectbox->setToolTip(tr("Select Sheet to be displayed"));
+       connect(m_sheetselectbox, SIGNAL(activated(int)), this, 
SLOT(sheet_selector_index_changed(int)));
        
        m_playhead = new PlayHeadInfo(this);
 
@@ -611,7 +611,7 @@
        lay->addWidget(m_playhead);
        lay->addStretch(5);
        lay->addWidget(m_effectButton);
-       lay->addWidget(m_songselectbox);
+       lay->addWidget(m_sheetselectbox);
                
        setLayout(lay);
        lay->setMargin(0);
@@ -628,34 +628,34 @@
        update_follow_state();
 }
 
-void SongInfo::set_project(Project * project)
+void SheetInfo::set_project(Project * project)
 {
        m_project = project;
        
        if (!project) {
-               m_songselectbox->clear();
-               set_song(0);
+               m_sheetselectbox->clear();
+               set_sheet(0);
                return;
        }
        
-       connect(m_project, SIGNAL(songAdded(Song*)), this, 
SLOT(song_selector_song_added(Song*)));
-       connect(m_project, SIGNAL(songRemoved(Song*)), this, 
SLOT(song_selector_song_removed(Song*)));
-       connect(m_project, SIGNAL(currentSongChanged(Song*)), this, 
SLOT(song_selector_change_index_to(Song*)));
-       connect(m_project, SIGNAL(currentSongChanged(Song*)), this, 
SLOT(set_song(Song*)));
+       connect(m_project, SIGNAL(sheetAdded(Sheet*)), this, 
SLOT(sheet_selector_sheet_added(Sheet*)));
+       connect(m_project, SIGNAL(sheetRemoved(Sheet*)), this, 
SLOT(sheet_selector_sheet_removed(Sheet*)));
+       connect(m_project, SIGNAL(currentSheetChanged(Sheet*)), this, 
SLOT(sheet_selector_change_index_to(Sheet*)));
+       connect(m_project, SIGNAL(currentSheetChanged(Sheet*)), this, 
SLOT(set_sheet(Sheet*)));
        
-       song_selector_update_songs();
+       sheet_selector_update_sheets();
 }
 
-void SongInfo::set_song(Song* song)
+void SheetInfo::set_sheet(Sheet* sheet)
 {
-       m_song = song;
+       m_sheet = sheet;
        
-       if (m_song) {
-               connect(m_song, SIGNAL(snapChanged()), this, 
SLOT(update_snap_state()));
-               connect(m_song, SIGNAL(modeChanged()), this, 
SLOT(update_effects_state()));
-               connect(m_song, SIGNAL(tempFollowChanged(bool)), this, 
SLOT(update_temp_follow_state(bool)));
-               connect(m_song, SIGNAL(recordingStateChanged()), this, 
SLOT(update_recording_state()));
-               connect(m_song, SIGNAL(transferStopped()), this, 
SLOT(update_follow_state()));
+       if (m_sheet) {
+               connect(m_sheet, SIGNAL(snapChanged()), this, 
SLOT(update_snap_state()));
+               connect(m_sheet, SIGNAL(modeChanged()), this, 
SLOT(update_effects_state()));
+               connect(m_sheet, SIGNAL(tempFollowChanged(bool)), this, 
SLOT(update_temp_follow_state(bool)));
+               connect(m_sheet, SIGNAL(recordingStateChanged()), this, 
SLOT(update_recording_state()));
+               connect(m_sheet, SIGNAL(transferStopped()), this, 
SLOT(update_follow_state()));
                update_snap_state();
                update_effects_state();
                update_recording_state();
@@ -671,84 +671,84 @@
        }
 }
 
-void SongInfo::update_snap_state()
+void SheetInfo::update_snap_state()
 {
-       m_snapAct->setChecked(m_song->is_snap_on());
+       m_snapAct->setChecked(m_sheet->is_snap_on());
 }
 
-void SongInfo::update_effects_state()
+void SheetInfo::update_effects_state()
 {
-       if (!m_song) {
+       if (!m_sheet) {
                return;
        }
        
-       if (m_song->get_mode() == Song::EDIT) {
+       if (m_sheet->get_mode() == Sheet::EDIT) {
                m_effectButton->setChecked(false);
        } else {
                m_effectButton->setChecked(true);
        }
 }
 
-void SongInfo::snap_state_changed(bool state)
+void SheetInfo::snap_state_changed(bool state)
 {
-       if (! m_song) {
+       if (! m_sheet) {
                return;
        }
-       m_song->set_snapping(state);
+       m_sheet->set_snapping(state);
 }
 
-void SongInfo::update_follow_state()
+void SheetInfo::update_follow_state()
 {
        m_isFollowing = config().get_property("PlayHead", "Follow", 
true).toBool();
        m_followAct->setChecked(m_isFollowing);
 }
 
-void SongInfo::update_temp_follow_state(bool state)
+void SheetInfo::update_temp_follow_state(bool state)
 {
-       if (m_song->is_transport_rolling() && m_isFollowing) {
+       if (m_sheet->is_transport_rolling() && m_isFollowing) {
                m_followAct->setChecked(state);
        }
 }
 
-void SongInfo::follow_state_changed(bool state)
+void SheetInfo::follow_state_changed(bool state)
 {
-       if (!m_song) {
+       if (!m_sheet) {
                return;
        }
        
-       if (!m_song->is_transport_rolling() || !m_isFollowing) {
+       if (!m_sheet->is_transport_rolling() || !m_isFollowing) {
                m_isFollowing = state;
                config().set_property("PlayHead", "Follow", state);
                config().save();
-               if (m_song->is_transport_rolling()) {
-                       m_song->set_temp_follow_state(state);
+               if (m_sheet->is_transport_rolling()) {
+                       m_sheet->set_temp_follow_state(state);
                }
        } else {
-               m_song->set_temp_follow_state(state);
+               m_sheet->set_temp_follow_state(state);
        }
 }
 
-void SongInfo::effect_button_clicked()
+void SheetInfo::effect_button_clicked()
 {
-       if (m_song->get_mode() == Song::EDIT) {
-               m_song->set_effects_mode();
+       if (m_sheet->get_mode() == Sheet::EDIT) {
+               m_sheet->set_effects_mode();
        } else {
-               m_song->set_editing_mode();
+               m_sheet->set_editing_mode();
        }
 }
 
-void SongInfo::recording_button_clicked()
+void SheetInfo::recording_button_clicked()
 {
-       m_song->set_recordable();
+       m_sheet->set_recordable();
 }
 
-void SongInfo::update_recording_state()
+void SheetInfo::update_recording_state()
 {
-       if (m_song->is_recording()) {
+       if (m_sheet->is_recording()) {
                m_recAction->setIcon(find_pixmap(":/redled-16"));
                QString recordFormat = config().get_property("Recording", 
"FileFormat", "wav").toString();
                int count = 0;
-               foreach(Track* track, m_song->get_tracks()) {
+               foreach(Track* track, m_sheet->get_tracks()) {
                        if (track->armed()) {
                                count++;
                        }
@@ -760,49 +760,49 @@
 }
 
 
-QSize SongInfo::sizeHint() const
+QSize SheetInfo::sizeHint() const
 {
        return QSize(400, SONG_TOOLBAR_HEIGHT);
 }
 
-void SongInfo::song_selector_update_songs()
+void SheetInfo::sheet_selector_update_sheets()
 {
-       m_songselectbox->clear();
-       foreach(Song* song, m_project->get_songs()) {
-               m_songselectbox->addItem("Sheet " +
-                               
QString::number(m_project->get_song_index(song->get_id())) +
-                               ": " + song->get_title(),
-                               song->get_id());
+       m_sheetselectbox->clear();
+       foreach(Sheet* sheet, m_project->get_sheets()) {
+               m_sheetselectbox->addItem("Sheet " +
+                               
QString::number(m_project->get_sheet_index(sheet->get_id())) +
+                               ": " + sheet->get_title(),
+                               sheet->get_id());
        }
 }
 
-void SongInfo::song_selector_song_added(Song * song)
+void SheetInfo::sheet_selector_sheet_added(Sheet * sheet)
 {
-       connect(song, SIGNAL(propertyChanged()), this, 
SLOT(song_selector_update_songs()));
-       song_selector_update_songs();
+       connect(sheet, SIGNAL(propertyChanged()), this, 
SLOT(sheet_selector_update_sheets()));
+       sheet_selector_update_sheets();
 }
 
-void SongInfo::song_selector_song_removed(Song * song)
+void SheetInfo::sheet_selector_sheet_removed(Sheet * sheet)
 {
-       disconnect(song, SIGNAL(propertyChanged()), this, 
SLOT(song_selector_update_songs()));
-       song_selector_update_songs();
+       disconnect(sheet, SIGNAL(propertyChanged()), this, 
SLOT(sheet_selector_update_sheets()));
+       sheet_selector_update_sheets();
 }
 
-void SongInfo::song_selector_index_changed(int index)
+void SheetInfo::sheet_selector_index_changed(int index)
 {
-       qint64 id = m_songselectbox->itemData(index).toLongLong();
+       qint64 id = m_sheetselectbox->itemData(index).toLongLong();
        
-       m_project->set_current_song(id);
+       m_project->set_current_sheet(id);
 }
 
-void SongInfo::song_selector_change_index_to(Song* song)
+void SheetInfo::sheet_selector_change_index_to(Sheet* sheet)
 {
-       if (!song) {
+       if (!sheet) {
                return;
        }
        
-       int index = m_songselectbox->findData(song->get_id());
-       m_songselectbox->setCurrentIndex(index);
+       int index = m_sheetselectbox->findData(sheet->get_id());
+       m_sheetselectbox->setCurrentIndex(index);
 }
 
 

Index: src/traverso/widgets/InfoWidgets.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- src/traverso/widgets/InfoWidgets.h  3 Jun 2007 17:14:17 -0000       1.19
+++ src/traverso/widgets/InfoWidgets.h  21 Jan 2008 16:22:18 -0000      1.20
@@ -34,7 +34,7 @@
 #include <QMenu>
 
 class Project;
-class Song;
+class Sheet;
 class QuickDriverConfigWidget;
 class MessageWidget;
 class SystemValueBar;
@@ -48,7 +48,7 @@
        InfoWidget(QWidget* parent = 0);
 
 protected:
-       Song*           m_song;
+       Sheet*          m_sheet;
        Project*        m_project;
        
        virtual QSize sizeHint() const {return QSize(size());}
@@ -57,7 +57,7 @@
        friend class InfoToolBar;
 
 protected slots:
-       virtual void set_song(Song* );
+       virtual void set_sheet(Sheet* );
        virtual void set_project(Project* );
 };
 
@@ -129,12 +129,12 @@
        QPushButton* m_button;
 
 private slots:
-       void set_song(Song* );
+       void set_sheet(Sheet* );
 
 private slots:
        void update_status();
-       void song_started();
-       void song_stopped();
+       void sheet_started();
+       void sheet_stopped();
 };
 
 
@@ -161,20 +161,20 @@
 
 protected slots:
        void set_project(Project* );
-       void set_song(Song* );
+       void set_sheet(Sheet* );
        
 private slots:
-       void start_song_update_timer();
-       void stop_song_update_timer();
+       void start_sheet_update_timer();
+       void stop_sheet_update_timer();
 };
 
 
 
-class SongInfo : public InfoWidget
+class SheetInfo : public InfoWidget
 {
        Q_OBJECT
 public:
-       SongInfo(QWidget* parent);
+       SheetInfo(QWidget* parent);
        QAction *get_snap_action() {return m_snapAct;};
        QAction *get_follow_action() {return m_followAct;};
        
@@ -183,7 +183,7 @@
        
 protected slots:
        void set_project(Project* project);
-       void set_song(Song* );
+       void set_sheet(Sheet* );
        
 private slots:
        void update_snap_state();
@@ -195,17 +195,17 @@
        void effect_button_clicked();
        void recording_button_clicked();
        void update_recording_state();
-       void song_selector_song_added(Song* song);
-       void song_selector_song_removed(Song* song);
-       void song_selector_update_songs();
-       void song_selector_change_index_to(Song* song);
-       void song_selector_index_changed(int index);
+       void sheet_selector_sheet_added(Sheet* sheet);
+       void sheet_selector_sheet_removed(Sheet* sheet);
+       void sheet_selector_update_sheets();
+       void sheet_selector_change_index_to(Sheet* sheet);
+       void sheet_selector_index_changed(int index);
        
 private:
        PlayHeadInfo*   m_playhead;
        QToolButton*    m_snap;
        QToolButton*    m_effectButton;
-       QComboBox*      m_songselectbox;
+       QComboBox*      m_sheetselectbox;
        QAction*        m_snapAct;
        QToolButton*    m_follow;
        QAction*        m_followAct;
@@ -219,11 +219,11 @@
 {
 public:
        InfoToolBar(QWidget* parent);
-       QAction *get_snap_action() {return m_songinfo->get_snap_action();};
-       QAction *get_follow_action() {return m_songinfo->get_follow_action();};
+       QAction *get_snap_action() {return m_sheetinfo->get_snap_action();};
+       QAction *get_follow_action() {return m_sheetinfo->get_follow_action();};
 
 private:
-       SongInfo*       m_songinfo;
+       SheetInfo*      m_sheetinfo;
 };
 
 

Index: src/traverso/widgets/ResourcesWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/ResourcesWidget.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- src/traverso/widgets/ResourcesWidget.cpp    29 Nov 2007 11:04:08 -0000      
1.39
+++ src/traverso/widgets/ResourcesWidget.cpp    21 Jan 2008 16:22:18 -0000      
1.40
@@ -23,7 +23,7 @@
 
 #include <ProjectManager.h>
 #include <Project.h>
-#include <Song.h>
+#include <Sheet.h>
 #include <ResourcesManager.h>
 #include <AudioSource.h>
 #include <ReadSource.h>
@@ -204,13 +204,13 @@
        layout()->addWidget(m_filewidget);
        m_filewidget->hide();
        
-       m_currentSong = 0;
+       m_currentSheet = 0;
        m_project = 0;
        
        
        connect(viewComboBox, SIGNAL(currentIndexChanged(int)), this, 
SLOT(view_combo_box_index_changed(int)));
-       connect(songComboBox, SIGNAL(currentIndexChanged(int)), this, 
SLOT(song_combo_box_index_changed(int)));
-       connect(songComboBox, SIGNAL(activated(int)), this, 
SLOT(song_combo_box_index_changed(int)));
+       connect(sheetComboBox, SIGNAL(currentIndexChanged(int)), this, 
SLOT(sheet_combo_box_index_changed(int)));
+       connect(sheetComboBox, SIGNAL(activated(int)), this, 
SLOT(sheet_combo_box_index_changed(int)));
        connect(&pm(), SIGNAL(projectLoaded(Project*)), this, 
SLOT(set_project(Project*)));
        
        set_project(pm().get_project());
@@ -224,17 +224,17 @@
        sourcesTreeWidget->clear();
        m_sourceindices.clear();
        m_clipindices.clear();
-       songComboBox->clear();
+       sheetComboBox->clear();
        
        m_project = project;
        
        if (!m_project) {
-               songComboBox->setEnabled(false);
-               m_currentSong = 0;
+               sheetComboBox->setEnabled(false);
+               m_currentSheet = 0;
                return;
        }
        
-       songComboBox->setEnabled(true);
+       sheetComboBox->setEnabled(true);
        
        connect(m_project, SIGNAL(projectLoadFinished()), this, 
SLOT(project_load_finished()));
 }
@@ -247,9 +247,9 @@
        
        ResourcesManager* rsmanager = m_project->get_audiosource_manager();
        
-       connect(m_project, SIGNAL(songAdded(Song*)), this, 
SLOT(song_added(Song*)));
-       connect(m_project, SIGNAL(songRemoved(Song*)), this, 
SLOT(song_removed(Song*)));
-       connect(m_project, SIGNAL(currentSongChanged(Song*)), this, 
SLOT(set_current_song(Song*)));
+       connect(m_project, SIGNAL(sheetAdded(Sheet*)), this, 
SLOT(sheet_added(Sheet*)));
+       connect(m_project, SIGNAL(sheetRemoved(Sheet*)), this, 
SLOT(sheet_removed(Sheet*)));
+       connect(m_project, SIGNAL(currentSheetChanged(Sheet*)), this, 
SLOT(set_current_sheet(Sheet*)));
        
        connect(rsmanager, SIGNAL(clipAdded(AudioClip*)), this, 
SLOT(add_clip(AudioClip*)));
        connect(rsmanager, SIGNAL(clipRemoved(AudioClip*)), this, 
SLOT(remove_clip(AudioClip*)));
@@ -264,11 +264,11 @@
                add_clip(clip);
        }
        
-       foreach(Song* song, m_project->get_songs()) {
-               song_added(song);
+       foreach(Sheet* sheet, m_project->get_sheets()) {
+               sheet_added(sheet);
        }
        
-       set_current_song(m_project->get_current_song());
+       set_current_sheet(m_project->get_current_sheet());
 
        sourcesTreeWidget->sortItems(0, Qt::AscendingOrder);
 }
@@ -277,66 +277,66 @@
 {
        if (index == 0) {
                sourcesTreeWidget->show();
-               songComboBox->show();
+               sheetComboBox->show();
                m_filewidget->hide();
        } else if (index == 1) {
                sourcesTreeWidget->hide();
-               songComboBox->hide();
+               sheetComboBox->hide();
                m_filewidget->show();
                m_filewidget->set_current_path(m_project->get_import_dir());
        }
 }
 
-void ResourcesWidget::song_combo_box_index_changed(int index)
+void ResourcesWidget::sheet_combo_box_index_changed(int index)
 {
-       qint64 id = songComboBox->itemData(index).toLongLong();
-       Song* song = m_project->get_song(id);
-       set_current_song(song);
+       qint64 id = sheetComboBox->itemData(index).toLongLong();
+       Sheet* sheet = m_project->get_sheet(id);
+       set_current_sheet(sheet);
 }
 
-void ResourcesWidget::song_added(Song * song)
+void ResourcesWidget::sheet_added(Sheet * sheet)
 {
-       songComboBox->addItem("Sheet " + 
QString::number(m_project->get_song_index(song->get_id())), song->get_id());
+       sheetComboBox->addItem("Sheet " + 
QString::number(m_project->get_sheet_index(sheet->get_id())), sheet->get_id());
 }
 
-void ResourcesWidget::song_removed(Song * song)
+void ResourcesWidget::sheet_removed(Sheet * sheet)
 {
-       int index = songComboBox->findData(song->get_id());
-       songComboBox->removeItem(index);
+       int index = sheetComboBox->findData(sheet->get_id());
+       sheetComboBox->removeItem(index);
 }
 
-void ResourcesWidget::set_current_song(Song * song)
+void ResourcesWidget::set_current_sheet(Sheet * sheet)
 {
-       if (m_currentSong == song) {
+       if (m_currentSheet == sheet) {
                return;
        }
        
-       if (song) {
-               int index = songComboBox->findData(song->get_id());
+       if (sheet) {
+               int index = sheetComboBox->findData(sheet->get_id());
                if (index != -1) {
-                       songComboBox->setCurrentIndex(index);
+                       sheetComboBox->setCurrentIndex(index);
                }
        }
        
-       m_currentSong = song;
+       m_currentSheet = sheet;
        
-       filter_on_current_song();
+       filter_on_current_sheet();
 }
 
 
-void ResourcesWidget::filter_on_current_song()
+void ResourcesWidget::filter_on_current_sheet()
 {
-       if (!m_currentSong) {
+       if (!m_currentSheet) {
                return;
        }
        
        foreach(ClipTreeItem* item, m_clipindices.values()) {
-               item->apply_filter(m_currentSong);
+               item->apply_filter(m_currentSheet);
        }
 
        
        foreach(SourceTreeItem* item, m_sourceindices.values()) {
-               item->apply_filter(m_currentSong);
+               item->apply_filter(m_currentSheet);
        }
 }
 
@@ -442,9 +442,9 @@
        setToolTip(0, m_clip->get_name() + "   " + start + " - " + end);
 }
 
-void ClipTreeItem::apply_filter(Song * song)
+void ClipTreeItem::apply_filter(Sheet * sheet)
 {
-       if (m_clip->get_song_id() == song->get_id()) {
+       if (m_clip->get_sheet_id() == sheet->get_id()) {
                if (isHidden()) {
                        setHidden(false);
                }
@@ -464,9 +464,9 @@
        connect(m_source, SIGNAL(stateChanged()), this, 
SLOT(source_state_changed()));
 }
 
-void SourceTreeItem::apply_filter(Song * song)
+void SourceTreeItem::apply_filter(Sheet * sheet)
 {
-       if (m_source->get_orig_song_id() == song->get_id()) {
+       if (m_source->get_orig_sheet_id() == sheet->get_id()) {
                setHidden(false);
                return;
        }

Index: src/traverso/widgets/ResourcesWidget.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/ResourcesWidget.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/traverso/widgets/ResourcesWidget.h      23 Nov 2007 15:39:29 -0000      
1.12
+++ src/traverso/widgets/ResourcesWidget.h      21 Jan 2008 16:22:18 -0000      
1.13
@@ -27,7 +27,7 @@
 #include "ui_ResourcesWidget.h"
 
 class Project;
-class Song;
+class Sheet;
 class AudioClip;
 class ReadSource;
 class SourceTreeItem;
@@ -68,7 +68,7 @@
 public:
        ClipTreeItem(SourceTreeItem* parent, AudioClip* clip);
        
-       void apply_filter(Song* song);
+       void apply_filter(Sheet* sheet);
 
 
 public slots:
@@ -85,7 +85,7 @@
 public:
        SourceTreeItem(QTreeWidget* parent, ReadSource* source);
 
-       void apply_filter(Song* song);
+       void apply_filter(Sheet* sheet);
 
 private:
        ReadSource* m_source;
@@ -108,7 +108,7 @@
 
 private:
        Project* m_project;
-       Song* m_currentSong;
+       Sheet* m_currentSheet;
        FileWidget* m_filewidget;
        QHash<qint64, ClipTreeItem*> m_clipindices;
        QHash<qint64, SourceTreeItem*> m_sourceindices;
@@ -116,18 +116,18 @@
        void update_clip_state(AudioClip* clip);
        void update_source_state(qint64 id);
        
-       void filter_on_current_song();
+       void filter_on_current_sheet();
        
 private slots:
        void set_project(Project* project);
        void project_load_finished();
        
        void view_combo_box_index_changed(int index);
-       void song_combo_box_index_changed(int index);
+       void sheet_combo_box_index_changed(int index);
        
-       void song_added(Song* song);
-       void song_removed(Song* song);
-       void set_current_song(Song* song);
+       void sheet_added(Sheet* sheet);
+       void sheet_removed(Sheet* sheet);
+       void set_current_sheet(Sheet* sheet);
        
        void add_clip(AudioClip* clip);
        void remove_clip(AudioClip* clip);




reply via email to

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