Plaquette
Plaquette copied to clipboard
Object-oriented Arduino library for creative physical computing
Multiplying oscillators as suggested in [https://sofapirate.github.io/Plaquette/getting_started.html](url) returns the following error : "error: ambiguous overload for 'operator*' (operand types are 'pq::SquareOsc' and 'pq::SquareOsc'" The multiplying operator '*' is not multiplying numbers...
Ideally we should create a function that would return the resolution of the ADC but that would probably be hard. Some boards allow the change of the resolution, see: https://www.arduino.cc/reference/en/language/functions/analog-io/analogreadresolution/...
Instead of a duration, there are many scenarios where what matters is the *speed* at which the ramp moves (for example when moving a motor). So we should be able...
Function width() for TriOsc would be also appropriate as a replacement of dutyCycle() for SquareOsc and would contribute to a better uniformity in the library. It would resonate perfectly well...
Currently the pq_trig8.h is used to compute quickly sin(x) in Plaquette, however this approach is much less precise than the 24-bits resolution of floats. Could we improve precision without hampering...
It would make sense to have a common API for timing units such as Alarm, Chronometer and Metro and oscillators such as TriOsc and SineOsc. In particular functions such as:...
It could be interesting to introduce some user-friendly sources and possibly filters for random processes. Some ideas include: * a source similar to Metro but that would generate random pulses...
See this discussion: https://chat.openai.com/c/f3b632b9-744f-4372-8953-4ba92f46e315 The P2 algorithm was suggested: https://www.cse.wustl.edu/~jain/papers/ftp/psqr.pdf Code: https://github.com/FooBarWidget/p2/blob/master/p2.cpp Also: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.RobustScaler.html
It is confusing to have both -- and Timer functionality is better handled by Ramp.
Currently we are forced to declare each Plaquette object individually, therefore preventing us from using the power of arrays. For example, imagine I would like to control 10 LEDs individually...