changeset 1:40116f709d3b

* Reorganising code base. This revision probably should compile once more.
author Chris Cannam
date Mon, 31 Jul 2006 14:05:22 +0000
parents cd5d7ff8ef38
children 42a78f0e8fe2
files audioio/AudioCallbackPlaySource.cpp audioio/AudioGenerator.cpp document/Document.cpp document/SVFileReader.cpp i18n/sonic-visualiser_ru.qm i18n/sonic-visualiser_ru.ts icons/README icons/annotation.png icons/colour3d.png icons/draw-curve.png icons/draw.png icons/editcopy.png icons/editcut.png icons/editdelete.png icons/editpaste.png icons/exit.png icons/fader_background.png icons/fader_knob.png icons/fader_knob_red.png icons/fader_leds.png icons/faders.png icons/ffwd-end.png icons/ffwd.png icons/fileclose.png icons/filenew-22.png icons/filenew.png icons/fileopen-22.png icons/fileopen.png icons/filesave-22.png icons/filesave.png icons/filesaveas-22.png icons/filesaveas.png icons/hh.gif icons/hh.png icons/info.png icons/instants.png icons/move.png icons/navigate.png icons/new.png icons/notes.png icons/pane.png icons/playloop.png icons/playpause-orig.png icons/playpause.png icons/playselection.png icons/playselectionloop.png icons/redo.png icons/rewind-start.png icons/rewind.png icons/select.png icons/speaker.png icons/spectrogram-22x22.png icons/spectrogram.png icons/text.png icons/timeruler.png icons/undo.png icons/values.png icons/waveform.png icons/zoom-in.png icons/zoom-out.png icons/zoom.png main/MainWindow.cpp main/MainWindow.h main/PreferencesDialog.cpp main/main.cpp main/systeminit.cpp samples/README samples/bass.wav samples/beep.wav samples/bounce.wav samples/clap.wav samples/click.wav samples/cowbell.wav samples/hihat.wav samples/kick.wav samples/organ.wav samples/piano.wav samples/snare.wav samples/stick.wav samples/strike.wav samples/tap.wav sonic-visualiser.qrc sv.pro transform/FeatureExtractionPluginTransform.cpp transform/RealTimePluginTransform.cpp transform/RealTimePluginTransform.h transform/Transform.h transform/TransformFactory.cpp
diffstat 88 files changed, 2895 insertions(+), 148 deletions(-) [+]
line wrap: on
line diff
--- a/audioio/AudioCallbackPlaySource.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/audioio/AudioCallbackPlaySource.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -17,11 +17,11 @@
 
 #include "AudioGenerator.h"
 
-#include "base/Model.h"
-#include "base/ViewManager.h"
+#include "data/model/Model.h"
+#include "view/ViewManager.h"
 #include "base/PlayParameterRepository.h"
-#include "model/DenseTimeValueModel.h"
-#include "model/SparseOneDimensionalModel.h"
+#include "data/model/DenseTimeValueModel.h"
+#include "data/model/SparseOneDimensionalModel.h"
 #include "IntegerTimeStretcher.h"
 
 #include <iostream>
--- a/audioio/AudioGenerator.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/audioio/AudioGenerator.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -21,9 +21,9 @@
 #include "base/Pitch.h"
 #include "base/Exceptions.h"
 
-#include "model/NoteModel.h"
-#include "model/DenseTimeValueModel.h"
-#include "model/SparseOneDimensionalModel.h"
+#include "data/model/NoteModel.h"
+#include "data/model/DenseTimeValueModel.h"
+#include "data/model/SparseOneDimensionalModel.h"
 
 #include "plugin/RealTimePluginFactory.h"
 #include "plugin/RealTimePluginInstance.h"
--- a/document/Document.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/document/Document.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -15,11 +15,11 @@
 
 #include "Document.h"
 
-#include "model/WaveFileModel.h"
-#include "base/Layer.h"
+#include "data/model/WaveFileModel.h"
+#include "layer/Layer.h"
 #include "base/CommandHistory.h"
 #include "base/Command.h"
-#include "base/View.h"
+#include "view/View.h"
 #include "base/PlayParameterRepository.h"
 #include "base/PlayParameters.h"
 #include "transform/TransformFactory.h"
--- a/document/SVFileReader.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/document/SVFileReader.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -15,23 +15,23 @@
 
 #include "SVFileReader.h"
 
-#include "base/Layer.h"
-#include "base/View.h"
+#include "layer/Layer.h"
+#include "view/View.h"
 #include "base/PlayParameters.h"
 #include "base/PlayParameterRepository.h"
 
-#include "AudioFileReaderFactory.h"
+#include "data/fileio/AudioFileReaderFactory.h"
 
-#include "model/WaveFileModel.h"
-#include "model/DenseThreeDimensionalModel.h"
-#include "model/SparseOneDimensionalModel.h"
-#include "model/SparseTimeValueModel.h"
-#include "model/NoteModel.h"
-#include "model/TextModel.h"
+#include "data/model/WaveFileModel.h"
+#include "data/model/DenseThreeDimensionalModel.h"
+#include "data/model/SparseOneDimensionalModel.h"
+#include "data/model/SparseTimeValueModel.h"
+#include "data/model/NoteModel.h"
+#include "data/model/TextModel.h"
 
-#include "widgets/Pane.h"
+#include "view/Pane.h"
 
-#include "main/Document.h"
+#include "Document.h"
 
 #include <QString>
 #include <QMessageBox>
