Merged
Conversation
Author
|
This also helps set the stage for #9877: The data for managing the first/second buffer would be placed in the common structure, and the logic in the wrapper to get_buffer. Then, the individual sample implementations need no longer care about the single channel case. |
015bbdc to
52e5e42
Compare
there are some lines above that set it OFF if needed; the top level logic will set it ON if audiocore is enabled. Before this, some boards without any audio capability (e.g., pycamera with esp32s3, lacking both audioio and i2s) enabled mp3. This was not useful, and with other changes it will become a build error.
By placing certain fields in a fixed location in all sample types, code can be reduced & reused. For instance, the same property object can be used for every sample type's `sample_rate` property. The sample proto functions like `sample_rate` become superfluous since once an object is verified to support the audiosample protocol, direct access to the fields in the base object is possible.
52e5e42 to
e15eba0
Compare
Author
|
Oops, this should have been a draft because I hadn't tested it on any hw. I will do some basic testing when I'm back at home, hopefully any problems are minor |
Merged
gamblor21
added a commit
to gamblor21/circuitpython
that referenced
this pull request
Feb 9, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
By placing certain fields in a fixed location in all sample types code can be reduced & reused. For instance, the same property object can be used for every sample type's
sample_rateproperty.The sample proto functions like
sample_ratebecome superfluous since once an object is verified to support the audiosample protocol, direct access to the fields in the base object is possible.However, it's necessary to carefully initialize all the new fields. Some sample types, like Synthesizer & MidiTrack, are tested during CI. Others are not.
Saves 676 bytes flash on itsybitsy m0, 1872 bytes on metro rp2350. Net deletes a bit over 400 lines of code
Todo: