Jeff Epler
e87e7ee54f
synthio: add stereo & Note.panning
...
A note can be placed in the center (panning=0) or moved to just the left
(panning=1) or right (panning=-1) channels. Fractional panning values
place it partially in both channels.
2023-05-11 09:31:18 -05:00
Jeff Epler
1d1907b98b
synthio: Generalize vibrato into bend
...
bend can be static, sweep, or vibrato
2023-05-11 09:31:07 -05:00
Jeff Epler
c48d385e94
synthio: Add synthio.BendType
2023-05-11 09:31:07 -05:00
foamyguy
c9bb53b48a
adding __iter__ stub to displayio.Group
2023-05-11 07:52:03 -05:00
foamyguy
7c685477ba
adding __contains__ stub to displayio.Group
2023-05-08 16:41:57 -05:00
anecdata
82c173e8cf
assuming the answer to that is 'yes'
2023-05-08 14:26:01 -05:00
anecdata
d78e5bd64c
fix accidental indent
2023-05-08 14:18:06 -05:00
anecdata
7581d3d0b0
Fix docstring
2023-05-08 13:30:32 -05:00
anecdata
2f2a9e7e28
Allow Access Point static IPv4 on the espressif port.
2023-05-08 13:25:52 -05:00
Jeff Epler
9a9f3229fa
synthio: Perform vibrato in pitch, not as frequency ratio
...
Now the vibrato 'units' are 1.0 = one octave, 1/12 = one semitone,
1/1200 = one cent. Before, the units were somewhat arbitrary and were not
perceptually "symmetrical" around the base frequency.
For vibrato_depth = 1/12 and base frequency of 440,
before: pitch from 403.33 to 476.67Hz, not corresponding to any notes
after: pitch from 415.30 to 466.16Hz, corresponding to G# and A#
2023-05-06 21:35:20 -05:00
Jeff Epler
a53c0ed066
synthio: add onevo_to_hz, implement midi_to_hz in terms of it
...
this has the side effect of making some notes more accurate, the new
frequency= value in the test is closer to the true midi frequency of
830.609...Hz.
2023-05-06 21:35:19 -05:00
Jeff Epler
a854e554f4
synthio: add midi_to_hz to docs
2023-05-06 21:35:16 -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
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
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
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
Jeff Epler
bd9aca2526
Merge pull request #7862 from jepler/synthio-envelope
...
Synthio envelope
2023-05-03 12:42:56 -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
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
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
Dan Halbert
c333e61681
small wording change
2023-04-26 14:58:45 -04:00
anecdata
6e8031faf8
Note limitation of next_stack_limit on espressif boards
...
Open to better wording.
2023-04-26 13:53:33 -05:00
Dan Halbert
34f565dd89
Merge pull request #7891 from tannewt/fix_epd_uc
...
Add address_little_endian and fix display memory reuse
2023-04-26 00:27:59 -04:00
Scott Shawcroft
75046b3a58
Save space with consolidated errors
2023-04-25 13:26:48 -07:00
Jeff Epler
12c1a72f03
synthio: implement envelope
...
This works for me (tested playing midi to raw files on host computer, as
well as a variant of the nunchuk instrument on pygamer)
it has to re-factor how/when MIDI reading occurs, because reasons.
endorse new test results
.. and allow `-1` to specify a note with no sustain (plucked)
2023-04-25 12:05:53 -05:00
Jeff Epler
375a9cd4c5
add Synthesizer.release
2023-04-25 12:05:50 -05:00
Dan Halbert
abb0d5e620
Merge pull request #7899 from RetiredWizard/displayioDOC
...
Doc fix for root_group=None behaviour
2023-04-24 18:57:29 -04:00
Scott Shawcroft
3ee8d0b5cb
Merge pull request #7878 from gamblor21/gifio_palettes
...
Palettes for OnDiskGif
2023-04-24 12:44:53 -07:00
Dan Halbert
ac82f8f90b
document displayio.CIRCUITPYTHON_TERMINAL
2023-04-24 13:43:09 -04:00
Dan Halbert
738f626663
Code formatting in doc
2023-04-24 12:54:37 -04:00
RetiredWizard
3cf712556b
Add CIRCUITPYTHON_TERMINAL usage description
2023-04-23 01:03:13 -04:00
RetiredWizard
0c00220aa6
Removing unrelated change by local pre-commit
2023-04-23 00:52:48 -04:00
RetiredWizard
b2b24231bc
local pre-commit changes
2023-04-23 00:45:38 -04:00
RetiredWizard
b0ea28a031
Doc fix for root_group=None behaviour
2023-04-23 00:33:14 -04:00
foamyguy
56fd7dcf0a
add minimum validation for tilegrid size in terminalio.Terminal
2023-04-21 18:00:16 -05:00
Scott Shawcroft
7089ea4d65
Add address_little_endian for displayio
...
Add address_little_endian for epaper displays with little endian
(low byte first) addresses.
Also clears allocated display and display bus memory so it has a
known state. The acep member wasn't always set so it varied
accidentally.
Fixes #7560 . May fix #7778 . Fixes #5119 .
2023-04-21 12:19:29 -07:00
Mark
ae7303221d
Update doc that Palette may not always be there
...
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-04-21 11:21:29 -05:00
gamblor21
afae39765f
PR review fixups
2023-04-20 18:26:04 -05:00
Dan Halbert
81c5a37e2d
Merge pull request #7867 from RetiredWizard/DispIOSizeValid
...
displayio arg validation tweaking
2023-04-20 14:52:24 -04:00
Dan Halbert
7d02bff6b8
Merge pull request #7880 from tannewt/feather_dvi
...
Add PicoDVI support
2023-04-20 14:50:10 -04:00
Dan Halbert
4b41a49200
Merge pull request #7866 from rich123/allow-64-char-wifi-passwords
...
Allow 64 char WiFi passwords in wifi.radio.connect
2023-04-20 10:22:44 -04:00
Dan Halbert
df41bd9ead
change hex radio password validation; add password length doc
2023-04-20 09:47:25 -04:00
Scott Shawcroft
0f9fb33371
Merge branch 'main' into rp2040_cpu_frequency
2023-04-19 17:05:58 -07:00
Scott Shawcroft
e2ab7a4751
Change voltage. Refine docs
2023-04-19 17:04:54 -07:00
Scott Shawcroft
66edcf5d03
Add PicoDVI support
...
PicoDVI in CP support 640x480 and 800x480 on Feather DVI, Pico and
Pico W. 1 and 2 bit grayscale are full resolution. 8 and 16 bit
color are half resolution.
Memory layout is modified to give the top most 4k of ram to the
second core. Its MPU is used to prevent flash access after startup.
The port saved word is moved to a watchdog scratch register so that
it doesn't get overwritten by other things in RAM.
Right align status bar and scroll area. This normally gives a few
pixels of padding on the left hand side and improves the odds it is
readable in a case. Fixes #7562
Fixes c stack checking. The length was correct but the top was being
set to the current stack pointer instead of the correct top.
Fixes #7643
This makes Bitmap subscr raise IndexError instead of ValueError
when the index arguments are wrong.
2023-04-19 15:14:02 -07:00
gamblor21
403ea89d57
Initial paletts for OnDiskGif
2023-04-18 19:44:03 -05:00
Debian
304134c6a4
Fixed outdated reference link
2023-04-17 12:54:59 -06:00
RetiredWizard
a4cb73a567
Add MAX(0,xxx-1) to prevent potential display wrap
2023-04-16 18:42:00 -04:00
RetiredWizard
a8c78d8d2e
displayio arg validation tweaking
2023-04-15 23:44:30 -04:00
Richard Ellis
ec78a23a56
Code changes to allow 64 character hex WiFi passwords to be used with
...
wifi.radio.connect.
Fixes adafruit/circuitpython#7677 .
2023-04-15 22:54:57 -04:00
applecuckoo
add8f06b75
urandom is supported on nRF boards
2023-04-10 15:27:15 +12:00
Jeff Epler
992457c7f7
Improve documentation
2023-04-05 16:53:09 -05:00
Scott Shawcroft
6df88ac948
Merge pull request #7825 from jepler/better-synthio
...
Better synthio
2023-04-05 12:23:10 -07:00
Jeff Epler
9679aaa0be
Apply suggestions from code review
...
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-04-05 11:57:06 -05:00
Jeff Epler
3038b9a560
Update shared-bindings/keypad/ShiftRegisterKeys.c
...
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-04-05 11:56:21 -05:00
Jeff Epler
b9dea05dbf
Enable audiomixer on unix port, for testing
2023-04-05 09:02:03 -05:00
Jeff Epler
b011468251
Add synthio.Synthesizer
...
In contrast to MidiTrack, this can be controlled from Python code,
turning notes on/off as desired.
Not tested on real HW yet, just the acceptance test based on checking
which notes it thinks are held internally.
2023-04-02 20:37:23 -05:00
Jeff Epler
975c981e4f
fix some calls that needed to be _varg
2023-04-02 11:55:14 -05:00
Jeff Epler
8b05d11538
save 4 bytes memory since qstr constants are smol
2023-04-01 19:25:30 -05:00
Jeff Epler
62636cf722
Make a message more terse
...
This matches a bunch of other NotImplementedErrors
2023-04-01 19:24:06 -05:00
Jeff Epler
05cf5213e2
Allow disabling each class in keypad
...
.. for boards like pewpewm4 which need a specific kind. And need
some space.
2023-04-01 19:22:52 -05:00
Dan Halbert
cc0eeb430a
Merge pull request #7823 from dhalbert/wifi-connected
...
Add wifi.radio.connected, wifi.radio.ap_active
2023-04-01 15:01:43 -04:00
Jeff Epler
e9e4ce9546
add waveform support in synthio
...
a waveform object (array of 'h') can be passed in, replacing the
standard square wave. This waveform must be a 'single cycle waveform'
and some obvious things to pass in are sine, triangle or sawtooth waves,
but you can construct whatever you like.
2023-04-01 11:46:38 -05:00
Jeff Epler
13e17e6dcd
Make synthio debuggable in unix coverage port
2023-04-01 11:46:36 -05:00
Jeff Epler
02f8a45dfa
synthio: allow increasing number of channels
...
12 channels works well on metro m7
2023-04-01 11:46:27 -05:00
jposada202020
2f3ea81277
correcting
2023-03-31 20:29:29 -04:00
jposada202020
df46636c5e
improving range validation
2023-03-31 20:15:07 -04:00
Dan Halbert
5c429320a8
Add wifi.radio.connected, wifi.radio.ap_active
2023-03-31 17:57:53 -04:00
jposada202020
9a77199f2e
Update shared-bindings/bitmaptools/__init__.c
...
Co-authored-by: Dan Halbert <halbert@halwitz.org>
2023-03-30 15:43:48 -04:00
jposada202020
4e332fb1c4
Update shared-bindings/bitmaptools/__init__.h
...
Co-authored-by: Dan Halbert <halbert@halwitz.org>
2023-03-30 15:28:42 -04:00
jposada202020
844ea2f60b
Update shared-bindings/bitmaptools/__init__.c
...
Co-authored-by: Dan Halbert <halbert@halwitz.org>
2023-03-30 15:28:15 -04:00
jposada202020
6ad053e403
correcting feedback
2023-03-30 08:51:52 -04:00
jposada202020
f3d85d6932
Merge branch 'main' into adding_circle_bitmaptools
2023-03-30 07:44:07 -04:00
Dan Halbert
a10ce2170c
doc typo fix in OnDiskGif
2023-03-29 17:16:39 -04:00
Jeff Epler
cb5e1a1e98
mimxrt: Fix output frequency for samples that don't divide 192kHz
...
This makes all the samples from Dan's collection register as 440Hz
when playing on pwmio or i2sout, using https://webaudiodemos.appspot.com/pitchdetect/index.html
to detect the frequency played (all should show as A 440Hz; an error
of up to 20 "cents" should be treated as OK)
There's an audible carrier with PWM output and the 8kHz samples. This is
probably a limitation of the peripheral which is documented as being for
input signals of 44 kHz or 48 kHz; the carrier frequency is a fixed
multiple of the sample frequency.
Closes #7800
2023-03-28 10:18:28 -05:00
Dan Halbert
29b35804d9
Merge pull request #7548 from FoamyGuy/displayio_arg_validation
...
Displayio Bitmap arg validation
2023-03-28 10:30:06 -04:00
Dan Halbert
77cd20af8f
Merge pull request #7785 from jepler/mimxrt10xx-mqs
...
mimxrt10xx: Add PWMAudioOut
2023-03-27 20:46:11 -04:00
Jeff Epler
d6a067b0e5
Make PWMAudioOut object ll, have finaliser
...
.. for reasons stated in the comment
2023-03-27 10:52:23 -05:00
Jeff Epler
df916e0484
Merge remote-tracking branch 'origin/main' into mimxrt10xx-rotaryio
2023-03-23 13:02:12 -05:00
Dan Halbert
0639c0850f
Merge pull request #7751 from hathach/add-codespell
...
Add codespell to pre-commit to scan and fix typo
2023-03-23 13:26:24 -04:00
Jeff Epler
50ba218afb
PulseIn, Counter: give finali(s/z)ers to these types too
...
for similar reasons, an interrupt handler might point at these
objects, and we can worry less about it if the object deinits when it
is GC'd.
2023-03-23 09:57:32 -05:00
Jeff Epler
c45db1c1eb
incrementalencoder: give it a finaliser
2023-03-23 09:56:14 -05:00
Dan Halbert
db76fbd55f
Merge pull request #7712 from gamblor21/ondiskgif_freemem_fix
...
Add deinit to OnDiskGif
2023-03-23 09:03:07 -04:00
hathach
66129311f4
fix pre-commit format
2023-03-23 14:19:36 +07:00
hathach
8c1095b268
Merge branch 'main' into add-codespell
2023-03-23 14:09:57 +07:00
hathach
a8abe8e705
remove lib from exludes, fix all remaining typos
2023-03-23 13:59:08 +07:00
gamblor21
52631bb1c5
Restore OnDiskGif deinit
2023-03-22 22:30:38 -05:00
gamblor21
98ebc676ce
Added documentation about freeing a GIF
2023-03-22 19:20:20 -05:00
gamblor21
07e83674c9
Add deinit to displayio.Bitmap
2023-03-22 19:20:20 -05:00
gamblor21
8b9f5e7f53
Remove del obj and add deinited
2023-03-22 19:20:20 -05:00
jposada202020
29613c73e1
pre-commit
2023-03-22 19:05:18 -04:00
jposada202020
0b3099a9ff
adding bitmaptools circle
2023-03-22 18:44:45 -04:00
Scott Shawcroft
0eb08509f0
Make set_stack_limit respect fixed stack
...
Fixes #2830
2023-03-21 16:42:49 -07:00
Dan Halbert
7ee85408a1
Merge pull request #7755 from isacben/block-device-arguments-typing
...
Updated block_device type annotation
2023-03-21 12:51:40 -04:00
Scott Shawcroft
67e0a49a1f
Merge pull request #7724 from tannewt/get_perfbench_running
...
Improve iMX RT performance
2023-03-21 09:00:48 -07:00
Dan Halbert
d9d27a3e31
Fix signature of mkfs()
2023-03-21 10:30:03 -04:00