Binary file i18n/sonic-visualiser_ru.qm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/i18n/sonic-visualiser_ru.ts	Mon Jul 31 14:05:22 2006 +0000
@@ -0,0 +1,2713 @@
+<!DOCTYPE TS><TS>
+<context>
+    <name>AudioDial</name>
+    <message>
+        <source>Enter new value</source>
+        <translation>Введите новое значение</translation>
+    </message>
+    <message>
+        <source>Select a new value in the range %1 to %2:</source>
+        <translation>Выберите новое значение в диапазоне от %1 до %2:</translation>
+    </message>
+</context>
+<context>
+    <name>BZipFileDevice</name>
+    <message>
+        <source>File is already open</source>
+        <translation>Этот файл уже открыт</translation>
+    </message>
+    <message>
+        <source>Append mode not supported</source>
+        <translation>Режим добавления в конец не поддерживается</translation>
+    </message>
+    <message>
+        <source>File access mode not specified</source>
+        <translation>Способ доступа к файлам не указан</translation>
+    </message>
+    <message>
+        <source>Read and write modes both specified</source>
+        <translation>Режимы чтения и записи определены</translation>
+    </message>
+    <message>
+        <source>Failed to open file for writing</source>
+        <translation>Не удалось открыть файл для записи</translation>
+    </message>
+    <message>
+        <source>Failed to open bzip2 stream for writing</source>
+        <translation>Не удалось открыть поток bzip2 для записи</translation>
+    </message>
+    <message>
+        <source>Failed to open file for reading</source>
+        <translation>Не удалось открыть файл для чтения</translation>
+    </message>
+    <message>
+        <source>Failed to open bzip2 stream for reading</source>
+        <translation>Не удалось открыть поток bzip2 для чтения</translation>
+    </message>
+    <message>
+        <source>Internal error (open for neither read nor write)</source>
+        <translation>Внутренняя ошибка (не открывается ни на чтение, ни на запись)</translation>
+    </message>
+    <message>
+        <source>File not open</source>
+        <translation>Файл не открыт</translation>
+    </message>
+    <message>
+        <source>bzip2 stream write close error</source>
+        <translation>Ошибка закрытия записи в поток bzip2</translation>
+    </message>
+    <message>
+        <source>bzip2 stream read close error</source>
+        <translation>Ошибка закрытия чтения потока bzip2</translation>
+    </message>
+    <message>
+        <source>Internal error (close for neither read nor write)</source>
+        <translation>Внутренняя ошибка (не закрывается ни чтение, ни запись)</translation>
+    </message>
+    <message>
+        <source>bzip2 stream read error</source>
+        <translation>Ошибка чтения потока bzip2</translation>
+    </message>
+</context>
+<context>
+    <name>CSVFileWriter</name>
+    <message>
+        <source>Failed to open file %1 for writing</source>
+        <translation>Не удалось открыть файл %1 для записи</translation>
+    </message>
+</context>
+<context>
+    <name>CSVFormatDialog</name>
+    <message>
+        <source>Select Data Format</source>
+        <translation>Выберите формат данных</translation>
+    </message>
+    <message>
+        <source>
+Please select the correct data format for this file.
+</source>
+        <translation>
+Выберите правильный формат данных для этого файла.
+</translation>
+    </message>
+    <message>
+        <source>Each row specifies:</source>
+        <translation>Каждая строка определяет:</translation>
+    </message>
+    <message>
+        <source>A point in time</source>
+        <translation>Точку во времени</translation>
+    </message>
+    <message>
+        <source>A value at a time</source>
+        <translation>Значение во точке времени</translation>
+    </message>
+    <message>
+        <source>A set of values</source>
+        <translation>Серию значений</translation>
+    </message>
+    <message>
+        <source>The first column contains:</source>
+        <translation>Первый столбец содержит:</translation>
+    </message>
+    <message>
+        <source>Time, in seconds</source>
+        <translation>Время, в секундах</translation>
+    </message>
+    <message>
+        <source>Time, in audio sample frames</source>
+        <translation>Время, в выборках звуковых сэмплов</translation>
+    </message>
+    <message>
+        <source>Data (rows are consecutive in time)</source>
+        <translation>Данные (строки последовательны во времени)</translation>
+    </message>
+    <message>
+        <source>Audio sample rate (Hz):</source>
+        <translation>Частота сэмплирования звука (Гц):</translation>
+    </message>
+    <message>
+        <source>Frame increment between rows:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+Example data from file:</source>
+        <translation>
+Пример данных из файла:</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>ОК</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Отменить</translation>
+    </message>
+</context>
+<context>
+    <name>Colour3DPlotLayer</name>
+    <message>
+        <source>Time:<byte value="x9"/>%1 - %2
+Bin:<byte value="x9"/>%3
+Value:<byte value="x9"/>%4</source>
+        <translation>Время:<byte value="x9"/>%1 - %2
+Bin:<byte value="x9"/>%3
+Значение:<byte value="x9"/>%4</translation>
+    </message>
+</context>
+<context>
+    <name>CommandHistory</name>
+    <message>
+        <source>&amp;Undo</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ctrl+Z</source>
+        <translation>Ctrl+Z</translation>
+    </message>
+    <message>
+        <source>Re&amp;do</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+Z</source>
+        <translation>Ctrl+Shift+Z</translation>
+    </message>
+    <message>
+        <source>Nothing to undo</source>
+        <translation>Нет отменяемых действий</translation>
+    </message>
+    <message>
+        <source>Nothing to redo</source>
+        <translation>Нет повторяемых действий</translation>
+    </message>
+    <message>
+        <source>&amp;Undo %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Re&amp;do %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Document::AddLayerCommand</name>
+    <message>
+        <source>Add %1 Layer</source>
+        <translation>Добавить %1 слой</translation>
+    </message>
+</context>
+<context>
+    <name>Document::RemoveLayerCommand</name>
+    <message>
+        <source>Delete %1 Layer</source>
+        <translation>Удалить %1 слой</translation>
+    </message>
+</context>
+<context>
+    <name>Fader</name>
+    <message>
+        <source>Level: Off</source>
+        <translation>Уровень: выкл</translation>
+    </message>
+    <message>
+        <source>Level: %1%2.%3%4 dB</source>
+        <translation>Уровень: %1%2.%3%4 Дб</translation>
+    </message>
+</context>
+<context>
+    <name>ItemEditDialog</name>
+    <message>
+        <source>Timing</source>
+        <translation>Тайминг</translation>
+    </message>
+    <message>
+        <source>Time:</source>
+        <translation>Время:</translation>
+    </message>
+    <message>
+        <source> frames</source>
+        <translation> выборок</translation>
+    </message>
+    <message>
+        <source> sec</source>
+        <translation>с</translation>
+    </message>
+    <message>
+        <source> usec</source>
+        <translation> мс</translation>
+    </message>
+    <message>
+        <source>Duration:</source>
+        <translation>Длительность:</translation>
+    </message>
+    <message>
+        <source>Properties</source>
+        <translation>Свойства</translation>
+    </message>
+    <message>
+        <source>Value:</source>
+        <translation>Значение:</translation>
+    </message>
+    <message>
+        <source>Text:</source>
+        <translation>Текст:</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>ОК</translation>
+    </message>
+    <message>
+        <source>Reset</source>
+        <translation>Сбросить</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Отменить</translation>
+    </message>
+</context>
+<context>
+    <name>Layer</name>
+    <message>
+        <source>Waveform</source>
+        <translation>Волновая форма</translation>
+    </message>
+    <message>
+        <source>Spectrogram</source>
+        <translation>Спектрограмма</translation>
+    </message>
+    <message>
+        <source>Ruler</source>
+        <translation>Линейка</translation>
+    </message>
+    <message>
+        <source>Time Instants</source>
+        <translation>Моменты времени</translation>
+    </message>
+    <message>
+        <source>Time Values</source>
+        <translation>Значения времени</translation>
+    </message>
+    <message>
+        <source>Notes</source>
+        <translation>Ноты</translation>
+    </message>
+    <message>
+        <source>Text</source>
+        <translation>Текст</translation>
+    </message>
+    <message>
+        <source>Colour 3D Plot</source>
+        <translation>Цветной 3D-график</translation>
+    </message>
+    <message>
+        <source>Layer</source>
+        <translation>Слой</translation>
+    </message>
+</context>
+<context>
+    <name>LayerTreeModel</name>
+    <message>
+        <source>Layer</source>
+        <translation>Слой</translation>
+    </message>
+    <message>
+        <source>Model</source>
+        <translation>Модель</translation>
+    </message>
+</context>
+<context>
+    <name>MIDIFileReader</name>
+    <message>
+        <source>Wrong length for long data in MIDI stream (%1, should be %2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Wrong length for int data in MIDI stream (%1, should be %2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>getMIDIByte called but no MIDI file open</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>End of MIDI file encountered while reading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attempt to get more bytes than expected on Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attempt to read past MIDI file end</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>getMIDIBytes called but no MIDI file open</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attempt to get more bytes than available on Track (%1, only have %2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>getNumberFromMIDIBytes called but no MIDI file open</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>skipToNextTrack called but no MIDI file open</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Invalid event code %1 found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Running status used for first event in track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No notes in MIDI file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>MIDI file &quot;%1&quot; has no notes in any track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Merge all tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Merge all non-percussion tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source> - uses GM percussion channel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Track %1 (%2)%3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Track %1 (untitled)%3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select track or tracks to import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You can only import this file as a single annotation layer,
+but the file contains more than one track,
+or notes on more than one channel.
+
+Please select the track or merged tracks you wish to import:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 - vel %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>Sonic Visualiser</source>
+        <translation>Sonic Visualiser</translation>
+    </message>
+    <message>
+        <source>Playback speed: Full</source>
+        <translation>Скорость воспроизведения: нормальная</translation>
+    </message>
+    <message>
+        <source>&amp;Layer</source>
+        <translation>С&amp;лой</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Файл</translation>
+    </message>
+    <message>
+        <source>File Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;New Session</source>
+        <translation>&amp;Создать сессию</translation>
+    </message>
+    <message>
+        <source>Ctrl+N</source>
+        <translation>Ctrl+N</translation>
+    </message>
+    <message>
+        <source>Clear the current Sonic Visualiser session and start a new one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Open Session...</source>
+        <translation>&amp;Открыть сессию...</translation>
+    </message>
+    <message>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
+    </message>
+    <message>
+        <source>Open a previously saved Sonic Visualiser session file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Open...</source>
+        <translation>О&amp;ткрыть...</translation>
+    </message>
+    <message>
+        <source>Open a session file, audio file, or layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Save Session</source>
+        <translation>Сохр&amp;анить сессию</translation>
+    </message>
+    <message>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <source>Save the current session into a Sonic Visualiser session file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Save Session &amp;As...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Save the current session into a new Sonic Visualiser session file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Import Audio File...</source>
+        <translation>&amp;Импортировать звуковой файл...</translation>
+    </message>
+    <message>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <source>Import an existing audio file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Import Secondary Audio File...</source>
+        <translation>Импортировать второй звуковой файл...</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+I</source>
+        <translation>Ctrl+Shift+I</translation>
+    </message>
+    <message>
+        <source>Import an extra audio file as a separate layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Export Audio File...</source>
+        <translation>Э&amp;кспортировать звуковой файл...</translation>
+    </message>
+    <message>
+        <source>Export selection as an audio file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Import Annotation &amp;Layer...</source>
+        <translation>И&amp;мпортировать слой аннтоаций...</translation>
+    </message>
+    <message>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <source>Import layer data from an existing file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Export Annotation Layer...</source>
+        <translation>Экспортировать слой аннотаций...</translation>
+    </message>
+    <message>
+        <source>Export layer data to a file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Quit</source>
+        <translation>Вы&amp;йти</translation>
+    </message>
+    <message>
+        <source>Ctrl+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation>&amp;Правка</translation>
+    </message>
+    <message>
+        <source>Cu&amp;t</source>
+        <translation>&amp;Вырезать</translation>
+    </message>
+    <message>
+        <source>Ctrl+X</source>
+        <translation>Ctrl+X</translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation>С&amp;копировать</translation>
+    </message>
+    <message>
+        <source>Ctrl+C</source>
+        <translation>Ctrl+C</translation>
+    </message>
+    <message>
+        <source>&amp;Paste</source>
+        <translation>Вст&amp;авить</translation>
+    </message>
+    <message>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <source>&amp;Delete Selected Items</source>
+        <translation>&amp;Удалить выбранное</translation>
+    </message>
+    <message>
+        <source>Del</source>
+        <translation>Del</translation>
+    </message>
+    <message>
+        <source>Select &amp;All</source>
+        <translation>В&amp;ыделить всё</translation>
+    </message>
+    <message>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <source>Select &amp;Visible Range</source>
+        <translation>Вы&amp;делить всё видимое</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+A</source>
+        <translation>Ctrl+Shift+A</translation>
+    </message>
+    <message>
+        <source>Select to &amp;Start</source>
+        <translation>Выделить до &amp;начала</translation>
+    </message>
+    <message>
+        <source>Shift+Left</source>
+        <translation>Shift+Left</translation>
+    </message>
+    <message>
+        <source>Select to &amp;End</source>
+        <translation>Выделить до &amp;конца</translation>
+    </message>
+    <message>
+        <source>Shift+Right</source>
+        <translation>Shift+Right</translation>
+    </message>
+    <message>
+        <source>C&amp;lear Selection</source>
+        <translation>Сн&amp;ять выделение</translation>
+    </message>
+    <message>
+        <source>Esc</source>
+        <translation>Esc</translation>
+    </message>
+    <message>
+        <source>&amp;Insert Instant at Playback Position</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Enter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Вид</translation>
+    </message>
+    <message>
+        <source>&amp;No Text Overlays</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>0</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Show no texts for frame times, layer names etc</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Basic &amp;Text Overlays</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>9</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Show texts for frame times etc, but not layer names etc</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;All Text Overlays</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Show texts for frame times, layer names etc</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Scroll &amp;Left</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Left</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Scroll the current pane to the left</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Scroll &amp;Right</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Right</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Scroll the current pane to the right</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Jump Left</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ctrl+Left</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Scroll the current pane a big step to the left</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Jump Right</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ctrl+Right</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Scroll the current pane a big step to the right</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Zoom &amp;In</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Up</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Increase the zoom level</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Zoom &amp;Out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Down</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Decrease the zoom level</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Restore &amp;Default Zoom</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Zoom to &amp;Fit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Zoom to show the whole file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Pane</source>
+        <translation>П&amp;анель</translation>
+    </message>
+    <message>
+        <source>Add &amp;New Pane</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+N</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new pane containing only a time ruler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add New %1 Layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new empty layer of type %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+T</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add &amp;Waveform</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+W</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new pane showing a waveform view</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new layer showing a waveform view</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add &amp;Spectrogram</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+S</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new pane showing a dB spectrogram</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new layer showing a dB spectrogram</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add &amp;Melodic Range Spectrogram</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+M</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new pane showing a spectrogram set up for a pitch overview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new layer showing a spectrogram set up for a pitch overview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add &amp;Peak Frequency Spectrogram</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+P</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new pane showing a spectrogram set up for tracking frequencies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new layer showing a spectrogram set up for tracking frequencies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;All Channels Mixed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;All Channels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Channel &amp;%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Delete Pane</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+D</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Delete the currently selected pane</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add &amp;Time Ruler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add a new layer showing a time ruler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add &amp;Existing Layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Rename Layer...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+R</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rename the currently active layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Delete Layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Alt+Shift+D</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Delete the currently active layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Справка</translation>
+    </message>
+    <message>
+        <source>&amp;Help Reference</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Open the Sonic Visualiser reference manual</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sonic Visualiser on the &amp;Web</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Open the Sonic Visualiser website</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;About Sonic Visualiser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Show information about Sonic Visualiser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Transport Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rewind to Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Home</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rewind to the start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rewind</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>PageUp</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rewind to the previous time instant in the current layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play / Pause</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Space</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start or stop playback from the current position</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fast Forward</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>PageDown</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fast forward to the next time instant in the current layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fast Forward to End</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>End</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fast-forward to the end</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play Mode Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Constrain Playback to Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Constrain playback to the selected area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Loop Playback</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>l</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Loop playback</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Tools Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Navigate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select</source>
+        <translation type="unfinished">Выделить</translation>
+    </message>
+    <message>
+        <source>2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Draw</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No audio file loaded.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1Hz (resampling to %2Hz)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 (modified)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source> (modified)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cut</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add Point</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select an audio file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio files (%1)
+All files (*.*)</source>
+        <translation type="unfinished">Щвуковые файлы (%1)
+Все файлы (*.*)</translation>
+    </message>
+    <message>
+        <source>Failed to open file</source>
+        <translation type="unfinished">Не удалось открыть файл</translation>
+    </message>
+    <message>
+        <source>Audio file &quot;%1&quot; could not be opened</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select a file to export to</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>WAV audio files (*.wav)
+All files (*.*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Export the selected region only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Export the whole audio file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select region to export</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Which region from the original audio file do you want to export?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Export the selected regions into a single audio file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Export the selected regions into separate files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Multiple regions of the original audio file are selected.
+What do you want to export?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fragment file %1 already exists, aborting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to write file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All supported files (%1)
+Sonic Visualiser Layer XML files (*.svl)
+Comma-separated data files (*.csv)
+Space-separated .lab files (*.lab)
+MIDI files (*.mid)
+Text files (*.txt)
+All files (*.*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>File %1 could not be opened.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sonic Visualiser Layer XML files (*.svl)
+Comma-separated data files (*.csv)
+Text files (*.txt)
+All files (*.*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to open file %1 for writing</source>
+        <translation type="unfinished">Не удалось открыть файл %1 для записи</translation>
+    </message>
+    <message>
+        <source>Replace the existing main waveform</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load this file into a new waveform pane</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select target for import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You already have an audio waveform.
+What would you like to do with the new audio file?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sonic Visualiser: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sonic Visualiser: %1 [%2]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Import &quot;%1&quot;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Couldn&apos;t open audio device</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Could not open an audio device for playback.
+Audio playback will not be available during this session.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select a session file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sonic Visualiser session files (*.sv)
+All files (*.*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>File &quot;%1&quot; does not exist or is not a readable file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Session file &quot;%1&quot; could not be opened</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All supported files (*.sv %1 %2)
+Sonic Visualiser session files (*.sv)
+Audio files (%1)
+Layer files (%2)
+All files (*.*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All supported files (*.sv %1)
+Sonic Visualiser session files (*.sv)
+Audio files (%1)
+All files (*.*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select a file to open</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>File &quot;%1&quot; could not be opened</source>
+        <translation type="unfinished">Не удалось открыть файл &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>SV XML file read error:
+%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Session modified</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The current session has been modified.
+Do you want to save it?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to save file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Session file &quot;%1&quot; could not be saved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Select a file to save to</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Directory selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>File &quot;%1&quot; is a directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>File exists</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The file &quot;%1&quot; already exists.
+Do you want to overwrite it?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to write to file &quot;%1&quot;: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Delete Pane</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rename Layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>New name for this layer:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Playback speed: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Full</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sample rate mismatch</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The sample rate of this audio file (%1 Hz) does not match
+the current playback rate (%2 Hz).
+
+The file will play at the wrong speed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to regenerate layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to regenerate derived layer &quot;%1&quot;.
+The layer transform &quot;%2&quot; failed to run.
+This probably means the layer used a plugin that is not currently available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>http://www.sonicvisualiser.org/</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>http://www.sonicvisualiser.org/doc/reference/en/</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Release %1 : Revision %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Release %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unreleased : Revision %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;h3&gt;About Sonic Visualiser&lt;/h3&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;Sonic Visualiser is a program for viewing and exploring audio data for semantic music analysis and annotation.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;%1 : %2 build&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Debug</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Release</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;Statically linked</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With Qt (v%1) &amp;copy; Trolltech AS</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With JACK audio output (v%1) &amp;copy; Paul Davis and Jack O&apos;Quin</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With PortAudio audio output &amp;copy; Ross Bencina and Phil Burk</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With Ogg file decoder (oggz v%1, fishsound v%2) &amp;copy; CSIRO Australia</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With MAD mp3 decoder (v%1) &amp;copy; Underbit Technologies Inc</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With libsamplerate (v%1) &amp;copy; Erik de Castro Lopo</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With libsndfile (v%1) &amp;copy; Erik de Castro Lopo</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With FFTW3 (v%1) &amp;copy; Matteo Frigo and MIT</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With Vamp plugin support (API v%1, SDK v%2) &amp;copy; Chris Cannam</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With LADSPA plugin support (API v%1) &amp;copy; Richard Furse, Paul Davis, Stefan Westerfeld</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;With DSSI plugin support (API v%1) &amp;copy; Chris Cannam, Steve Harris, Sean Bolton</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>About Sonic Visualiser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate layer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The layer transform &quot;%1&quot; failed to run.
+This probably means that a plugin failed to initialise.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow::AddPaneCommand</name>
+    <message>
+        <source>Add Pane</source>
+        <translation>Добавить панель</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow::RemovePaneCommand</name>
+    <message>
+        <source>Remove Pane</source>
+        <translation>Удалить панель</translation>
+    </message>
+</context>
+<context>
+    <name>NoteLayer</name>
+    <message>
+        <source>New Point</source>
+        <translation>Новая точка</translation>
+    </message>
+    <message>
+        <source>Colour</source>
+        <translation>Цвет</translation>
+    </message>
+    <message>
+        <source>Vertical Scale</source>
+        <translation>Верт. масштаб</translation>
+    </message>
+    <message>
+        <source>Pitch Units</source>
+        <translation type="obsolete">Единицы высоты тона</translation>
+    </message>
+    <message>
+        <source>Black</source>
+        <translation>Чёрный</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation>Красный</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation>Синий</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation>Зелёный</translation>
+    </message>
+    <message>
+        <source>Purple</source>
+        <translation>Пурпурный</translation>
+    </message>
+    <message>
+        <source>Orange</source>
+        <translation>Оранжевый</translation>
+    </message>
+    <message>
+        <source>Auto-Align</source>
+        <translation>Автовыравнивание</translation>
+    </message>
+    <message>
+        <source>Linear Scale</source>
+        <translation>Линейная шкала</translation>
+    </message>
+    <message>
+        <source>Log Scale</source>
+        <translation>Логарифм. шкала</translation>
+    </message>
+    <message>
+        <source>MIDI Note Range</source>
+        <translation>Диапазон MIDI-нот</translation>
+    </message>
+    <message>
+        <source>&lt;unknown&gt;</source>
+        <translation>&lt;неизвестно&gt;</translation>
+    </message>
+    <message>
+        <source>In progress</source>
+        <translation>В процессе</translation>
+    </message>
+    <message>
+        <source>No local points</source>
+        <translation>Нет локальных точек</translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1
+Pitch:<byte value="x9"/>%2
+Duration:<byte value="x9"/>%3
+No label</source>
+        <translation>Время:<byte value="x9"/>%1
+Высота тона:<byte value="x9"/>%2
+Длительность:<byte value="x9"/>%3
+Без метки</translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1
+Pitch:<byte value="x9"/>%2
+Duration:<byte value="x9"/>%3
+Label:<byte value="x9"/>%4</source>
+        <translation>Время:<byte value="x9"/>%1
+Высота тона:<byte value="x9"/>%2
+Длительность:<byte value="x9"/>%3
+Метка:<byte value="x9"/>%4</translation>
+    </message>
+    <message>
+        <source>Draw Point</source>
+        <translation>Нарисовать точку</translation>
+    </message>
+    <message>
+        <source>Drag Point</source>
+        <translation>Перетащить точку</translation>
+    </message>
+    <message>
+        <source>Edit Point</source>
+        <translation>Изменить точку</translation>
+    </message>
+    <message>
+        <source>Relocate Point</source>
+        <translation>Переместить точку</translation>
+    </message>
+    <message>
+        <source>Change Point Value</source>
+        <translation>Изменить значение точки</translation>
+    </message>
+    <message>
+        <source>Drag Selection</source>
+        <translation>Перетащить выделение</translation>
+    </message>
+    <message>
+        <source>Resize Selection</source>
+        <translation>Изменить размер выделения</translation>
+    </message>
+    <message>
+        <source>Delete Selected Points</source>
+        <translation>Удалить выбранные точки</translation>
+    </message>
+    <message>
+        <source>Paste</source>
+        <translation>Вставить</translation>
+    </message>
+    <message>
+        <source>Scale Units</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Pane</name>
+    <message>
+        <source>Some lengthy prefix:</source>
+        <translation>Некий длинный префикс:</translation>
+    </message>
+    <message>
+        <source>(R)</source>
+        <translation>(R)</translation>
+    </message>
+    <message>
+        <source>(X)</source>
+        <translation>(X)</translation>
+    </message>
+    <message>
+        <source>%1 / %2Hz%3</source>
+        <translation>%1 / %2Гц%3</translation>
+    </message>
+    <message>
+        <source>Drag Selection</source>
+        <translation>Перетащить выделение</translation>
+    </message>
+    <message>
+        <source>Resize Selection</source>
+        <translation>Изменить выделение</translation>
+    </message>
+</context>
+<context>
+    <name>Panner</name>
+    <message>
+        <source>Panner</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>PluginParameterBox</name>
+    <message>
+        <source>This plugin has no adjustable parameters.</source>
+        <translation>У этого расширения нет изменяемых параметров.</translation>
+    </message>
+    <message>
+        <source>Program</source>
+        <translation>Программа</translation>
+    </message>
+</context>
+<context>
+    <name>PluginParameterDialog</name>
+    <message>
+        <source>Plugin</source>
+        <translation>Расширение</translation>
+    </message>
+    <message>
+        <source>Name:</source>
+        <translation>Имя:</translation>
+    </message>
+    <message>
+        <source>Type:</source>
+        <translation>Тип:</translation>
+    </message>
+    <message>
+        <source>Maker:</source>
+        <translation>Автор:</translation>
+    </message>
+    <message>
+        <source>Copyright:  </source>
+        <translation>Копирайт:  </translation>
+    </message>
+    <message>
+        <source>Version:</source>
+        <translation>Версия:</translation>
+    </message>
+    <message>
+        <source>Plugin Parameters</source>
+        <translation>Параметры расширения</translation>
+    </message>
+    <message>
+        <source>Channel mismatch</source>
+        <translation>Несовпадение каналов</translation>
+    </message>
+    <message>
+        <source>This plugin requires at least %1 input channels, but only %2 %3 available.  The plugin probably will not work correctly.</source>
+        <translation>Этому расширению нужно хотя бы %1 вхдных каналовs, но лишь %2 %3 доступны.  Вероятно, расширение не сработает как должно.</translation>
+    </message>
+    <message>
+        <source>are</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>is</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Channels</source>
+        <translation>Каналы</translation>
+    </message>
+    <message>
+        <source>This plugin accepts no more than %1 input channels,
+but %2 are available.  Only the first %3 will be used.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This plugin only has a single channel input,
+but the source has %1 channels.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use mean of source channels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use channel %1 only</source>
+        <translation>Использовать только канал %1</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>ОК</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Отменить</translation>
+    </message>
+    <message>
+        <source>Output:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>PropertyBox</name>
+    <message>
+        <source>Show</source>
+        <translation>Показать</translation>
+    </message>
+    <message>
+        <source>Play</source>
+        <translation>Воспроизвести</translation>
+    </message>
+    <message>
+        <source>Playback Level</source>
+        <translation>Уровень воспр.</translation>
+    </message>
+    <message>
+        <source>Playback Pan / Balance</source>
+        <translation>Панорама/баланс при воспроизведении</translation>
+    </message>
+</context>
+<context>
+    <name>PropertyContainer::SetPropertyCommand</name>
+    <message>
+        <source>Set %1 Property</source>
+        <translation>Установить свойство %1</translation>
+    </message>
+</context>
+<context>
+    <name>QFile</name>
+    <message>
+        <source>File &quot;%1&quot; does not exist</source>
+        <translation>Файл &quot;%1&quot; не существует</translation>
+    </message>
+    <message>
+        <source>Failed to open file &quot;%1&quot;</source>
+        <translation>Не удалось открыть файл &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QFileDialog</name>
+    <message>
+        <source>Locate file &quot;%1&quot;</source>
+        <translation>Найти файл &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Audio files (%1)
+All files (*.*)</source>
+        <translation>Щвуковые файлы (%1)
+Все файлы (*.*)</translation>
+    </message>
+</context>
+<context>
+    <name>QMessageBox</name>
+    <message>
+        <source>Failed to open file</source>
+        <translation>Не удалось открыть файл</translation>
+    </message>
+    <message>
+        <source>Audio file &quot;%1&quot; could not be opened.
+Locate it?</source>
+        <translation>Не удалось открыть звуковой файл &quot;%1&quot;.
+Найти его?</translation>
+    </message>
+    <message>
+        <source>File &quot;%1&quot; could not be opened</source>
+        <translation>Не удалось открыть файл &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>Decoding MP3 file...</source>
+        <translation>Декодируется файл MP3...</translation>
+    </message>
+    <message>
+        <source>Stop</source>
+        <translation>Остановить</translation>
+    </message>
+    <message>
+        <source>Decoding Ogg file...</source>
+        <translation>Декодируется файл Ogg Vorbis...</translation>
+    </message>
+</context>
+<context>
+    <name>SparseModel</name>
+    <message>
+        <source>Add Point</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Delete Point</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Re-Label Point</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SpectrogramLayer</name>
+    <message>
+        <source>Colour</source>
+        <translation type="unfinished">Цвет</translation>
+    </message>
+    <message>
+        <source>Colour Scale</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Window Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Window Size</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Normalize Columns</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Bin Display</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Threshold</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Gain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Colour Rotation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Min Frequency</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Max Frequency</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frequency Scale</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Window</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Scale</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Range</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>White on Black</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Black on White</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Red on Blue</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Yellow on Black</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Blue on Black</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fruit Salad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Linear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Meter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>dB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Phase</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rectangle</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Bartlett</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hamming</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hanning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Blackman</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Gaussian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Parzen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No min</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>10 Hz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>20 Hz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>40 Hz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>100 Hz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>250 Hz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>500 Hz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>1 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>4 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>10 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>1.5 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>2 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>6 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>8 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>12 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>16 KHz</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No max</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Log</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All Bins</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Peak Bins</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frequencies</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;unknown&gt;</source>
+        <translation type="unfinished">&lt;неизвестно&gt;</translation>
+    </message>
+    <message>
+        <source>Peak Frequency:<byte value="x9"/>%1 - %2 Hz
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Peak Frequency:<byte value="x9"/>%1 Hz
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Peak Pitch:<byte value="x9"/>%3 - %4
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Peak Pitch:<byte value="x9"/>%2
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1 - %2
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1Bin Frequency:<byte value="x9"/>%2 - %3 Hz
+%4Bin Pitch:<byte value="x9"/>%5 - %6
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1Bin Frequency:<byte value="x9"/>%2 Hz
+%3Bin Pitch:<byte value="x9"/>%4
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>-Inf</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>dB:<byte value="x9"/>%1 - %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>dB:<byte value="x9"/>%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+Phase:<byte value="x9"/>%1 - %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+Phase:<byte value="x9"/>%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>-90</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Window Overlap</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Smoothing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>25 %</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>50 %</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>75 %</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>87.5 %</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>93.75 %</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>TextLayer</name>
+    <message>
+        <source>Empty Label</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Colour</source>
+        <translation type="unfinished">Цвет</translation>
+    </message>
+    <message>
+        <source>Black</source>
+        <translation type="unfinished">Чёрный</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation type="unfinished">Красный</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation type="unfinished">Синий</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation type="unfinished">Зелёный</translation>
+    </message>
+    <message>
+        <source>Purple</source>
+        <translation type="unfinished">Пурпурный</translation>
+    </message>
+    <message>
+        <source>Orange</source>
+        <translation type="unfinished">Оранжевый</translation>
+    </message>
+    <message>
+        <source>&lt;unknown&gt;</source>
+        <translation type="unfinished">&lt;неизвестно&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;no text&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In progress</source>
+        <translation type="unfinished">В процессе</translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1
+Height:<byte value="x9"/>%2
+Label:<byte value="x9"/>%3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Enter label</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please enter a new label:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drag Label</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Move Label</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Move Label Horizontally</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Move Label Vertically</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drag Selection</source>
+        <translation type="unfinished">Перетащить выделение</translation>
+    </message>
+    <message>
+        <source>Resize Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Delete Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Paste</source>
+        <translation type="unfinished">Вставить</translation>
+    </message>
+    <message>
+        <source>New Point</source>
+        <translation type="unfinished">Новая точка</translation>
+    </message>
+</context>
+<context>
+    <name>TimeInstantLayer</name>
+    <message>
+        <source>New Point</source>
+        <translation type="unfinished">Новая точка</translation>
+    </message>
+    <message>
+        <source>Colour</source>
+        <translation type="unfinished">Цвет</translation>
+    </message>
+    <message>
+        <source>Plot Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Black</source>
+        <translation type="unfinished">Чёрный</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation type="unfinished">Красный</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation type="unfinished">Синий</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation type="unfinished">Зелёный</translation>
+    </message>
+    <message>
+        <source>Purple</source>
+        <translation type="unfinished">Пурпурный</translation>
+    </message>
+    <message>
+        <source>Orange</source>
+        <translation type="unfinished">Оранжевый</translation>
+    </message>
+    <message>
+        <source>Instants</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Segmentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;unknown&gt;</source>
+        <translation type="unfinished">&lt;неизвестно&gt;</translation>
+    </message>
+    <message>
+        <source>In progress</source>
+        <translation type="unfinished">В процессе</translation>
+    </message>
+    <message>
+        <source>No local points</source>
+        <translation type="unfinished">Нет локальных точек</translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1
+No label</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1
+Label:<byte value="x9"/>%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Draw Point</source>
+        <translation type="unfinished">Нарисовать точку</translation>
+    </message>
+    <message>
+        <source>Add Point at %1 s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drag Point</source>
+        <translation type="unfinished">Перетащить точку</translation>
+    </message>
+    <message>
+        <source>Move Point to %1 s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit Point</source>
+        <translation type="unfinished">Изменить точку</translation>
+    </message>
+    <message>
+        <source>Drag Selection</source>
+        <translation type="unfinished">Перетащить выделение</translation>
+    </message>
+    <message>
+        <source>Resize Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Delete Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Paste</source>
+        <translation type="unfinished">Вставить</translation>
+    </message>
+</context>
+<context>
+    <name>TimeRulerLayer</name>
+    <message>
+        <source>Colour</source>
+        <translation type="unfinished">Цвет</translation>
+    </message>
+    <message>
+        <source>Black</source>
+        <translation type="unfinished">Чёрный</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation type="unfinished">Красный</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation type="unfinished">Синий</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation type="unfinished">Зелёный</translation>
+    </message>
+    <message>
+        <source>Purple</source>
+        <translation type="unfinished">Пурпурный</translation>
+    </message>
+    <message>
+        <source>Orange</source>
+        <translation type="unfinished">Оранжевый</translation>
+    </message>
+    <message>
+        <source>&lt;unknown&gt;</source>
+        <translation type="unfinished">&lt;неизвестно&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>TimeValueLayer</name>
+    <message>
+        <source>New Point</source>
+        <translation type="unfinished">Новая точка</translation>
+    </message>
+    <message>
+        <source>Colour</source>
+        <translation type="unfinished">Цвет</translation>
+    </message>
+    <message>
+        <source>Plot Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Vertical Scale</source>
+        <translation type="unfinished">Верт. масштаб</translation>
+    </message>
+    <message>
+        <source>Scale Units</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Black</source>
+        <translation type="unfinished">Чёрный</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation type="unfinished">Красный</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation type="unfinished">Синий</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation type="unfinished">Зелёный</translation>
+    </message>
+    <message>
+        <source>Purple</source>
+        <translation type="unfinished">Пурпурный</translation>
+    </message>
+    <message>
+        <source>Orange</source>
+        <translation type="unfinished">Оранжевый</translation>
+    </message>
+    <message>
+        <source>Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Stems</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Connected Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Curve</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Segmentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Auto-Align</source>
+        <translation type="unfinished">Автовыравнивание</translation>
+    </message>
+    <message>
+        <source>Linear Scale</source>
+        <translation type="unfinished">Линейная шкала</translation>
+    </message>
+    <message>
+        <source>Log Scale</source>
+        <translation type="unfinished">Логарифм. шкала</translation>
+    </message>
+    <message>
+        <source>+/-1 Scale</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;unknown&gt;</source>
+        <translation type="unfinished">&lt;неизвестно&gt;</translation>
+    </message>
+    <message>
+        <source>In progress</source>
+        <translation type="unfinished">В процессе</translation>
+    </message>
+    <message>
+        <source>No local points</source>
+        <translation type="unfinished">Нет локальных точек</translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1
+Value:<byte value="x9"/>%2%3
+No label</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1
+Value:<byte value="x9"/>%2%3
+Label:<byte value="x9"/>%4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Draw Point</source>
+        <translation type="unfinished">Нарисовать точку</translation>
+    </message>
+    <message>
+        <source>Drag Point</source>
+        <translation type="unfinished">Перетащить точку</translation>
+    </message>
+    <message>
+        <source>Edit Point</source>
+        <translation type="unfinished">Изменить точку</translation>
+    </message>
+    <message>
+        <source>Relocate Point</source>
+        <translation type="unfinished">Переместить точку</translation>
+    </message>
+    <message>
+        <source>Change Point Value</source>
+        <translation type="unfinished">Изменить значение точки</translation>
+    </message>
+    <message>
+        <source>Drag Selection</source>
+        <translation type="unfinished">Перетащить выделение</translation>
+    </message>
+    <message>
+        <source>Resize Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Delete Selected Points</source>
+        <translation type="unfinished">Удалить выбранные точки</translation>
+    </message>
+    <message>
+        <source>Paste</source>
+        <translation type="unfinished">Вставить</translation>
+    </message>
+</context>
+<context>
+    <name>TransformFactory</name>
+    <message>
+        <source>Analysis Plugins</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1: Output %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Other Plugins</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>View</name>
+    <message>
+        <source>Global Scroll</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Global Zoom</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Follow Playback</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Scroll</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Page</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Off</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;unknown&gt;</source>
+        <translation type="unfinished">&lt;неизвестно&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>ViewManager::SetSelectionCommand</name>
+    <message>
+        <source>Clear Selection</source>
+        <translation>Снять выделение</translation>
+    </message>
+    <message>
+        <source>Select</source>
+        <translation>Выделить</translation>
+    </message>
+</context>
+<context>
+    <name>WaveformLayer</name>
+    <message>
+        <source>Colour</source>
+        <translation type="unfinished">Цвет</translation>
+    </message>
+    <message>
+        <source>Scale</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Gain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Normalize Visible Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Channels</source>
+        <translation type="unfinished">Каналы</translation>
+    </message>
+    <message>
+        <source>Black</source>
+        <translation type="unfinished">Чёрный</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation type="unfinished">Красный</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation type="unfinished">Синий</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation type="unfinished">Зелёный</translation>
+    </message>
+    <message>
+        <source>Purple</source>
+        <translation type="unfinished">Пурпурный</translation>
+    </message>
+    <message>
+        <source>Orange</source>
+        <translation type="unfinished">Оранжевый</translation>
+    </message>
+    <message>
+        <source>Linear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Meter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>dB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Separate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mean</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Butterfly</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&lt;unknown&gt;</source>
+        <translation type="unfinished">&lt;неизвестно&gt;</translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1 - %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Time:<byte value="x9"/>%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Level:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Left:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Right:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Channel %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+%1<byte value="x9"/>%2 - %3 (%4 dB peak)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+%1<byte value="x9"/>%2 (%3 dB peak)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>0dB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>-Inf</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons/README	Mon Jul 31 14:05:22 2006 +0000
@@ -0,0 +1,3 @@
+Icons are from various GPL'd sources, including the GIMP image editor,
+KDE crystalsvg icon set, Rosegarden audio and MIDI sequencer, and Hydrogen
+drum machine.  Some modifications and new drawings by Chris Cannam.
Binary file icons/annotation.png has changed
Binary file icons/colour3d.png has changed
Binary file icons/draw-curve.png has changed
Binary file icons/draw.png has changed
Binary file icons/editcopy.png has changed
Binary file icons/editcut.png has changed
Binary file icons/editdelete.png has changed
Binary file icons/editpaste.png has changed
Binary file icons/exit.png has changed
Binary file icons/fader_background.png has changed
Binary file icons/fader_knob.png has changed
Binary file icons/fader_knob_red.png has changed
Binary file icons/fader_leds.png has changed
Binary file icons/faders.png has changed
Binary file icons/ffwd-end.png has changed
Binary file icons/ffwd.png has changed
Binary file icons/fileclose.png has changed
Binary file icons/filenew-22.png has changed
Binary file icons/filenew.png has changed
Binary file icons/fileopen-22.png has changed
Binary file icons/fileopen.png has changed
Binary file icons/filesave-22.png has changed
Binary file icons/filesave.png has changed
Binary file icons/filesaveas-22.png has changed
Binary file icons/filesaveas.png has changed
Binary file icons/hh.gif has changed
Binary file icons/hh.png has changed
Binary file icons/info.png has changed
Binary file icons/instants.png has changed
Binary file icons/move.png has changed
Binary file icons/navigate.png has changed
Binary file icons/new.png has changed
Binary file icons/notes.png has changed
Binary file icons/pane.png has changed
Binary file icons/playloop.png has changed
Binary file icons/playpause-orig.png has changed
Binary file icons/playpause.png has changed
Binary file icons/playselection.png has changed
Binary file icons/playselectionloop.png has changed
Binary file icons/redo.png has changed
Binary file icons/rewind-start.png has changed
Binary file icons/rewind.png has changed
Binary file icons/select.png has changed
Binary file icons/speaker.png has changed
Binary file icons/spectrogram-22x22.png has changed
Binary file icons/spectrogram.png has changed
Binary file icons/text.png has changed
Binary file icons/timeruler.png has changed
Binary file icons/undo.png has changed
Binary file icons/values.png has changed
Binary file icons/waveform.png has changed
Binary file icons/zoom-in.png has changed
Binary file icons/zoom-out.png has changed
Binary file icons/zoom.png has changed
--- a/main/MainWindow.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/main/MainWindow.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -13,17 +13,17 @@
     COPYING included with this distribution for more information.
 */
 
-#include "../version.h"
+#include "version.h"
 
 #include "MainWindow.h"
-#include "Document.h"
+#include "document/Document.h"
 #include "PreferencesDialog.h"
 
-#include "widgets/Pane.h"
-#include "widgets/PaneStack.h"
-#include "model/WaveFileModel.h"
-#include "model/SparseOneDimensionalModel.h"
-#include "base/ViewManager.h"
+#include "view/Pane.h"
+#include "view/PaneStack.h"
+#include "data/model/WaveFileModel.h"
+#include "data/model/SparseOneDimensionalModel.h"
+#include "view/ViewManager.h"
 #include "base/Preferences.h"
 #include "layer/WaveformLayer.h"
 #include "layer/TimeRulerLayer.h"
@@ -31,7 +31,7 @@
 #include "layer/TimeValueLayer.h"
 #include "layer/Colour3DPlotLayer.h"
 #include "widgets/Fader.h"
-#include "widgets/Panner.h"
+#include "view/Panner.h"
 #include "widgets/PropertyBox.h"
 #include "widgets/PropertyStack.h"
 #include "widgets/AudioDial.h"
@@ -40,12 +40,12 @@
 #include "audioio/AudioCallbackPlaySource.h"
 #include "audioio/AudioCallbackPlayTarget.h"
 #include "audioio/AudioTargetFactory.h"
-#include "fileio/AudioFileReaderFactory.h"
-#include "fileio/DataFileReaderFactory.h"
-#include "fileio/WavFileWriter.h"
-#include "fileio/CSVFileWriter.h"
-#include "fileio/BZipFileDevice.h"
-#include "fileio/RecentFiles.h"
+#include "data/fileio/AudioFileReaderFactory.h"
+#include "data/fileio/DataFileReaderFactory.h"
+#include "data/fileio/WavFileWriter.h"
+#include "data/fileio/CSVFileWriter.h"
+#include "data/fileio/BZipFileDevice.h"
+#include "base/RecentFiles.h"
 #include "transform/TransformFactory.h"
 #include "base/PlayParameterRepository.h"
 #include "base/XmlExportable.h"
--- a/main/MainWindow.h	Mon Jul 31 12:03:45 2006 +0000
+++ b/main/MainWindow.h	Mon Jul 31 14:05:22 2006 +0000
@@ -22,11 +22,11 @@
 #include <QPointer>
 
 #include "base/Command.h"
-#include "base/ViewManager.h"
+#include "view/ViewManager.h"
 #include "base/PropertyContainer.h"
 #include "layer/LayerFactory.h"
 #include "transform/Transform.h"
-#include "fileio/SVFileReader.h"
+#include "document/SVFileReader.h"
 #include <map>
 
 class Document;
--- a/main/PreferencesDialog.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/main/PreferencesDialog.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -31,7 +31,7 @@
 #include <fftw3.h>
 
 #include "base/Preferences.h"
-#include "fileio/ConfigFile.h"
+#include "base/ConfigFile.h"
 
 PreferencesDialog::PreferencesDialog(QWidget *parent, Qt::WFlags flags) :
     QDialog(parent, flags)
--- a/main/main.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/main/main.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -15,11 +15,12 @@
 
 #include "MainWindow.h"
 
-#include "base/System.h"
+#include "system/System.h"
+#include "system/Init.h"
 #include "base/TempDirectory.h"
 #include "base/PropertyContainer.h"
 #include "base/Preferences.h"
-#include "fileio/ConfigFile.h"
+#include "base/ConfigFile.h"
 
 #include <QMetaType>
 #include <QApplication>
@@ -47,8 +48,6 @@
     exit(0); // without releasing mutex
 }
 
-extern void svSystemSpecificInitialisation();
-
 int
 main(int argc, char **argv)
 {
--- a/main/systeminit.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Sonic Visualiser
-    An audio file viewer and annotation editor.
-    Centre for Digital Music, Queen Mary, University of London.
-    This file copyright 2006 Chris Cannam.
-    
-    This program is free software; you can redistribute it and/or
-    modify it under the terms of the GNU General Public License as
-    published by the Free Software Foundation; either version 2 of the
-    License, or (at your option) any later version.  See the file
-    COPYING included with this distribution for more information.
-*/
-
-#include <QApplication>
-#include <QFont>
-
-#include <iostream>
-
-#ifdef Q_WS_X11
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Xatom.h>
-#include <X11/SM/SMlib.h>
-
-static int handle_x11_error(Display *dpy, XErrorEvent *err)
-{
-    char errstr[256];
-    XGetErrorText(dpy, err->error_code, errstr, 256);
-    if (err->error_code != BadWindow) {
-	std::cerr << "waveform: X Error: "
-		  << errstr << " " << int(err->error_code)
-		  << "\nin major opcode:  "
-		  << int(err->request_code) << std::endl;
-    }
-    return 0;
-}
-#endif
-
-#ifdef Q_WS_WIN32
-
-#include <fcntl.h>
-
-// Set default file open mode to binary
-#undef _fmode
-int _fmode = _O_BINARY;
-
-void redirectStderr()
-{
-    HANDLE stderrHandle = GetStdHandle(STD_ERROR_HANDLE);
-    if (!stderrHandle) return;
-
-    AllocConsole();
-
-    CONSOLE_SCREEN_BUFFER_INFO info;
-    GetConsoleScreenBufferInfo(stderrHandle, &info);
-    info.dwSize.Y = 1000;
-    SetConsoleScreenBufferSize(stderrHandle, info.dwSize);
-
-    int h = _open_osfhandle((long)stderrHandle, _O_TEXT);
-    if (h) {
-        FILE *fd = _fdopen(h, "w");
-        if (fd) {
-            *stderr = *fd;
-            setvbuf(stderr, NULL, _IONBF, 0);
-        }
-    }
-}
-
-#endif
-
-extern void svSystemSpecificInitialisation()
-{
-#ifdef Q_WS_X11
-    XSetErrorHandler(handle_x11_error);
-#endif
-
-#ifdef Q_WS_WIN32
-    redirectStderr();
-    QFont fn = qApp->font();
-    fn.setFamily("Tahoma");
-    qApp->setFont(fn);
-#else
-#ifdef Q_WS_X11
-    QFont fn = qApp->font();
-    fn.setPointSize(fn.pointSize() + 2);
-    qApp->setFont(fn);
-#endif
-#endif
-}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/samples/README	Mon Jul 31 14:05:22 2006 +0000
@@ -0,0 +1,2 @@
+Samples from standard Hydrogen drum machine kits, except for piano.wav
+(ancestry unknown) and click.wav (random noise).
Binary file samples/bass.wav has changed
Binary file samples/beep.wav has changed
Binary file samples/bounce.wav has changed
Binary file samples/clap.wav has changed
Binary file samples/click.wav has changed
Binary file samples/cowbell.wav has changed
Binary file samples/hihat.wav has changed
Binary file samples/kick.wav has changed
Binary file samples/organ.wav has changed
Binary file samples/piano.wav has changed
Binary file samples/snare.wav has changed
Binary file samples/stick.wav has changed
Binary file samples/strike.wav has changed
Binary file samples/tap.wav has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sonic-visualiser.qrc	Mon Jul 31 14:05:22 2006 +0000
@@ -0,0 +1,67 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+    <file>icons/waveform.png</file>
+    <file>icons/spectrogram.png</file>
+    <file>icons/timeruler.png</file>
+    <file>icons/pane.png</file>
+    <file>icons/instants.png</file>
+    <file>icons/notes.png</file>
+    <file>icons/values.png</file>
+    <file>icons/colour3d.png</file>
+    <file>icons/playpause.png</file>
+    <file>icons/ffwd.png</file>
+    <file>icons/ffwd-end.png</file>
+    <file>icons/rewind.png</file>
+    <file>icons/rewind-start.png</file>
+    <file>icons/playselection.png</file>
+    <file>icons/playloop.png</file>
+    <file>icons/fader_background.png</file>
+    <file>icons/fader_knob.png</file>
+    <file>icons/fader_knob_red.png</file>
+    <file>icons/fader_leds.png</file>
+    <file>icons/faders.png</file>
+    <file>icons/select.png</file>
+    <file>icons/text.png</file>
+    <file>icons/draw.png</file>
+    <file>icons/draw-curve.png</file>
+    <file>icons/move.png</file>
+    <file>icons/navigate.png</file>
+    <file>icons/zoom.png</file>
+    <file>icons/zoom-in.png</file>
+    <file>icons/zoom-out.png</file>
+    <file>icons/undo.png</file>
+    <file>icons/redo.png</file>
+    <file>icons/new.png</file>
+    <file>icons/exit.png</file>
+    <file>icons/speaker.png</file>
+    <file>icons/annotation.png</file>
+    <file>icons/fileopen.png</file>
+    <file>icons/fileopen-22.png</file>
+    <file>icons/fileclose.png</file>
+    <file>icons/filenew.png</file>
+    <file>icons/filenew-22.png</file>
+    <file>icons/filesave.png</file>
+    <file>icons/filesave-22.png</file>
+    <file>icons/filesaveas.png</file>
+    <file>icons/filesaveas-22.png</file>
+    <file>icons/editdelete.png</file>
+    <file>icons/editcut.png</file>
+    <file>icons/editcopy.png</file>
+    <file>icons/editpaste.png</file>
+    <file>samples/bass.wav</file>
+    <file>samples/beep.wav</file>
+    <file>samples/bounce.wav</file>
+    <file>samples/clap.wav</file>
+    <file>samples/click.wav</file>
+    <file>samples/cowbell.wav</file>
+    <file>samples/hihat.wav</file>
+    <file>samples/kick.wav</file>
+    <file>samples/organ.wav</file>
+    <file>samples/piano.wav</file>
+    <file>samples/snare.wav</file>
+    <file>samples/stick.wav</file>
+    <file>samples/strike.wav</file>
+    <file>samples/tap.wav</file>
+    <file>i18n/sonic-visualiser_ru.qm</file>
+</qresource>
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sv.pro	Mon Jul 31 14:05:22 2006 +0000
@@ -0,0 +1,55 @@
+
+TEMPLATE = app
+
+SV_UNIT_PACKAGES = fftw3f samplerate jack portaudio mad oggz fishsound lrdf raptor sndfile
+load(../sv.prf)
+
+CONFIG += sv qt thread warn_on stl rtti exceptions
+QT += xml
+
+TARGET = sonic-visualiser
+
+DEPENDPATH += . .. audioio document i18n main transform
+INCLUDEPATH += . .. audioio document transform main
+LIBPATH = ../view ../layer ../data ../widgets ../plugin ../base ../system $$LIBPATH
+LIBS = -lsvview -lsvlayer -lsvdata -lsvwidgets -lsvplugin -lsvbase -lsvsystem $$LIBS
+
+OBJECTS_DIR = tmp_obj
+MOC_DIR = tmp_moc
+
+# Input
+HEADERS += audioio/AudioCallbackPlaySource.h \
+           audioio/AudioCallbackPlayTarget.h \
+           audioio/AudioCoreAudioTarget.h \
+           audioio/AudioGenerator.h \
+           audioio/AudioJACKTarget.h \
+           audioio/AudioPortAudioTarget.h \
+           audioio/AudioTargetFactory.h \
+           audioio/IntegerTimeStretcher.h \
+           document/Document.h \
+           document/SVFileReader.h \
+           main/MainWindow.h \
+           main/PreferencesDialog.h \
+           transform/FeatureExtractionPluginTransform.h \
+           transform/RealTimePluginTransform.h \
+           transform/Transform.h \
+           transform/TransformFactory.h
+SOURCES += audioio/AudioCallbackPlaySource.cpp \
+           audioio/AudioCallbackPlayTarget.cpp \
+           audioio/AudioCoreAudioTarget.cpp \
+           audioio/AudioGenerator.cpp \
+           audioio/AudioJACKTarget.cpp \
+           audioio/AudioPortAudioTarget.cpp \
+           audioio/AudioTargetFactory.cpp \
+           audioio/IntegerTimeStretcher.cpp \
+           document/Document.cpp \
+           document/SVFileReader.cpp \
+           main/main.cpp \
+           main/MainWindow.cpp \
+           main/PreferencesDialog.cpp \
+           transform/FeatureExtractionPluginTransform.cpp \
+           transform/RealTimePluginTransform.cpp \
+           transform/Transform.cpp \
+           transform/TransformFactory.cpp
+RESOURCES += sonic-visualiser.qrc
+TRANSLATIONS += i18n/sonic-visualiser_ru.ts
--- a/transform/FeatureExtractionPluginTransform.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/transform/FeatureExtractionPluginTransform.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -19,14 +19,14 @@
 #include "plugin/PluginXml.h"
 #include "vamp-sdk/Plugin.h"
 
-#include "base/Model.h"
+#include "data/model/Model.h"
 #include "base/Window.h"
-#include "model/SparseOneDimensionalModel.h"
-#include "model/SparseTimeValueModel.h"
-#include "model/DenseThreeDimensionalModel.h"
-#include "model/DenseTimeValueModel.h"
-#include "model/NoteModel.h"
-#include "fileio/FFTFuzzyAdapter.h"
+#include "data/model/SparseOneDimensionalModel.h"
+#include "data/model/SparseTimeValueModel.h"
+#include "data/model/DenseThreeDimensionalModel.h"
+#include "data/model/DenseTimeValueModel.h"
+#include "data/model/NoteModel.h"
+#include "data/fft/FFTFuzzyAdapter.h"
 
 #include <fftw3.h>
 
--- a/transform/RealTimePluginTransform.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/transform/RealTimePluginTransform.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -20,9 +20,9 @@
 #include "plugin/RealTimePluginInstance.h"
 #include "plugin/PluginXml.h"
 
-#include "base/Model.h"
-#include "model/SparseTimeValueModel.h"
-#include "model/DenseTimeValueModel.h"
+#include "data/model/Model.h"
+#include "data/model/SparseTimeValueModel.h"
+#include "data/model/DenseTimeValueModel.h"
 
 #include <iostream>
 
--- a/transform/RealTimePluginTransform.h	Mon Jul 31 12:03:45 2006 +0000
+++ b/transform/RealTimePluginTransform.h	Mon Jul 31 14:05:22 2006 +0000
@@ -17,7 +17,7 @@
 #define _REAL_TIME_PLUGIN_TRANSFORM_H_
 
 #include "Transform.h"
-#include "RealTimePluginInstance.h"
+#include "plugin/RealTimePluginInstance.h"
 
 class DenseTimeValueModel;
 
--- a/transform/Transform.h	Mon Jul 31 12:03:45 2006 +0000
+++ b/transform/Transform.h	Mon Jul 31 14:05:22 2006 +0000
@@ -16,9 +16,9 @@
 #ifndef _TRANSFORM_H_
 #define _TRANSFORM_H_
 
-#include "Thread.h"
+#include "base/Thread.h"
 
-#include "base/Model.h"
+#include "data/model/Model.h"
 
 typedef QString TransformName;
 
--- a/transform/TransformFactory.cpp	Mon Jul 31 12:03:45 2006 +0000
+++ b/transform/TransformFactory.cpp	Mon Jul 31 14:05:22 2006 +0000
@@ -24,7 +24,7 @@
 
 #include "widgets/PluginParameterDialog.h"
 
-#include "model/DenseTimeValueModel.h"
+#include "data/model/DenseTimeValueModel.h"
 
 #include <iostream>
 #include <set>