enums.proto 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. /* WARNING!! This message format is in pre-alpha development. There is a high
  2. * probability any of these formats will change, which will cause prior
  3. * versions to no longer work. You are more than welcome to setup to help us
  4. * develop and/or test, but it is NOT recommend you use the server or message
  5. * formats for production purposes until we at least reach beta development.
  6. * Thank you.
  7. */
  8. syntax = "proto3";
  9. /*
  10. * ContributionType: This is an enumeration that defines what each person
  11. * contributed to the track. This can be used to keep track of who helped on
  12. * each mix. It is automatically maintained by the server based on the
  13. * messages that are uploaded & (if necessary) approved by the owner. Note: we
  14. * can consider adding additional types for certain instruments, e.g. guitar,
  15. * bass, drums, vocals, etc. Given how many different types of instruments
  16. * there are out there, and the fact that users can contribute with multiple
  17. * instruments (and adding more as we find some we missed and/or new ones are
  18. * invented, I'm not sure if we want to allow this level of specificity.
  19. * We need to think on this more.
  20. */
  21. enum ContributionType {
  22. Owner = 0; // Person who uploaded the Project
  23. BandMember = 1; // Person who is able to upload without approval
  24. ContentContributer = 2; // Person who submitted changes to the song but are
  25. // not directly affiliated with the owner (an
  26. // outside contributer) and required approval
  27. MixingEngineer = 3; // Person who did not add to the song content-wise
  28. // but mixed the content.
  29. MasteringEngineer = 4; // Person who did not add to the song content-wise
  30. // but mastered the content after it was mixed.
  31. }
  32. /*
  33. * DataType: Identifies whether or not the track/clip contains audio data or
  34. * MIDI data.
  35. */
  36. enum DataType {
  37. Audio = 0;
  38. Midi = 1;
  39. }
  40. /*
  41. * ChangeType: Used to identify the type of change being made in an automation
  42. * event. Is it an immediate jump from the old value to a new value,
  43. * consistent ramp, curved ramp, etc.?
  44. */
  45. enum ChangeType {
  46. Immediate = 0;
  47. StraightRamped = 1;
  48. CurvedRamped = 2;
  49. }
  50. /*
  51. * PluginType: Identifies the format of the plugin. Note: Starting with the
  52. * most common Linux Plugins, since those are the ones I know best, but we will
  53. * want to expand the list to include plugin formats used on other OS's as
  54. * well.
  55. */
  56. enum PluginType {
  57. LADSPA = 0;
  58. DSSI = 1;
  59. LV2 = 2;
  60. VST2 = 3;
  61. VST3 = 4;
  62. AU = 5;
  63. }
  64. /*
  65. * EffectType: A list of effects types. This can be used in logic to use an
  66. * alternate plugin if the original plugin is not available on another system.
  67. */
  68. enum EffectType {
  69. AmpModel = 0;
  70. Autotune = 1;
  71. BitCrusher = 2;
  72. Chorus = 3;
  73. Compressor = 4;
  74. Delay = 5; // Include Echo, or should echo be separate?
  75. Distortion = 6;
  76. Envelope = 7;
  77. Equalizer = 8;
  78. Expander = 9; // a.k.a. Stereo Widener
  79. Flanger = 10;
  80. Gate = 11; // a.k.a. Noise Gate
  81. ImpulseResponse = 12;
  82. Limiter = 13;
  83. Meter = 14;
  84. Overdrive = 15;
  85. Phaser = 16;
  86. Repeater = 17;
  87. Reverb = 18;
  88. Sampler = 19;
  89. Slicer = 20;
  90. Synthesizer = 21; // Includes Oscillators
  91. Tremolo = 22;
  92. Vocoder = 23;
  93. Wah = 24;
  94. }
  95. /*
  96. * ParameterType: Identifies whether the value to be changed is on the Track or
  97. * on a specific plugin. NOTE: PT added to end of each value to mitigate name
  98. * collisions with the messages of the same name.
  99. */
  100. enum ParameterType {
  101. TrackPT = 0;
  102. PluginPT = 1;
  103. }
  104. /*
  105. * PortType defines Input or Output type
  106. */
  107. enum PortType {
  108. InputPort = 0;
  109. OutputPort = 1;
  110. }