Dewb / monome-rack

VCV Rack plugin for monome Eurorack modules
GNU General Public License v2.0
226 stars 13 forks source link

[BUG REPORT] Meadowphysics triggers from Ansible CV outs not working #187

Closed vijaymarupudi closed 10 months ago

vijaymarupudi commented 10 months ago

Platform/Version

Describe the bug

When I use Ansible and set it to Meadowphysics in the 8 triggers mode, the triggers from the CV outs don't seem to be working as triggers to other modules? The resting voltage for the regular triggers is 0V, while the resting voltage for the triggers from the CV outs seems to be 0.01V, which doesn't work with other modules.

How to Reproduce Steps to reproduce the behavior:

  1. Setup Ansible to Meadowphysics
  2. Connect virtual or physical grid
  3. Configure to 8 TRs mode
  4. Connect CV triggers to a module that accepts triggers

Patch file

Here's a simple patch. Dependencies: MindMeld Mixmaster, Befaco Kickall, and the Monome modules. meadowphysics-test.zip

Dewb commented 10 months ago

Hi, thanks for the report! I believe the core issue here is with Befaco Kickall; the Rack Voltage Standards specify that dropping below 0.1V should be enough to clear a trigger input: https://vcvrack.com/manual/VoltageStandards#Triggers-and-Gates

Kickall should use the three-argument version of SchmittTrigger::process() here, to specify a 0.1V low and 1V high threshold. (The defaults are 0.0 and 1.0): https://github.com/VCVRack/Befaco/blob/1698b616dd284db3d7e1eb0d2a54f3931a4772db/src/Kickall.cpp#L84

The slight offset (it's less than 0.001V, but Rack rounds up) on the DAC outputs is intentional to reduce the average absolute pitch error, but it is confusing in circumstances like this when the DAC outs are used as triggers, so I'm going to look at changing that behavior in the next release.

vijaymarupudi commented 10 months ago

Appreciate you taking a look at this!

Looks like many Befaco modules don't follow the voltage standards, for example, Rampage doesn't.

https://github.com/VCVRack/Befaco/blob/1698b616dd284db3d7e1eb0d2a54f3931a4772db/src/Rampage.cpp#L223

Would appreciate a change in behavior, I'll send a pull request to Befaco to fix this in the modules I can find, but I suspect many other modules don't implement this properly in practice...