What I want in a host

Audio Plugin Hosts and other audio software applications discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

Okay, I guess I've posted a lot of this before in various threads and I guess also it's not going to interest a lot of people but, as my mind was wandering today (I was off work), I thought about what I really want in a host...

The point of posting (as if one were needed ;)) is to see whether my views gel with anyone, whether the overall nature of a "host" is really this generic and get some feedback on the "what's missing" bits.

Basically, it's got to be modular, with good partitioning between the UI and underlying processing. This description explicitly does not cover complex UI design, such as piano roll editing. It's more concerned with the fundamental relationships below whatever UI is put in place. I would sum up the UI side by saying merely "it must be comfortable to use". Ideally, the UI would be pluggable, anyway.

MIDI input module (attaches to an OS-level MIDI input)
starts off with three outputs:
  • 5 pin MIDI out port (virtual!)
  • CV connector
  • Trigger connector
5 pin MIDI out port
  • Allows full MIDI data stream to be fed to another unit (with a MIDI In connector)
  • Maybe allows MIDI data stream to be filtered in various ways
    (e.g.s: just send Ch 1 note data; send everything but Ch 16 CCs and SysEx)
  • MIDI OX-like transforms would definitely be done in an MFX module, not here
  • anything wanting "raw" MIDI would take this data rather than trigger/CV data
Trigger out connector
  • i.e. a note data source (Note On, note number, velocity)
  • Bundle Tune Request, Timing Clock, Start, Continue, Stop, Active Sensing and Reset messages in here?
  • Note off explicitly "closes the gate"; allow a gate time to be set, too; allow either to take priority
  • source specified as either single channel or ignore channel
  • do transforms here or in a trigger transform module?
CV out connector
  • i.e. an "automation" source, scaled to 0..1
  • source specified as MIDI message type (Poly Aftertouch, CC/RPN/NRPN, Program Change(?), Chan Aftertouch, Bend)
  • also allow Note data as CV source
  • Bundle Song Position Pointer and Song Select messages in here? ("You don't have to use them...")
  • either single channel or ignore channel
  • controller curves (i.e. specific point-to-point mapping from CC etc to 0..1 range)?
------------

Audio Input module (attaches to an OS-level audio input)
starts off with one audio out connector for each audio channel

Audio out connector
  • single channel audio signal
  • maybe have "fat" connectors for multi-channel (e.g. 7.2) signals
  • can't think of any "selection" criteria beyond specifying which channel...
  • resampling should be a module? Or done here? Here I suppose.
------------

Connectors

This describes some general behaviours.

In connectors
  • shouldn't need any parameters
  • this may mean pushing back things like "target MIDI channel" onto an out connector (or a mapper module), if needs be
  • only allow one cable to be connected (require merge/mix modules)
Out connectors
  • Plugging a virtual cable into any of the outputs causes another of that output to appear.
  • option to group the connectors and just have a whole bunch of cables? (Only if all parameters are the same for all cables)
------------

Transform modules
  • Have specified inputs and outputs (i.e. based on "published" interface)
  • option to configure any CVs to be knobs, sliders or buttons, setting low and high values (0..1)
  • Clearly, VST, VSTi, DX, DXi, ReWire, JACK and so on are going to be modules with appropriate connectors. Nuff said.
UI modules
  • Audio, MIDI, CV and trigger units with various behaviours
  • "sequencer" is a UI module that "plays" sequences
  • "sequence" is one of audio, MIDI, CV or trigger
  • all knobs, sliders and buttons have a CV and/or trigger input
  • "mixer" is a UI module containing "channel" modules
  • "channel" is a UI module containing a "module rack" module plus the usual controls (pan, volume, mute, solo)
  • "module rack" short-cuts some wiring up, assuming modules inserted are to be used as effects (audio taking priority over midi if there's ambiguity)
Generically, a sequence module changes its output value over time.
The sequencer changes which sequence(s) is(are) active, hence its own outputs change.

CV Sequence module
  • the basic unit of automation
Gate modules
  • Mmm..?
Output modules
  • attach to OS-level outputs
  • simple, like in connectors (which is all they present)
------------

Some cool built in stuff just for fun:

Audio to CV and trigger modules
  • takes (VLF) audio channel and turns it into a CV or trigger (this isn't pitch to Note, more like what the drumKAT inputs do)
Pitch to trigger module (monophonic)
  • this is takes an audio channel and tries to extract pitch information and present it as MIDI Note triggers
Need some CV transform modules?
  • e.g. CV to trigger: get that CC4 to velocity-sensitive Hihat working!
Need some trigger transform modules?
  • auto pitch bend between notes..?
SysEx to CV and Trigger module?
  • some magic way to do really complex stuff...
*****************************************
***Need some way of automating routing***
*****************************************

Post

Rather than "pollute" my first message, I'll follow up here :).

First off, I'm aware of a number of "modular environments" in which a lot of this already exists (pd, keykit, etc). However, I'm actually after a package that comes set up like a "normal host" (Muzys, Project 5, etc) by default but with the level of configurability you'd get by having everything modular. I'm also after a reasonably polished user-interface (and eXT wasn't, last time I looked).

Secondly, I'm guessing there's stuff I've not thought of in what I've listed above, so I'd really like to hear comments along the lines of "So how would you see yourself doing XXXX?".

Finally, anyone with experience of building realtime multi-media data processing systems, please let me know what the major pitfalls are likely to be :D -- I might just do it myself...

Post

You need Babya Logic.
Every day takes figuring out all over again how to f#ckin’ live.

Post

Sounds like you want to use SE (or eXT) and a "normal host" combined. Just make SE .dll's as you need them for specific projects. That's what I do.

Post

chagzuki wrote:You need Babya Logic.
Wozzat?
soma wrote:Sounds like you want to use SE (or eXT) and a "normal host" combined. Just make SE .dll's as you need them for specific projects. That's what I do.
This is pretty much "where I came in", I guess. I can see how to get what I want. I'd really rather someone else did it and said "here, buy this!" :D

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”