a github link is the best option. Make sure it's the whole Bela project, ready to be run. Also a direct link to the upstream SDK wouldn't hurt.
m3rten

- Joined Feb 2, 2022
- 13 discussions
- 48 posts
Updating the files in /root/Bela/libraries/Serial or update the entirety of the bela core code to the branch containing the relevant version of the files ( dev branch in this case)
https://learn.bela.io/using-bela/bela-techniques/updating-bela/#updating-to-an-experimental-release
Hello! once again I'd like to start with a caveat: I'm very new to modular stuff, and the Pepper is my first and only module right now.
I'm curious about what the best practice is for using the inputs and outputs. I know inputs are 0-10v, and outputs are 0-5v. Since this is my only module at the moment, I'm mainly just playing around with connections from the outputs to the inputs, but of course that is only giving me half of the range. however I'm getting (near) full range on the knobs.
Is this a standard approach to output/input voltages in the eurorack world? more importantly: I'm confused about how to code with this in mind. in Pure Data if I multiply things coming into adc~ by two, then surely that will multiply both the knobs and the inputs by two? and if I start using other modules, will they all generally use 0-5v? in which case, why are the inputs 0-10v at all?
I think I'm just finding this all a bit mind bending. any tips would be great.
dakqyn it's due to linking issues (or maybe some c vs. c++ thing?
It could be that: when including a C-only file into a C++ file, you need to enclose it in an
extern "C"
statement, e.g.:extern "C" { #include "myfile.h" }
Hi all, I wanted to share a Pepper patch I've been working on: https://github.com/m-w-w/pepper-loopntime
"LoopnTime" is a multi-channel eurorack looper that keeps in time with an analog clock signal.
- The number of independent loops and the maximal length of the loops is adjustable.
- Each loop has one layer of "undo".
- The rate of the clock input can be divided or multiplied to clock output.
- Recording and playback are synchronized with the clock output. A button press to record or overdub or stop recording will wait until the next event arrives.
- Because analog clocks are imperfect, a loop can vary in length by a few samples from one replay to the next. Recording and playback are handled separately, and rely on cross-fading amplitude to smooth transitions and avoid discontinuity.
There is also a little sketch to visualize the loops with the gui.
This is my first real attempt to produce something in c++ (so much gratitude to the bela course!!) so please let me know if there are silly mistakes in programming or implementation.
cheers, michael
One fundamental issue with aliasing is that once you have introduced aliased components in your system, you won't be able to distinguish them from the non-aliased ones and therefore will not be able to filter them out trivially. A common approach in wavetable synthesis is to have several pre-computed tables, each bandlimted for a specific range of frequencies. The more tables you have the more memory you need and the fewer you have the larger the frequencies band will be and therefore the less ideal will be your bandlimited representation at least in some regions of a given frequency band.
If you are in a memory-constrained application (e.g.: a microcontroller), another approach could be to have a single wavetable that you filter with a bandlimiting filter tuned according to the current frequency of the oscillator before reading from the table. This approach increases the CPU cost (because of the filtering), but reduces the RAM usage. In this case the ideal filter to use is a windowed sync FIR, but that may be too long (and therefore expensive to compute), however if one doesn't mind phase distortion, in practice a steep enough (e.g.: 4th order?) IIR (something like Chebyshev or Elliptic, which have a shorter transition band than Butterworth, are cheaper than an equivalent FIR but introduce phase distortion) would probably still be fine. However, it is unlikely that this would be a useful approach on Bela, as you probably have more than enough RAM to store several large-ish wavetables.