Commit Graph

31109 Commits

Author SHA1 Message Date
Jeff Epler
a854e554f4
synthio: add midi_to_hz to docs 2023-05-06 21:35:16 -05:00
RetiredWizard
a52d0c742e Add call to rtc_reset 2023-05-06 03:16:38 -04:00
Kattni
018f15de95
Merge pull request #7938 from jepler/issue5980
Fix crash with fast ping on espressif
2023-05-05 18:52:02 -04:00
Jeff Epler
66411fdd38
espressif: check return value from esp_ping_new_session
esp_ping_new_session can fail, particularly if ping is called quickly
many times in succession.

This is because `esp_ping_new_session` has to do a bunch of stuff
including creating a task and a socket. Calling `esp_ping_delete_session`
doesn't clean up these resources immediately. Instead, it signals the
task to clean up resources and exit 'soon', but 'soon' is defined as 1
second.

When the calls are frequent, the in-use sockets and tasks fill up
available slots—I didn't actually check which resource gets used
up first.

With this change, the ping call will raise an exception instead of
continuing with a call to esp_ping_start that crashes.

Closes #5980 based on my testing on an ESP32S3-N8R2.
2023-05-05 17:11:03 -05:00
Jeff Epler
5c857209fd
Merge pull request #7934 from tekktrik/fix/venv-bug
Fix creating virtual environment for stub creation
2023-05-05 09:29:04 -05:00
Alec Delaney
298bd16529
Fix creating virtual environment for stub creation 2023-05-04 15:55:33 -04:00
Jeff Epler
d2aca7eba0
synthio: fix per-note envelope & envelope modification
.. and simplify the envelope advance logic by handling
'instant' values more intelligently.
2023-05-04 12:23:45 -05:00
Scott Shawcroft
fa9b59d14c
Merge pull request #7915 from RetiredWizard/picodvi
Add Pimoroni Pico dv Demo Base (pico only)
2023-05-04 10:07:48 -07:00
Jeff Epler
eebd4a7f52
synthio: no longer fits on feather m4 can 2023-05-04 10:16:58 -05:00
Jeff Epler
a94031d094
synthio: make most Note constructor args kw-only
for similar reasons as Envelope. The mandatory frequency argument can
still be given as a positional argument.
2023-05-04 10:16:19 -05:00
Jeff Epler
c839888e28
synthio: rename function that records error position 2023-05-04 08:45:31 -05:00
Jeff Epler
a388a59543
rp2040: fix audio glitch at soft-reload
The internal flash cache wasn't being properly used, because
`write_blocks` unconditionally performed the flash write.

Fixing this so that the write's not done until `internal_flash_flush`
fixes the problem in my test program with i2sout & synthio.

as a future optimization, `flash_read_blocks` could learn to read out
of the cache, but that's probably not super important.
2023-05-04 08:41:23 -05:00
Jeff Epler
e23e7d3b3f
synthio: get_buffer: return error if object deinited
this may fix a weird crash during shutdown
2023-05-04 07:45:45 -05:00
Jeff Epler
2b0231e9d3
synthio: re-striking a note should re-enter attack
.. without changing the current note amplitude
2023-05-04 07:23:50 -05:00
Jeff Epler
021aaa4599
synthio: remove unused 'phase' from Note objects 2023-05-04 07:23:50 -05:00
Jeff Epler
1701552dec
synthio: make sustain level relative to attack level
and re-vamp overall envelope calculation again.

Now, if you set a low overall attack level like 0.2 this avoids the
"diminishing volume" effect when many notes sound at once. You need
simply choose a maximum attack level that is appropriate for the max
number of voices that will actually be played.
2023-05-04 07:23:50 -05:00
Jeff Epler
c06597c07a
synthio: replace the quietest releasing note when over-writing 2023-05-04 07:23:49 -05:00
Jeff Epler
4f56b7646e
synthio: slow ramp overall envelope back up
.. and account releasing notes at their sustain level until they're
done.

this ameliorates the effect where multiple releasing notes
don't seem to actually be releasing, but stay at a constant volume.
2023-05-04 07:23:49 -05:00
Jeff Epler
a7da245ad0
synthio: Add synthio.Note
This class allows much more expressive sound synthesis:
 * tremolo & vibrato
 * arbitrary frequency
 * different evelope & waveform per note
 * all properties dynamically settable from Python code
