Commit Graph

31006 Commits

Author SHA1 Message Date
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
Bernhard Bablok 14c17224a1 update product-id 2023-04-28 08:57:22 +02:00
Bernhard Bablok 4f8ae14c18 update to upstream version 2023-04-28 08:56:52 +02:00
Bernhard Bablok a86c5f7310 Merge branch 'main' into plasma2040w 2023-04-28 08:41:02 +02:00