Cooper Dalrymple
dfe9836e35
Update loop docstrings to demonstrate BlockInput implementation.
2024-11-04 11:25:51 -06:00
Cooper Dalrymple
ce3e83d474
Update ring_frequency and ring_bend with MP_ARG_KW_ONLY.
2024-11-04 11:13:04 -06:00
dcooperdalrymple
e2a52afa93
Add support for synthio.BlockInput on synthio.Note.waveform_loop_start, synthio.Note.waveform_loop_end, synthio.Note.ring_waveform_loop_start, and synthio.Note.ring_waveform_loop_end.
2024-11-03 20:30:06 -06:00
dcooperdalrymple
ce12d90160
Fix default value of synthio.Note.amplitude in documentation.
2024-11-03 20:00:35 -06:00
elpekenin
4b10b912e9
remove useless comments
2024-08-27 23:43:24 +02:00
elpekenin
bc7a052cbb
fix some doc-comments
2024-08-23 23:00:56 +02:00
Dan Halbert
3f4d9310ff
CircuitPython files: replace STATIC with static
2024-05-20 11:02:17 -04:00
Dan Halbert
e0f745c14c
Merge pull request #9247 from jepler/improve-lfo-initial-value
...
synthio: Calculate LFO.value at construction
2024-05-17 23:48:47 -04:00
Dan Halbert
747b7619ea
update headers of most CircuitPython-only files
2024-05-17 14:56:28 -04:00
Dan Halbert
daa11cb1c2
updates before header conversion
2024-05-17 14:56:28 -04:00
9e878f7b3d
synthio: Calculate LFO.value at construction
...
Originally, the only (non-debug) way to make an LFO calculate its value
was to associate it with a playing synthesizer.
This posed a problem for LFOs that had "power on values" other than 0,
and where the value was used other than to internally drive a note
property.
Now, an initial, possibly non-zero value is calculated at object
construction time:
```py
>>> l = synthio.LFO(offset = 1)
>>> l.value
1.0
```
Note that this happens just once at construction; it does not happen when
updating LFO properties:
```py
>>> l.offset = 2
>>> l.value
1.0
```
2024-05-14 18:27:57 -05:00
8fcb1bfa0d
Update LFO.c
2024-04-23 16:07:03 -05:00
9979e1ac1d
Update LFO implementation detail notes based on Dan's feedback
...
(& re-wrap some paragraphs, sorry)
2024-04-23 07:56:13 -05:00
bf10008c94
Update shared-bindings/synthio/LFO.c
...
Co-authored-by: Dan Halbert <halbert@adafruit.com>
2024-04-22 21:04:04 -05:00
a4e60ec698
LFO: document some things that trip up users
...
Closes : #9073
Closes : #9063
2024-04-22 20:40:05 -05:00
9a71fdb93b
Fix a couple of incorrect type annotations
...
h/t @justmobilize in https://github.com/adafruit/circuitpython/issues/8891
2024-02-08 14:59:58 -08:00
0fe750269f
Documentation improvements
2023-11-20 10:36:50 -06:00
dcooperdalrymple
55db6b7947
Added SYNTHIO_WAVEFORM_SIZE definition, renamed 'loop_...' to 'waveform_loop_...', added 'ring_waveform_loop_...` parameters, and updated docstrings.
2023-11-20 09:50:03 -06:00
dcooperdalrymple
785ef5abd2
Add loop_start and loop_end properties to synthio.Note for waveshaping and sampling capabilities.
2023-11-17 17:41:49 -06:00
774f6ac6ab
Switch to using MP_ERROR_TEXT instead of translate, globally
2023-10-30 09:49:06 +01:00
Scott Shawcroft
e62db5adcd
Fix native property setting from subclass
2023-10-24 16:20:51 -07:00
477b2300a1
fix definitoin of MidiTrack type
2023-09-22 13:58:01 -05:00
5d9b84dcb2
fix definition of MathOperation
2023-09-22 13:57:51 -05:00
f812750a76
fix use of mp_type_fileio
2023-09-22 13:56:55 -05:00
e48984872b
allow definition of namedtuples in core
2023-09-22 13:56:16 -05:00
e1af819a91
fix (unused) default for some required args
2023-09-22 13:53:11 -05:00
Dan Halbert
4d175ab41a
convert to MP_DEFINED_CONST_OBJ_TYPE()
2023-09-19 21:09:29 -04:00
Dan Halbert
2c0fa0f7dc
initial merge from v1.20.0; just satisifying conflicts
2023-09-19 11:10:12 -04:00
Dan Halbert
2171e67c1b
merge latest adafruit/main
2023-08-13 19:43:54 -04:00
Dan Halbert
fe0e2f13bc
wip; fix qstr processing
2023-08-10 20:06:32 -04:00
Dan Halbert
0d2c3c3f08
wip: continuing compilation fixes; mp_obj_alloc everywhere
2023-08-07 20:45:57 -04:00
ddeb27d335
the note is in its attack phase
2023-08-04 18:40:30 -05:00
60b233f160
document EnvelopeState
2023-07-20 16:26:07 -05:00
29a4364ba7
fix method signature
2023-07-20 14:05:56 -05:00
346f08f8b9
synthio: Add Synthesizer.note_state
...
This enables the specific use case of checking whether a note's release
phase has ended, but is also potentially useful to implement a sort of
"voice stealing" algorithm in Python code, which can take account of
the note's envelope state as well as other factors specific to the
program.
2023-07-20 13:16:00 -05:00
3151656f4b
synthio: more fir-filter removal; fix biquad logic errors
2023-05-30 09:24:26 -05:00
1d58b550b5
synthio: fix doc build
2023-05-29 13:07:15 -05:00
51027974e5
synthio: apply biquad filters during synthesis
2023-05-29 10:53:48 -05:00
fed8d5825b
synthio: add biquad filter type & basic filter calculations
...
the filter cannot be applied as yet.
2023-05-29 09:50:18 -05:00
9f138dc188
synthio: list filter in the constructor
2023-05-23 19:38:25 -05:00
11d8a6ec3a
synthio: rename synthesizer.lfos to .blocks
...
.. since math blocks can be placed in it too (and that's useful)
2023-05-23 19:38:25 -05:00
c20e862790
synthio: note frequency can only be a float, for now
2023-05-23 19:38:24 -05:00
1847c2b72a
synthio: fix, rename voct_to_hz
...
todbot discovered that this function wasn't working right, and wasn't
well-named.
2023-05-23 19:38:24 -05:00
2b42783301
Apply suggestions from code review
...
Co-authored-by: Dan Halbert <halbert@adafruit.com>
2023-05-23 08:57:16 -05:00
122e00bdb3
document ring arguments to constructor
...
thanks Mark!
2023-05-22 21:59:39 -05:00
af40a173ba
synthio: midi_to_hz: remove arbitrary note number limitation
...
The underlying routine can return numbers for higher and lower
octaves. Other bits of the code might have frequency limitations
but that doesn't mean we shouldn't let someone get a ~4Hz "note"
by sending in (-12), because that's actually totally plausible as
an LFO frequency.
2023-05-22 21:58:09 -05:00
1b174f8b3d
synthio: remove "1-octave" caveat, is false now
2023-05-22 21:58:09 -05:00
5b4d621fd2
synthio: explicitly cast away const to satisfy compiler
2023-05-22 21:58:08 -05:00
167aa30f12
synthio: remove if0'd code
...
thanks tannewt
2023-05-22 21:58:04 -05:00
8626130af7
synthio: Add default triangle waveform to LFO, improve docs
2023-05-22 10:53:29 -05:00