VCVRack / AudibleInstruments

VCV Rack plugin based on Mutable Instruments Eurorack modules
https://vcvrack.com/AudibleInstruments.html
Other
387 stars 84 forks source link

Initial version of Peaks. #45

Closed cschol closed 6 years ago

cschol commented 6 years ago

Port of Mutable Instruments Peaks a.k.a. "Percussive Synthesizer".

A few comments:

gbrandt1 commented 6 years ago

may i ask what's gonna happen with this? thanks!

AndrewBelt commented 6 years ago

It'll be included with Rack 0.6.

evmaki commented 6 years ago

FYI @cschol I believe the font used on the faceplates is DIN.

cschol commented 6 years ago

@evmaki Thanks. Andrew is taking care of the face plate.

AndrewBelt commented 6 years ago

This needs some work. IOBuffer isn't needed at all. Remove that, contain everything as member variables. getSystemTimeMs() should keep track of frame times, not real-time. In fact, holding buttons should be removed in favor of context menu items, so the timer shouldn't be needed. Other than that, I have no idea what this module does, so I don't know if all the UI code is necessary.

cschol commented 6 years ago

Peaks is somewhat of a weird multi-function module (LFO, Drum Synth, and others). Replacing those mode selection buttons with context menus does not make sense, in my opinion. The buttons allow switching between modes at runtime (to change settings in the other channel) and it would loose some of its quirky appeal if the buttons worked differently than in the real module. It is a little convoluted, but I thought I read somewhere that's partly why Olivier obsoleted it.

I tried removing the IOBuffer initially, but some of that code was pretty coupled and in the end it was easier to just port the whole thing. I did not want to introduce any weird bugs due to refactoring.

Let me know if you want me to work on this more.

gbrandt1 commented 6 years ago

and before you remove parts of the code if you have the time you could maybe also to cast a brief look at the Dead Man's Catch alternative firmware - not to include in Rack, of course, but in terms of retaining capability of community implementation.