123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- /* WARNING!! This message format is in pre-alpha development. There is a high
- * probability any of these formats will change, which will cause prior
- * versions to no longer work. You are more than welcome to setup to help us
- * develop and/or test, but it is NOT recommend you use the server or message
- * formats for production purposes until we at least reach beta development.
- * Thank you.
- */
- syntax = "proto3";
- /*
- * ContributionType: This is an enumeration that defines what each person
- * contributed to the track. This can be used to keep track of who helped on
- * each mix. It is automatically maintained by the server based on the
- * messages that are uploaded & (if necessary) approved by the owner. Note: we
- * can consider adding additional types for certain instruments, e.g. guitar,
- * bass, drums, vocals, etc. Given how many different types of instruments
- * there are out there, and the fact that users can contribute with multiple
- * instruments (and adding more as we find some we missed and/or new ones are
- * invented, I'm not sure if we want to allow this level of specificity.
- * We need to think on this more.
- */
- enum ContributionType {
- Owner = 0; // Person who uploaded the Project
- BandMember = 1; // Person who is able to upload without approval
- ContentContributer = 2; // Person who submitted changes to the song but are
- // not directly affiliated with the owner (an
- // outside contributer) and required approval
- MixingEngineer = 3; // Person who did not add to the song content-wise
- // but mixed the content.
- MasteringEngineer = 4; // Person who did not add to the song content-wise
- // but mastered the content after it was mixed.
- }
- /*
- * DataType: Identifies whether or not the track/clip contains audio data or
- * MIDI data.
- */
- enum DataType {
- Audio = 0;
- Midi = 1;
- }
- /*
- * ChangeType: Used to identify the type of change being made in an automation
- * event. Is it an immediate jump from the old value to a new value,
- * consistent ramp, curved ramp, etc.?
- */
- enum ChangeType {
- Immediate = 0;
- StraightRamped = 1;
- CurvedRamped = 2;
- }
- /*
- * PluginType: Identifies the format of the plugin. Note: Starting with the
- * most common Linux Plugins, since those are the ones I know best, but we will
- * want to expand the list to include plugin formats used on other OS's as
- * well.
- */
- enum PluginType {
- LADSPA = 0;
- DSSI = 1;
- LV2 = 2;
- VST2 = 3;
- VST3 = 4;
- AU = 5;
- }
- /*
- * EffectType: A list of effects types. This can be used in logic to use an
- * alternate plugin if the original plugin is not available on another system.
- */
- enum EffectType {
- AmpModel = 0;
- Autotune = 1;
- BitCrusher = 2;
- Chorus = 3;
- Compressor = 4;
- Delay = 5; // Include Echo, or should echo be separate?
- Distortion = 6;
- Envelope = 7;
- Equalizer = 8;
- Expander = 9; // a.k.a. Stereo Widener
- Flanger = 10;
- Gate = 11; // a.k.a. Noise Gate
- ImpulseResponse = 12;
- Limiter = 13;
- Meter = 14;
- Overdrive = 15;
- Phaser = 16;
- Repeater = 17;
- Reverb = 18;
- Sampler = 19;
- Slicer = 20;
- Synthesizer = 21; // Includes Oscillators
- Tremolo = 22;
- Vocoder = 23;
- Wah = 24;
- }
- /*
- * ParameterType: Identifies whether the value to be changed is on the Track or
- * on a specific plugin. NOTE: PT added to end of each value to mitigate name
- * collisions with the messages of the same name.
- */
- enum ParameterType {
- TrackPT = 0;
- PluginPT = 1;
- }
- /*
- * PortType defines Input or Output type
- */
- enum PortType {
- InputPort = 0;
- OutputPort = 1;
- }
|