Project manifesto

A (very) tracktion themed wave editor.

The primary goal is to create a simple wave editor that supports vst plugins and a proprietary plugin format.

The editor will also support a lot of behind the scenes extensibility for users who wish to customize their working experience, or automate custom tasks.

A good model to consider would be MS Word. It is basically a word processor, but when coupled with VB, it can be extended to auto form letters and memos, or even serve as the front end to a database.

Proprietary plugins

The application will support two different types of proprietary plugins, though from an implemtation perspective, they may be very closely linked.

Primarily the plugins will provide two types of fucntionality not possible (or efficient) with VST.

It is intended that installing plugins be a simple case of dropping the dll file into a folder. Once installed plugins will be available to a user transparently.

The first type will provide extensibility to the wave editor tracks. The idea here is that the wavefrom viewer is a module, and that other modules can be installed. These modules basically provide a timeline based view of linear data, and could take the form of anything from video, to customized wave viewers, or MIDI patterns.

The second type of plugin will act much like a vst plugin but will be able to specify which data block it wishes to process from a waveform. This is primarily to allow plugins that need access to an entire waveform to do their work (reverse reverb or look ahead processing for example) a method by which a disk streamed waveform can be processed as if it is entirely in memory.

Scripting

The scripting language that can be used will likely be non-specified, as most scripting languages support failrly common interfaces to c++ apps, so the user will very liekly be able to choose their own preference. For consistency though, the app will be designed with Python in mind.

Editor Profiles

The user will be able to select from a default list of editor profiles, or add their own new presets. These profiles simply define which track modules (see the section on proprietary plugins) are in use and how they are laid out.

Typical profiles would be 5.1 editing or stereo editing. A user who has added a video display module to their install could then create a ‘video 5.1’ by simply adding a video track to their display then saving the current display as a preset.

Extensible menus

Whilst vst plugins will show under a list of VST plugins, proprietary plugins will register themselves with the host so that the host can integrate them into the standard menus. This means that maintaining the program is easier for the developers, and that utitilizing upgrade modules is seemless and intuitive for the user.