Details about Daisy Patch Knobs and hardware

Hi,
I just bought a Daisy Patch and I’m trying to write some code.

Where can I find some documentation about the details of how the hardware is “exposed” (in the DaisyPatch object).

For example:

  1. what is the range of values returned by GetKnobValue() ?
  2. how the Control inputs affect the knob values ? (are they independent?)
  3. what is the effect of calling ProcessDigital/AnalogControls ?
  4. what is the difference between the main thread and the AudioCallback process ?
  5. what is the best way to handle audio / control voltages / display / midi ? (e.g. is it ok to handle the display in the audio callback, or is it better to handle it in the main?)
  6. what are the range of values that can be assigend to CV / audio outputs and gates ?

I gave a look at the examples, but it’s not so easy to “reverse egineer” the information, and the library documentation doesn’t provide enough details.

Thanks in advance!

Hi and welcome to the forum! :slight_smile:

Well, the docs are not that great, but there are a lot of answers to be found in the forum – or just ask, as you just did! :slight_smile:

I don’t own a Patch, only Seeds. but I would guess 0-1. But you can use the Logger class to print out what you get back: Using the Logger class - #3 by StaffanMelin.

Added, answered here: Daisy Patch Input CV voltage and Control Knobs

Sorry, don’t know. Something I haven’t used.

As the ACB returns numbers for the CODEC/audio output, it must finish in time for the next block. The main thread is interrupted if the MCU needs to process audio data.

See discussion here: Programming paradigm: callback vs main - #5 by StaffanMelin

See above! :slight_smile:

Usually -1 to 1 (float), but I am not sure about the Patch, sorry.

You are right. The examples are sweet but short. Check out some other projects in the Projects and examples category, and browse around in the forum. And keep asking! :slight_smile:

I hope this is at least of some help to you!

Happy coding!

2 Likes

As for ProcessAnalog/DigitalControls(), it varies a bit from board to board, but generally speaking:

ProcessDigitalControls() will take the input and debounce your buttons, switches, gates, etc. Basically any type of digital control.

ProcessAnalogControls() will run the Process() function on your analog inputs. That’s pots, and CV ins generally.

You can also call ProcessAllControls() which will do both analog and digital in one shot.

I recommend reading over the Daisy Field Board Support. You can read a pretty typical implementation of those two functions there.

2 Likes

Thank you very much!!! … it seems that I should write a test program (with some output to the display) to see what is going on. If I have enough time I’ll write a quick “cheat-sheet” :grinning:

1 Like

Thank you very much!

1 Like

Yeah, that is a good exercise and you will get to use it when debugging anyway! :slight_smile:

Great, be sure to share it!

1 Like