Coder Social home page Coder Social logo

Comments (4)

hemmer avatar hemmer commented on September 13, 2024

Hi - thanks for the report. First of all, to clarify the hardware doesn't do any DC removal, and you can always get that mode from the context menu.

  1. When applied, the DC blocker is just a naive adjustment based on the number of active steps, rather than an explicit DC filter. If you use sync to override (as you're doing) then it probably wont be correct. However without sync it should be accurate, but let me know if it's not. See below for Bogaudio comparison (at 25% pw which is the same as one step one + one step off). I guess if you want real DC, I'd turn it off on the module and add a dedicated blocker afterwards.
    image

  2. On my hardware Sampling Modulator, if:

  • the clock is external, Trigg Out gives a constant short trigger out (same short length regardless of external clock speed), see below (clock from Pams blue, pink Sampling Modulator)
  • the clock is external, Trigg Out gives a gate out, with width 50%
    I agree it's maybe counter-intuitive, but I think the software is consistent with the hardware, let me know if you disagree.
    image

from befaco.

ZwergNaseXXL avatar ZwergNaseXXL commented on September 13, 2024

OK, I guess I'm at fault here, because my software engineering mind saw those inconsistencies and labeled them as bugs. But since people tend to cram as much value-for-money into the hardware modules, one might as well call them features.

Including your comparison with Bogaudio, this gives us three ways of creating the same dependent frequency:

  1. Clock out 1 to clock/sync in 2, rate 2 = 0 and internal clock 2: 50/50 square wave.
  2. Clocks unsynced, rate 2 = rate 1 and internal clock 2: 25/75 square wave.
  3. Clock out 1 to clock/sync in 2, rate 2 = 0 and external clock 2: trigger train.

I'm fine with that now, but there might still be one issue: DC correction (which is on by default!) is wrong for (1), correct for (2) and has no effect for (3). Seems to be the same behavior for other pulse widths, too. Not sure if it's worth fixing that.

And regarding my comment about voltages not being exact 0/5/10V: I wasn't aware that this module produces "analogue" waves with some overshoot, so that is explained as well.

Thank you for investigating and sorry for being a nuisance! ;)

from befaco.

hemmer avatar hemmer commented on September 13, 2024

All good, and interesting points. Maybe DC blocker is a misnomer, it's just an arithmetic correction for the simple case when its internal VCO / no sync, not a filter. Actually because this module runs smoothly from clock signals (say 1Hz) to audio rate, an actual DC blocker filter at say 10 Hz would just make it unusable at lower frequencies. It's a bit of a compromise.

And regarding my comment about voltages not being exact 0/5/10V: I wasn't aware that this module produces "analogue" waves with some overshoot, so that is explained as well.

If you're interested, this is not so much an analogue re-creation and more the minBlep technique to avoid aliasing. See: https://www.cs.cmu.edu/~eli/papers/icmc01-hardsync.pdf

from befaco.

hemmer avatar hemmer commented on September 13, 2024

(also to clarify - I think in terms in DC blocker, I don't think it makes sense to add a filter based one, and you can't arithmetically know the DC correction for an arbitrary sync signal in)

from befaco.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.