You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
8.3KB

  1. plugin ideas:
  2. - Mult with labels
  3. - so I can route a distance output to mult and label
  4. it as 'main seq gate output' to avoid tracing cables
  5. - seq with start/stop/reset triggers (ie, one shot sequencer)
  6. (or 'play', 'pause', 'go to begin')
  7. - solve 'how do I run a sequence once?' FAQ
  8. - event log
  9. - visualization of past triggers/gates
  10. - time series or sparkline-ish
  11. - more or less a scope but without y values and
  12. a very long time
  13. - could do diff colors for gates/triggers
  14. - or gates up and triggers down
  15. - wide module
  16. - multiple time view zooms
  17. - 1x, 2x, 5x, 10, 20x, 50x, etc
  18. - mostly for appearance or troubleshooting/debugging event stuff
  19. - could evolve to supporting playing the the history back
  20. - 1x speed or faster/slower
  21. - scrubbing?
  22. - multiple channels of events
  23. - table module
  24. - "an oscillator is a phasor and a table"
  25. - phasor input (0.0 -> 1.0) or other scaled
  26. - value output
  27. - on step, read phasor value, look for a match
  28. in the table, output the value
  29. - ui
  30. - just a scrollable list?
  31. - columns
  32. - phasor
  33. - start range
  34. - end range
  35. - output value
  36. - buttons to add delete entry
  37. - load table from json in context menu
  38. - uses:
  39. - feed a sawtooth osc output into it to
  40. create rudimentary wave table
  41. - arbitrary quantizer
  42. - building block
  43. - fancy options
  44. - entries that map a range of phasor input
  45. values to a range of output values
  46. - map ranges could be linear/log etc
  47. - linear
  48. - slope
  49. - offset
  50. - sub ranges could be cos/sine/exp/some distribution etc
  51. - (similar to the old GIMP color gradient editor)
  52. - likely could use gimp gradient (ggr) files as a type of table
  53. - modulating the table offset or value amplitudes
  54. - credits module
  55. - widget that shows author, create/mod date, urls, license, other metainfo
  56. - would save into vcv file as module json data
  57. - use a rack_credits.json in ~/ or rack doc root to set the default
  58. - list of author/credit metadata
  59. - would get appended to if modified by new author
  60. - how to only update on 'save' or 'save as' ?
  61. - don't want to append on every autosave.vcv write
  62. - track a single 'last_edit' to persist on every toJson
  63. - then on load/fromJSON, add last_edit to author list
  64. - if there is a way for plugin to distinquish a 'real save' vs
  65. an 'autosave', then could use that.
  66. - how to tell when a patch has been 'modified'?
  67. - needed to avoid adding info on every save or autosave
  68. - slightly klugey way:
  69. - if plugin knows the patch it is in, could load patch .vcv/json
  70. data and compare to 'previous'.
  71. - chksum would be simplest
  72. - but could do a smarter/deeper compare diving into the data
  73. - uses:
  74. - a patch with the module includes the author info
  75. - if patch is shared (via patchstorage for ex), and modified
  76. by a different author, the module json would include info
  77. for the original author and modification author
  78. - just as a display widget when sharing a screen capture
  79. - concerns:
  80. - could probably be better implemented as a feature of the core vcv serialization
  81. - 'Equal and opposite'
  82. - two eqs with 'opposite' settings and an effects loop in between
  83. - before eq, after eq
  84. - same bands and q's, but opposite gain
  85. - ie, if 'before eq' boosts bass and treble by 10db and cuts mids by 12db
  86. then the 'after eq' would cut bass and treble by 10db and boost mids by 12db
  87. - an effects send and return in between
  88. - munge audio signal, send it to effect (a distortion for ex) and unmunge on the way out
  89. - the before/after transforms would automatically mirror each other
  90. - otherwise pointless since it could be done with other modules
  91. - other variations could exist for other reversible-ish transforms
  92. - dont have to be perfect or lossless
  93. - compress/expand
  94. - bitcrush / 'bit extropalate' (is that a thing?)
  95. - forward/reverse delay?
  96. - pitch shift (probably most interesting, but
  97. - transport gui module
  98. - play/stop/pause/fast forward/reverse/record buttons
  99. - gate and trig outputs for them
  100. - just buttons, but with a explicit purpose
  101. - uses
  102. - generative patches that need a 'press play to start'
  103. - specific values
  104. - module with just text entrie fields for entering a float value
  105. and an output for that value
  106. - possibly with text widget in combo with a dial or inc/dec
  107. buttons (spinbox widget)
  108. - or 'click and drag to change value'
  109. - up/down for small value
  110. - left/right for multiplier (middle = 1x, left = 0..1.0x, right >1.0x multi)
  111. - 'up and to the left' for fine grained adjustments
  112. - fancy
  113. - maybe automatically also show CV v/oct freq or note equiv
  114. - maybe gate out and button to click to send value and gate output together
  115. - Seq with per step gate length and rest length between steps
  116. - 'rest' steps basically
  117. - A cv 1v/oct display -> freq hz -> period secs -> bpm.
  118. - ( could display v passed through and/or let you specify as text)
  119. - CV out
  120. - button to send gate
  121. - basically a keyboard with text/entry widgets to let you specify
  122. CV voltage/hz/period/note name
  123. - other possible things to display/select
  124. - midi note number
  125. - # of steps from a root
  126. - interval from a root ( third, flat fifth, etc)
  127. - staff / note
  128. - bpm (for a LFO or general nerdery)
  129. - generic voltage quantizer
  130. - based on 'table' module
  131. - except input CV is 'rounded' to edge of maps
  132. - see 'fancy options' for table module above
  133. - 'Attached file' module.
  134. - GUI file picker
  135. - add base64 of file to data to store in plugin Json.
  136. - Could be a list
  137. - 'Maze Table'
  138. - wave table, but with a maze
  139. - instead of phasor indexing an array, would "index" into
  140. a path along the maze graph
  141. - could have breath first and depth first paths as options
  142. - use DAG style mazes (one and only one path out, no loops or cycles)
  143. - though cycles in maze could be analog for loops in waveform playback
  144. - maybe something hilbert curve esque?
  145. - scmhidtt trigger / pulse generator banks
  146. - just ui to a set of SchmittTriggers
  147. - each strip
  148. - input
  149. - attentuator for process()'ed value
  150. - output trigger
  151. - for generator strip
  152. - trigger input
  153. - knob/cv in/param for duration
  154. - gate output
  155. - Matrix clock
  156. - N x N matrix
  157. - each row defaults to a clock division
  158. - each column defaults to clock multiply
  159. - 0,0 defaults to 1x1 quarter note for tempo
  160. - rows default to 1,2,3,4,6,8,12,16, division
  161. - ditto for columns multi
  162. - but row/columns mult/div could be changed to anything
  163. - XY pad matrix mixer
  164. - matrix mixer with a JL-Modules/kaosspad/reactor style XY pad
  165. at each cross point
  166. - 1,1 -> top output and right output
  167. - 1,0 -> just top output
  168. - -1,-1 -> inverted output to top and right output
  169. - Matrix Mixer with multiple scenes that morph/interpolate
  170. - more or less like Bidoo ACNE except values morph
  171. between scenes insted of
  172. - 2.5 dimension matrix / mixer
  173. - 8x8 matrix but with an output at
  174. each crossing point
  175. - possibly with knob/param for output level
  176. of each output
  177. - maybe a per cross mute/solo
  178. - Much like the movies, the first one was the best.
  179. - Notes module with CV/trigger control and multiple messages
  180. - like a plain notes module, but can react to input from
  181. patch
  182. - use case would be describing stages of a generative patch
  183. - or for adding info to screencast videos
  184. - Gate Divider
  185. - like gate length, but instead of generating one gate, it
  186. generates multiple gates that add up to gate length
  187. - how to seperate?
  188. - some fixed inbetween interval ("kerf")
  189. - divide into on and off gates
  190. - divide a 1s gate by 1 -> one .5s gate then a .5s 'rest'
  191. (and vice versa / inverse 10 or 01)
  192. - divide by 3 -> one .3333s gate, one .3333s rest, one .3333 gate
  193. ( ie, 101 or 010)
  194. - divide by 4 -> .25 gate, .25 rest, .25 gate, .25rest
  195. (1010, 0101)
  196. - divide by 5 -> .20 on, .20 off, .20 on, .20 off, .20 on
  197. (10101, 01010)
  198. - kind of similar to Walsh codes
  199. " Experimental Electronic Music Devices Employing Walsh Functions",
  200. "BERNARD A. HUTCHINS, JR"
  201. "JOURNAL OF THE AUDIO ENGINEERING SOCIETY, October 1973"
  202. (https://pdfs.semanticscholar.org/6b9c/30f94551aaf05f077aa491f31b196898cd90.pdf)
  203. - "Sequency" - theres a module name if I ever heard one.