2023-05-04 07:23:49 -05:00
Jeff Epler
bc03e03b9e
util: Add properties_print_helper 2023-05-04 07:23:48 -05:00
Jeff Epler
c22fd2a18e
runtime: Add mp_arg_validate_float_range 2023-05-04 07:23:48 -05:00
Jeff Epler
5514e3065d
synthio: add midi_to_hz
to convert notes in the MIDI 1-127 note scale to floating point Hz
2023-05-04 07:23:48 -05:00
RetiredWizard
4f7d88676b Remove pico-w version 2023-05-03 17:30:01 -04:00
Jeff Epler
bd9aca2526
Merge pull request #7862 from jepler/synthio-envelope
Synthio envelope
2023-05-03 12:42:56 -05:00
Jeff Epler
b33c9f6b4b
synthio: put license notice on copied files 2023-05-03 09:37:12 -05:00
Jeff Epler
1fafa4dc24
synthio: improve Envelope constructor 2023-05-03 09:37:04 -05:00
Jeff Epler
eea9b62978
synthio: MidiTrack: sample_rate is always available 2023-05-03 09:37:02 -05:00
Jeff Epler
dd262258e0
synthio: Add MidiTrack.error_location to record errors
.. instead of just printing the unraiseable error on the repl
2023-05-03 09:37:02 -05:00
Jeff Epler
d8550f4e7c
synthio: fix offset in default square waveform 2023-05-03 09:37:02 -05:00
Jeff Epler
b2f32a5397
Apply suggestions from code review
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-05-02 19:22:10 -05:00
Jeff Epler
c369527ace
remove line added while debugging failed doc builds
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-05-02 19:17:51 -05:00
Mark
2b17fda028
Merge pull request #7927 from adafruit/thinkink_update
Feather RP2040 ThinkInk update
2023-05-02 17:48:01 -05:00
Liz
480c4f1081
Update pins.c 2023-05-02 17:27:53 -04:00
Liz
facd3a4e78 Updating directory name 2023-05-02 17:07:49 -04:00
Liz
cba7a812fc Minor update for Feather RP2040 ThinkInk
hihi - updating board name from EPD to ThinkInk and adding pin def for board.BUTTON
2023-05-02 17:02:59 -04:00
Scott Shawcroft
750615f2da
Merge pull request #7430 from Lanzaa/rp2040_cpu_frequency
Add frequency setting for RP2040 boards.
2023-05-02 09:52:28 -07:00
Scott Shawcroft
488dca565f
Merge pull request #7922 from tannewt/dvi320
Take in framebuffer resolution, not output res
2023-05-02 09:22:51 -07:00
Jeff Epler
80e1418c01
Merge pull request #7921 from tannewt/imx_evks
Add additional iMX RT support
2023-05-02 07:09:50 -05:00
Scott Shawcroft
051540f8da
Fix broadcom NAN 2023-05-01 11:38:13 -07:00
Scott Shawcroft
0aa71ed6e6
Tweak the picodvi docs and arg checking 2023-05-01 11:30:04 -07:00
Dan Halbert
fdf436526c
Merge pull request #7924 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2023-05-01 10:24:47 -04:00
Yutaro Urata
a7c3955c41
Translated using Weblate (Japanese)
Currently translated at 40.8% (408 of 999 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/ja/
2023-04-29 19:47:37 +02:00
Scott Shawcroft
b08714bb8f
Take in framebuffer resolution, not output res
Fixes #7911
2023-04-28 17:13:17 -07:00
Scott Shawcroft
1a4e1d114c
Merge pull request #7916 from bablokb/badger_2040_w
Add support for Pimoroni Badger2040W
2023-04-28 16:42:03 -07:00
Scott Shawcroft
c5d3de2a17
Merge pull request #7920 from bablokb/plasma2040w
Add support for Plasma2040w
2023-04-28 16:39:13 -07:00
Scott Shawcroft
8104b824e0
Standardize CPU temp and voltage. Add autogen warning 2023-04-28 16:19:43 -07:00
RetiredWizard
1fb6d4d77e I2S pin names per Dan's suggestions on iMX PR 2023-04-28 16:58:39 -04:00
Scott Shawcroft
18207cd547
Guard GCC13 pragma 2023-04-28 11:28:48 -07:00
Scott Shawcroft
f837f2438a
Update USB PIDs 2023-04-28 11:16:45 -07:00
Scott Shawcroft
a9dc31a881
Add additional iMX RT support
This adds a script to generate the peripherals files (except clock).

It adds support for the 1015, 1020, 1040, and 1050 EVKs.

Some work was started on 1176 but it isn't working. So, the board
def is in a separate branch.

Fixes #3521. Fixes #2477.
2023-04-28 11:01:13 -07:00