ArchitecturalSummary » History » Version 2

« Previous - Version 2/10 (diff) - Next » - Current version
Chris Cannam, 2012-01-13 04:47 PM


Sonic Visualiser: architectural summary

Sonic Visualiser is a substantial application written in C++ using the Qt user interface toolkit.

It is a cross-platform application that can be built on (at least) OS/X, Windows, Linux, and Solaris, but it has a substantial number of dependencies on third-party libraries which contribute to the complexity of the build process. The code also does not currently build with Visual C++; the Windows build is done using MinGW and g++.

The Sonic Visualiser code is provided as a number of separate libraries, with varying dependencies. These are managed in separate projects on this code site, and are as follows:

  • svcore -- Non-interactive code, without user interface or audio device I/O. This contains a number of submodules:
    • system -- Some system-dependent code that Qt did not provide
    • base -- Miscellaneous handy classes
    • data/fft -- FFT code
    • data/fileio -- Audio file import and export and related classes
    • data/midi -- MIDI-related code
    • data/model -- Data models used for Sonic Visualiser's internal representations. These include waveforms (including zoomed previews) as well as grids (spectrograms etc) and editable data (time/value plots, MIDI-style note tracks, text etc).
    • data/osc -- OSC control