Skip to content

Conversation

@tfry-git
Copy link
Collaborator

@tfry-git tfry-git commented Jan 4, 2024

Notes:

  • PR was created early to monitor compilation statistics while working, but this is now approaching a useful state.
  • No compilation testing done for Teensy
  • We now have some true (compilation) testing coverage of MOZZI_OUTPUT_EXTERNAL_*, MOZZI_OUTPUT_2PIN_PWM, and MOZZI_STEREO, but on platforms that don't support the latter two config options, there is a hack in place to silently ignore those - if and only if running inside the github workflow.
  • Changes certainly look massive, although to a large degree bits have simply been moved around, unchanged. I'll try to write up some hints on what to look out for in the coming days.

Regarding flash (and RAM) usage changes:
I left only the reports at a few steps that I think are meaningful, to get a clearer picture, and removed the other ones. What we see is:

  1. First some minor savings across the board after moving trivial bits around (makes sense, as compiler can now avoid a few function calls).
  2. After the main chunk (inlining MozziGuts.cpp), most platforms show moderate savings, but AVR shows +60 bytes flash usage on a few selected sketches. I have no real idea, why this is happening. Comparing the disassembly side-by-side, It does not even appear to have anything (recognizable) to do with the changes contained in this PR, rather some Oscil code is apparently getting inlined, for whatever reason.
  3. Removal of TimerZero.cpp (only marginally related to this PR) papers over this effect, by saving 98 bytes of flash on AVR.
  4. No changes during some more formal (documentation related, etc.) changes.
  5. After inlining the config options in the examples, some platforms (importantly, those supporting Stereo) show a more diverse picture again, which is not actually a surprise, however: Now these examples are finally actually compiled with the intended configuration.

@tfry-git tfry-git force-pushed the devel/single_compilation_unit branch 2 times, most recently from 7eef203 to 47d385f Compare January 4, 2024 11:53
(This is expected to increase flash size, marginally, but the effect will mostly go
away once implementation and usage are once again in the same compilation unit.)
@tfry-git tfry-git force-pushed the devel/single_compilation_unit branch from 47d385f to 2fa17a4 Compare January 4, 2024 11:59
While at it, use explict precision types.
@tfry-git tfry-git force-pushed the devel/single_compilation_unit branch from 49af0d5 to 74d2814 Compare January 4, 2024 14:22
When int is not an alias to intXY_t, compilers may be too stubborn to understand, which overload to use.
Conversely, having both an int16_t and and int overload is not possible on AVR (where the two _are_ an alias).
@tfry-git tfry-git force-pushed the devel/single_compilation_unit branch from c5fe44c to 1856897 Compare January 4, 2024 15:49
@tfry-git tfry-git marked this pull request as draft January 4, 2024 15:58
@github-actions
Copy link

github-actions bot commented Jan 4, 2024

Memory usage change @ 1856897

Board flash % RAM for global variables %
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 💚 -24 - 0 -0.04 - 0.0 🔺 0 - +4 0.0 - +0.02
arduino:avr:uno 💚 -12 - 0 -0.04 - 0.0 0 - 0 0.0 - 0.0
arduino:mbed_giga:giga 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:adafruit_circuitplayground_m0 💚 -24 - 0 -0.01 - 0.0 0 - 0 0.0 - 0.0
esp8266:esp8266:huzzah N/A N/A N/A N/A
rp2040:rp2040:rpipico 💚 -24 - 0 -0.0 - 0.0 🔺 0 - +16 0.0 - +0.01
Click for full report table
Board examples/01.Basics/Control_Gain
flash
% examples/01.Basics/Control_Gain
RAM for global variables
% examples/01.Basics/Sinewave
flash
% examples/01.Basics/Sinewave
RAM for global variables
% examples/01.Basics/Sinewave_HIFI
flash
% examples/01.Basics/Sinewave_HIFI
RAM for global variables
% examples/01.Basics/Skeleton
flash
% examples/01.Basics/Skeleton
RAM for global variables
% examples/01.Basics/Skeleton_Multi
flash
% examples/01.Basics/Skeleton_Multi
RAM for global variables
% examples/01.Basics/Table_Resolution
flash
% examples/01.Basics/Table_Resolution
RAM for global variables
% examples/01.Basics/Vibrato
flash
% examples/01.Basics/Vibrato
RAM for global variables
% examples/02.Control/Control_Echo_Theremin
flash
% examples/02.Control/Control_Echo_Theremin
RAM for global variables
% examples/02.Control/Control_Oscil_Wash
flash
% examples/02.Control/Control_Oscil_Wash
RAM for global variables
% examples/02.Control/Control_Tremelo
flash
% examples/02.Control/Control_Tremelo
RAM for global variables
% examples/02.Control/EventDelay
flash
% examples/02.Control/EventDelay
RAM for global variables
% examples/02.Control/Line_Gliss
flash
% examples/02.Control/Line_Gliss
RAM for global variables
% examples/02.Control/Line_Gliss_Double_32k_HIFI
flash
% examples/02.Control/Line_Gliss_Double_32k_HIFI
RAM for global variables
% examples/02.Control/Metronome_SampleHuffman
flash
% examples/02.Control/Metronome_SampleHuffman
RAM for global variables
% examples/02.Control/Stop_Start
flash
% examples/02.Control/Stop_Start
RAM for global variables
% examples/06.Synthesis/AMsynth
flash
% examples/06.Synthesis/AMsynth
RAM for global variables
% examples/06.Synthesis/AMsynth_HIFI
flash
% examples/06.Synthesis/AMsynth_HIFI
RAM for global variables
% examples/06.Synthesis/Brown_Noise_Realtime
flash
% examples/06.Synthesis/Brown_Noise_Realtime
RAM for global variables
% examples/06.Synthesis/Detuned_Beats_Wash
flash
% examples/06.Synthesis/Detuned_Beats_Wash
RAM for global variables
% examples/06.Synthesis/Difference_Tone
flash
% examples/06.Synthesis/Difference_Tone
RAM for global variables
% examples/06.Synthesis/FMsynth
flash
% examples/06.Synthesis/FMsynth
RAM for global variables
% examples/06.Synthesis/FMsynth_32k_HIFI
flash
% examples/06.Synthesis/FMsynth_32k_HIFI
RAM for global variables
% examples/06.Synthesis/NonAlias_MetaOscil
flash
% examples/06.Synthesis/NonAlias_MetaOscil
RAM for global variables
% examples/06.Synthesis/PDresonant
flash
% examples/06.Synthesis/PDresonant
RAM for global variables
% examples/06.Synthesis/PWM_Phasing
flash
% examples/06.Synthesis/PWM_Phasing
RAM for global variables
% examples/06.Synthesis/WaveFolder
flash
% examples/06.Synthesis/WaveFolder
RAM for global variables
% examples/06.Synthesis/WavePacket_Double
flash
% examples/06.Synthesis/WavePacket_Double
RAM for global variables
% examples/06.Synthesis/WavePacket_Sample
flash
% examples/06.Synthesis/WavePacket_Sample
RAM for global variables
% examples/06.Synthesis/WavePacket_Single
flash
% examples/06.Synthesis/WavePacket_Single
RAM for global variables
% examples/06.Synthesis/Waveshaper
flash
% examples/06.Synthesis/Waveshaper
RAM for global variables
%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -16 -0.02 0 0.0 -20 -0.03 0 0.0 0 0.0 0 0.0 -8 -0.01 4 0.02 -8 -0.01 4 0.02 -20 -0.03 0 0.0 0 0.0 0 0.0 -12 -0.02 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -24 -0.04 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -8 -0.01 4 0.02
arduino:avr:uno 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -12 -0.04 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_giga:giga 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:adafruit_circuitplayground_m0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -24 -0.01 0 0.0 -24 -0.01 0 0.0 0 0.0 0 0.0 -12 -0.0 0 0.0 -12 -0.0 0 0.0 -20 -0.01 0 0.0 0 0.0 0 0.0 -4 -0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -24 -0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
esp8266:esp8266:huzzah N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
rp2040:rp2040:rpipico 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -24 -0.0 16 0.01 -24 -0.0 0 0.0 0 0.0 0 0.0 -16 -0.0 0 0.0 -16 -0.0 0 0.0 -16 -0.0 0 0.0 0 0.0 0 0.0 -16 -0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -24 -0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -16 -0.0 0 0.0
Click for full report CSV
Board,examples/01.Basics/Control_Gain<br>flash,%,examples/01.Basics/Control_Gain<br>RAM for global variables,%,examples/01.Basics/Sinewave<br>flash,%,examples/01.Basics/Sinewave<br>RAM for global variables,%,examples/01.Basics/Sinewave_HIFI<br>flash,%,examples/01.Basics/Sinewave_HIFI<br>RAM for global variables,%,examples/01.Basics/Skeleton<br>flash,%,examples/01.Basics/Skeleton<br>RAM for global variables,%,examples/01.Basics/Skeleton_Multi<br>flash,%,examples/01.Basics/Skeleton_Multi<br>RAM for global variables,%,examples/01.Basics/Table_Resolution<br>flash,%,examples/01.Basics/Table_Resolution<br>RAM for global variables,%,examples/01.Basics/Vibrato<br>flash,%,examples/01.Basics/Vibrato<br>RAM for global variables,%,examples/02.Control/Control_Echo_Theremin<br>flash,%,examples/02.Control/Control_Echo_Theremin<br>RAM for global variables,%,examples/02.Control/Control_Oscil_Wash<br>flash,%,examples/02.Control/Control_Oscil_Wash<br>RAM for global variables,%,examples/02.Control/Control_Tremelo<br>flash,%,examples/02.Control/Control_Tremelo<br>RAM for global variables,%,examples/02.Control/EventDelay<br>flash,%,examples/02.Control/EventDelay<br>RAM for global variables,%,examples/02.Control/Line_Gliss<br>flash,%,examples/02.Control/Line_Gliss<br>RAM for global variables,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>flash,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>RAM for global variables,%,examples/02.Control/Metronome_SampleHuffman<br>flash,%,examples/02.Control/Metronome_SampleHuffman<br>RAM for global variables,%,examples/02.Control/Stop_Start<br>flash,%,examples/02.Control/Stop_Start<br>RAM for global variables,%,examples/06.Synthesis/AMsynth<br>flash,%,examples/06.Synthesis/AMsynth<br>RAM for global variables,%,examples/06.Synthesis/AMsynth_HIFI<br>flash,%,examples/06.Synthesis/AMsynth_HIFI<br>RAM for global variables,%,examples/06.Synthesis/Brown_Noise_Realtime<br>flash,%,examples/06.Synthesis/Brown_Noise_Realtime<br>RAM for global variables,%,examples/06.Synthesis/Detuned_Beats_Wash<br>flash,%,examples/06.Synthesis/Detuned_Beats_Wash<br>RAM for global variables,%,examples/06.Synthesis/Difference_Tone<br>flash,%,examples/06.Synthesis/Difference_Tone<br>RAM for global variables,%,examples/06.Synthesis/FMsynth<br>flash,%,examples/06.Synthesis/FMsynth<br>RAM for global variables,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>flash,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>RAM for global variables,%,examples/06.Synthesis/NonAlias_MetaOscil<br>flash,%,examples/06.Synthesis/NonAlias_MetaOscil<br>RAM for global variables,%,examples/06.Synthesis/PDresonant<br>flash,%,examples/06.Synthesis/PDresonant<br>RAM for global variables,%,examples/06.Synthesis/PWM_Phasing<br>flash,%,examples/06.Synthesis/PWM_Phasing<br>RAM for global variables,%,examples/06.Synthesis/WaveFolder<br>flash,%,examples/06.Synthesis/WaveFolder<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Double<br>flash,%,examples/06.Synthesis/WavePacket_Double<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Sample<br>flash,%,examples/06.Synthesis/WavePacket_Sample<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Single<br>flash,%,examples/06.Synthesis/WavePacket_Single<br>RAM for global variables,%,examples/06.Synthesis/Waveshaper<br>flash,%,examples/06.Synthesis/Waveshaper<br>RAM for global variables,%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-16,-0.02,0,0.0,-20,-0.03,0,0.0,0,0.0,0,0.0,-8,-0.01,4,0.02,-8,-0.01,4,0.02,-20,-0.03,0,0.0,0,0.0,0,0.0,-12,-0.02,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-24,-0.04,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-8,-0.01,4,0.02
arduino:avr:uno,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-12,-0.04,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_giga:giga,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:samd:adafruit_circuitplayground_m0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-24,-0.01,0,0.0,-24,-0.01,0,0.0,0,0.0,0,0.0,-12,-0.0,0,0.0,-12,-0.0,0,0.0,-20,-0.01,0,0.0,0,0.0,0,0.0,-4,-0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-24,-0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
esp8266:esp8266:huzzah,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
rp2040:rp2040:rpipico,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-24,-0.0,16,0.01,-24,-0.0,0,0.0,0,0.0,0,0.0,-16,-0.0,0,0.0,-16,-0.0,0,0.0,-16,-0.0,0,0.0,0,0.0,0,0.0,-16,-0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-24,-0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-16,-0.0,0,0.0

@tfry-git tfry-git force-pushed the devel/single_compilation_unit branch 2 times, most recently from 0d63ad6 to 88303c1 Compare January 5, 2024 09:45
…tant step for single compilation unit)

This required introduction of a private namespace, so that internals do not leak out and clash with user code.
That, in turn, meant changes all over the place.
@tfry-git tfry-git force-pushed the devel/single_compilation_unit branch from 88303c1 to 51ae09a Compare January 5, 2024 09:51
@github-actions
Copy link

github-actions bot commented Jan 5, 2024

Memory usage change @ 51ae09a

Board flash % RAM for global variables %
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 ❔ -40 - +8 -0.06 - +0.01 🔺 0 - +4 0.0 - +0.02
arduino:avr:uno ❔ -12 - +60 -0.04 - +0.19 0 - 0 0.0 - 0.0
arduino:mbed_giga:giga 💚 -72 - 0 -0.0 - 0.0 💚 -16 - 0 -0.0 - 0.0
arduino:samd:adafruit_circuitplayground_m0 💚 -508 - -12 -0.19 - -0.0 💚 -4 - 0 -0.01 - 0.0
esp8266:esp8266:huzzah N/A N/A N/A N/A
rp2040:rp2040:rpipico 💚 -32 - 0 -0.0 - 0.0 ❔ -4 - +12 -0.0 - 0.0
Click for full report table
Board examples/01.Basics/Control_Gain
flash
% examples/01.Basics/Control_Gain
RAM for global variables
% examples/01.Basics/Sinewave
flash
% examples/01.Basics/Sinewave
RAM for global variables
% examples/01.Basics/Sinewave_HIFI
flash
% examples/01.Basics/Sinewave_HIFI
RAM for global variables
% examples/01.Basics/Skeleton
flash
% examples/01.Basics/Skeleton
RAM for global variables
% examples/01.Basics/Skeleton_Multi
flash
% examples/01.Basics/Skeleton_Multi
RAM for global variables
% examples/01.Basics/Table_Resolution
flash
% examples/01.Basics/Table_Resolution
RAM for global variables
% examples/01.Basics/Vibrato
flash
% examples/01.Basics/Vibrato
RAM for global variables
% examples/02.Control/Control_Echo_Theremin
flash
% examples/02.Control/Control_Echo_Theremin
RAM for global variables
% examples/02.Control/Control_Oscil_Wash
flash
% examples/02.Control/Control_Oscil_Wash
RAM for global variables
% examples/02.Control/Control_Tremelo
flash
% examples/02.Control/Control_Tremelo
RAM for global variables
% examples/02.Control/EventDelay
flash
% examples/02.Control/EventDelay
RAM for global variables
% examples/02.Control/Line_Gliss
flash
% examples/02.Control/Line_Gliss
RAM for global variables
% examples/02.Control/Line_Gliss_Double_32k_HIFI
flash
% examples/02.Control/Line_Gliss_Double_32k_HIFI
RAM for global variables
% examples/02.Control/Metronome_SampleHuffman
flash
% examples/02.Control/Metronome_SampleHuffman
RAM for global variables
% examples/02.Control/Stop_Start
flash
% examples/02.Control/Stop_Start
RAM for global variables
% examples/06.Synthesis/AMsynth
flash
% examples/06.Synthesis/AMsynth
RAM for global variables
% examples/06.Synthesis/AMsynth_HIFI
flash
% examples/06.Synthesis/AMsynth_HIFI
RAM for global variables
% examples/06.Synthesis/Brown_Noise_Realtime
flash
% examples/06.Synthesis/Brown_Noise_Realtime
RAM for global variables
% examples/06.Synthesis/Detuned_Beats_Wash
flash
% examples/06.Synthesis/Detuned_Beats_Wash
RAM for global variables
% examples/06.Synthesis/Difference_Tone
flash
% examples/06.Synthesis/Difference_Tone
RAM for global variables
% examples/06.Synthesis/FMsynth
flash
% examples/06.Synthesis/FMsynth
RAM for global variables
% examples/06.Synthesis/FMsynth_32k_HIFI
flash
% examples/06.Synthesis/FMsynth_32k_HIFI
RAM for global variables
% examples/06.Synthesis/NonAlias_MetaOscil
flash
% examples/06.Synthesis/NonAlias_MetaOscil
RAM for global variables
% examples/06.Synthesis/PDresonant
flash
% examples/06.Synthesis/PDresonant
RAM for global variables
% examples/06.Synthesis/PWM_Phasing
flash
% examples/06.Synthesis/PWM_Phasing
RAM for global variables
% examples/06.Synthesis/WaveFolder
flash
% examples/06.Synthesis/WaveFolder
RAM for global variables
% examples/06.Synthesis/WavePacket_Double
flash
% examples/06.Synthesis/WavePacket_Double
RAM for global variables
% examples/06.Synthesis/WavePacket_Sample
flash
% examples/06.Synthesis/WavePacket_Sample
RAM for global variables
% examples/06.Synthesis/WavePacket_Single
flash
% examples/06.Synthesis/WavePacket_Single
RAM for global variables
% examples/06.Synthesis/Waveshaper
flash
% examples/06.Synthesis/Waveshaper
RAM for global variables
%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 -4 -0.01 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -8 -0.01 0 0.0 -4 -0.01 0 0.0 -8 -0.01 0 0.0 -16 -0.02 0 0.0 -12 -0.02 0 0.0 -8 -0.01 0 0.0 -24 -0.04 0 0.0 -28 -0.04 0 0.0 8 0.01 0 0.0 -24 -0.04 4 0.02 -24 -0.04 4 0.02 -32 -0.05 0 0.0 -4 -0.01 0 0.0 -20 -0.03 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -40 -0.06 0 0.0 -16 -0.02 0 0.0 -8 -0.01 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -28 -0.04 4 0.02
arduino:avr:uno 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 60 0.19 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -12 -0.04 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 58 0.18 0 0.0 58 0.18 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_giga:giga -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 0 0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -16 -0.0 -72 -0.0 -16 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 0 0.0 0 0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0
arduino:samd:adafruit_circuitplayground_m0 -476 -0.18 -4 -0.01 -492 -0.19 -4 -0.01 -492 -0.19 -4 -0.01 -492 -0.19 0 0.0 -484 -0.18 0 0.0 -484 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -492 -0.19 -4 -0.01 -476 -0.18 -4 -0.01 -476 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -12 -0.0 -4 -0.01 -36 -0.01 -4 -0.01 -504 -0.19 -4 -0.01 -472 -0.18 -4 -0.01 -504 -0.19 -4 -0.01 -504 -0.19 -4 -0.01 -508 -0.19 -4 -0.01 -476 -0.18 -4 -0.01 -488 -0.19 -4 -0.01 -484 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -488 -0.19 -4 -0.01 -48 -0.02 -4 -0.01 -484 -0.18 0 0.0 -480 -0.18 -4 -0.01 -20 -0.01 -4 -0.01 -20 -0.01 -4 -0.01 -24 -0.01 -4 -0.01 -488 -0.19 -4 -0.01
esp8266:esp8266:huzzah N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
rp2040:rp2040:rpipico 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 0 0.0 -4 -0.0 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 -24 -0.0 12 0.0 -24 -0.0 -4 -0.0 0 0.0 -4 -0.0 -32 -0.0 -4 -0.0 -32 -0.0 -4 -0.0 -24 -0.0 -4 -0.0 0 0.0 -4 -0.0 -16 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -24 -0.0 -4 -0.0 -8 -0.0 0 0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -24 -0.0 -4 -0.0
Click for full report CSV
Board,examples/01.Basics/Control_Gain<br>flash,%,examples/01.Basics/Control_Gain<br>RAM for global variables,%,examples/01.Basics/Sinewave<br>flash,%,examples/01.Basics/Sinewave<br>RAM for global variables,%,examples/01.Basics/Sinewave_HIFI<br>flash,%,examples/01.Basics/Sinewave_HIFI<br>RAM for global variables,%,examples/01.Basics/Skeleton<br>flash,%,examples/01.Basics/Skeleton<br>RAM for global variables,%,examples/01.Basics/Skeleton_Multi<br>flash,%,examples/01.Basics/Skeleton_Multi<br>RAM for global variables,%,examples/01.Basics/Table_Resolution<br>flash,%,examples/01.Basics/Table_Resolution<br>RAM for global variables,%,examples/01.Basics/Vibrato<br>flash,%,examples/01.Basics/Vibrato<br>RAM for global variables,%,examples/02.Control/Control_Echo_Theremin<br>flash,%,examples/02.Control/Control_Echo_Theremin<br>RAM for global variables,%,examples/02.Control/Control_Oscil_Wash<br>flash,%,examples/02.Control/Control_Oscil_Wash<br>RAM for global variables,%,examples/02.Control/Control_Tremelo<br>flash,%,examples/02.Control/Control_Tremelo<br>RAM for global variables,%,examples/02.Control/EventDelay<br>flash,%,examples/02.Control/EventDelay<br>RAM for global variables,%,examples/02.Control/Line_Gliss<br>flash,%,examples/02.Control/Line_Gliss<br>RAM for global variables,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>flash,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>RAM for global variables,%,examples/02.Control/Metronome_SampleHuffman<br>flash,%,examples/02.Control/Metronome_SampleHuffman<br>RAM for global variables,%,examples/02.Control/Stop_Start<br>flash,%,examples/02.Control/Stop_Start<br>RAM for global variables,%,examples/06.Synthesis/AMsynth<br>flash,%,examples/06.Synthesis/AMsynth<br>RAM for global variables,%,examples/06.Synthesis/AMsynth_HIFI<br>flash,%,examples/06.Synthesis/AMsynth_HIFI<br>RAM for global variables,%,examples/06.Synthesis/Brown_Noise_Realtime<br>flash,%,examples/06.Synthesis/Brown_Noise_Realtime<br>RAM for global variables,%,examples/06.Synthesis/Detuned_Beats_Wash<br>flash,%,examples/06.Synthesis/Detuned_Beats_Wash<br>RAM for global variables,%,examples/06.Synthesis/Difference_Tone<br>flash,%,examples/06.Synthesis/Difference_Tone<br>RAM for global variables,%,examples/06.Synthesis/FMsynth<br>flash,%,examples/06.Synthesis/FMsynth<br>RAM for global variables,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>flash,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>RAM for global variables,%,examples/06.Synthesis/NonAlias_MetaOscil<br>flash,%,examples/06.Synthesis/NonAlias_MetaOscil<br>RAM for global variables,%,examples/06.Synthesis/PDresonant<br>flash,%,examples/06.Synthesis/PDresonant<br>RAM for global variables,%,examples/06.Synthesis/PWM_Phasing<br>flash,%,examples/06.Synthesis/PWM_Phasing<br>RAM for global variables,%,examples/06.Synthesis/WaveFolder<br>flash,%,examples/06.Synthesis/WaveFolder<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Double<br>flash,%,examples/06.Synthesis/WavePacket_Double<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Sample<br>flash,%,examples/06.Synthesis/WavePacket_Sample<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Single<br>flash,%,examples/06.Synthesis/WavePacket_Single<br>RAM for global variables,%,examples/06.Synthesis/Waveshaper<br>flash,%,examples/06.Synthesis/Waveshaper<br>RAM for global variables,%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8,-4,-0.01,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-8,-0.01,0,0.0,-4,-0.01,0,0.0,-8,-0.01,0,0.0,-16,-0.02,0,0.0,-12,-0.02,0,0.0,-8,-0.01,0,0.0,-24,-0.04,0,0.0,-28,-0.04,0,0.0,8,0.01,0,0.0,-24,-0.04,4,0.02,-24,-0.04,4,0.02,-32,-0.05,0,0.0,-4,-0.01,0,0.0,-20,-0.03,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-40,-0.06,0,0.0,-16,-0.02,0,0.0,-8,-0.01,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-28,-0.04,4,0.02
arduino:avr:uno,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,60,0.19,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-12,-0.04,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,58,0.18,0,0.0,58,0.18,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_giga:giga,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,0,0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-16,-0.0,-72,-0.0,-16,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,0,0.0,0,0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0
arduino:samd:adafruit_circuitplayground_m0,-476,-0.18,-4,-0.01,-492,-0.19,-4,-0.01,-492,-0.19,-4,-0.01,-492,-0.19,0,0.0,-484,-0.18,0,0.0,-484,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-492,-0.19,-4,-0.01,-476,-0.18,-4,-0.01,-476,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-12,-0.0,-4,-0.01,-36,-0.01,-4,-0.01,-504,-0.19,-4,-0.01,-472,-0.18,-4,-0.01,-504,-0.19,-4,-0.01,-504,-0.19,-4,-0.01,-508,-0.19,-4,-0.01,-476,-0.18,-4,-0.01,-488,-0.19,-4,-0.01,-484,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-488,-0.19,-4,-0.01,-48,-0.02,-4,-0.01,-484,-0.18,0,0.0,-480,-0.18,-4,-0.01,-20,-0.01,-4,-0.01,-20,-0.01,-4,-0.01,-24,-0.01,-4,-0.01,-488,-0.19,-4,-0.01
esp8266:esp8266:huzzah,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
rp2040:rp2040:rpipico,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,0,0.0,-4,-0.0,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,-24,-0.0,12,0.0,-24,-0.0,-4,-0.0,0,0.0,-4,-0.0,-32,-0.0,-4,-0.0,-32,-0.0,-4,-0.0,-24,-0.0,-4,-0.0,0,0.0,-4,-0.0,-16,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-24,-0.0,-4,-0.0,-8,-0.0,0,0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-24,-0.0,-4,-0.0

@tfry-git tfry-git force-pushed the devel/single_compilation_unit branch from cfaa748 to ee4efe3 Compare January 5, 2024 12:50
@github-actions
Copy link

github-actions bot commented Jan 5, 2024

Memory usage change @ 832cf3a

Board flash % RAM for global variables %
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 ❔ -40 - +8 -0.06 - +0.01 🔺 0 - +4 0.0 - +0.02
arduino:avr:uno 💚 -110 - -38 -0.34 - -0.12 0 - 0 0.0 - 0.0
arduino:mbed_giga:giga 💚 -72 - 0 -0.0 - 0.0 💚 -16 - 0 -0.0 - 0.0
arduino:samd:adafruit_circuitplayground_m0 💚 -508 - -12 -0.19 - -0.0 💚 -4 - 0 -0.01 - 0.0
esp8266:esp8266:huzzah N/A N/A N/A N/A
rp2040:rp2040:rpipico 💚 -32 - 0 -0.0 - 0.0 ❔ -4 - +12 -0.0 - 0.0
Click for full report table
Board examples/01.Basics/Control_Gain
flash
% examples/01.Basics/Control_Gain
RAM for global variables
% examples/01.Basics/Sinewave
flash
% examples/01.Basics/Sinewave
RAM for global variables
% examples/01.Basics/Sinewave_HIFI
flash
% examples/01.Basics/Sinewave_HIFI
RAM for global variables
% examples/01.Basics/Skeleton
flash
% examples/01.Basics/Skeleton
RAM for global variables
% examples/01.Basics/Skeleton_Multi
flash
% examples/01.Basics/Skeleton_Multi
RAM for global variables
% examples/01.Basics/Table_Resolution
flash
% examples/01.Basics/Table_Resolution
RAM for global variables
% examples/01.Basics/Vibrato
flash
% examples/01.Basics/Vibrato
RAM for global variables
% examples/02.Control/Control_Echo_Theremin
flash
% examples/02.Control/Control_Echo_Theremin
RAM for global variables
% examples/02.Control/Control_Oscil_Wash
flash
% examples/02.Control/Control_Oscil_Wash
RAM for global variables
% examples/02.Control/Control_Tremelo
flash
% examples/02.Control/Control_Tremelo
RAM for global variables
% examples/02.Control/EventDelay
flash
% examples/02.Control/EventDelay
RAM for global variables
% examples/02.Control/Line_Gliss
flash
% examples/02.Control/Line_Gliss
RAM for global variables
% examples/02.Control/Line_Gliss_Double_32k_HIFI
flash
% examples/02.Control/Line_Gliss_Double_32k_HIFI
RAM for global variables
% examples/02.Control/Metronome_SampleHuffman
flash
% examples/02.Control/Metronome_SampleHuffman
RAM for global variables
% examples/02.Control/Stop_Start
flash
% examples/02.Control/Stop_Start
RAM for global variables
% examples/06.Synthesis/AMsynth
flash
% examples/06.Synthesis/AMsynth
RAM for global variables
% examples/06.Synthesis/AMsynth_HIFI
flash
% examples/06.Synthesis/AMsynth_HIFI
RAM for global variables
% examples/06.Synthesis/Brown_Noise_Realtime
flash
% examples/06.Synthesis/Brown_Noise_Realtime
RAM for global variables
% examples/06.Synthesis/Detuned_Beats_Wash
flash
% examples/06.Synthesis/Detuned_Beats_Wash
RAM for global variables
% examples/06.Synthesis/Difference_Tone
flash
% examples/06.Synthesis/Difference_Tone
RAM for global variables
% examples/06.Synthesis/FMsynth
flash
% examples/06.Synthesis/FMsynth
RAM for global variables
% examples/06.Synthesis/FMsynth_32k_HIFI
flash
% examples/06.Synthesis/FMsynth_32k_HIFI
RAM for global variables
% examples/06.Synthesis/NonAlias_MetaOscil
flash
% examples/06.Synthesis/NonAlias_MetaOscil
RAM for global variables
% examples/06.Synthesis/PDresonant
flash
% examples/06.Synthesis/PDresonant
RAM for global variables
% examples/06.Synthesis/PWM_Phasing
flash
% examples/06.Synthesis/PWM_Phasing
RAM for global variables
% examples/06.Synthesis/WaveFolder
flash
% examples/06.Synthesis/WaveFolder
RAM for global variables
% examples/06.Synthesis/WavePacket_Double
flash
% examples/06.Synthesis/WavePacket_Double
RAM for global variables
% examples/06.Synthesis/WavePacket_Sample
flash
% examples/06.Synthesis/WavePacket_Sample
RAM for global variables
% examples/06.Synthesis/WavePacket_Single
flash
% examples/06.Synthesis/WavePacket_Single
RAM for global variables
% examples/06.Synthesis/Waveshaper
flash
% examples/06.Synthesis/Waveshaper
RAM for global variables
%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 -4 -0.01 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -8 -0.01 0 0.0 -4 -0.01 0 0.0 -8 -0.01 0 0.0 -16 -0.02 0 0.0 -12 -0.02 0 0.0 -8 -0.01 0 0.0 -24 -0.04 0 0.0 -28 -0.04 0 0.0 8 0.01 0 0.0 -24 -0.04 4 0.02 -24 -0.04 4 0.02 -32 -0.05 0 0.0 -4 -0.01 0 0.0 -20 -0.03 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -40 -0.06 0 0.0 -16 -0.02 0 0.0 -8 -0.01 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -28 -0.04 4 0.02
arduino:avr:uno -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -38 -0.12 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -110 -0.34 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -40 -0.12 0 0.0 -40 -0.12 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0
arduino:mbed_giga:giga -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 0 0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -16 -0.0 -72 -0.0 -16 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 0 0.0 0 0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0
arduino:samd:adafruit_circuitplayground_m0 -476 -0.18 -4 -0.01 -492 -0.19 -4 -0.01 -492 -0.19 -4 -0.01 -492 -0.19 0 0.0 -484 -0.18 0 0.0 -484 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -492 -0.19 -4 -0.01 -476 -0.18 -4 -0.01 -476 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -12 -0.0 -4 -0.01 -36 -0.01 -4 -0.01 -504 -0.19 -4 -0.01 -472 -0.18 -4 -0.01 -504 -0.19 -4 -0.01 -504 -0.19 -4 -0.01 -508 -0.19 -4 -0.01 -476 -0.18 -4 -0.01 -488 -0.19 -4 -0.01 -484 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -488 -0.19 -4 -0.01 -48 -0.02 -4 -0.01 -484 -0.18 0 0.0 -480 -0.18 -4 -0.01 -20 -0.01 -4 -0.01 -20 -0.01 -4 -0.01 -24 -0.01 -4 -0.01 -488 -0.19 -4 -0.01
esp8266:esp8266:huzzah N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
rp2040:rp2040:rpipico 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 0 0.0 -4 -0.0 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 -24 -0.0 12 0.0 -24 -0.0 -4 -0.0 0 0.0 -4 -0.0 -32 -0.0 -4 -0.0 -32 -0.0 -4 -0.0 -24 -0.0 -4 -0.0 0 0.0 -4 -0.0 -16 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -24 -0.0 -4 -0.0 -8 -0.0 0 0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -24 -0.0 -4 -0.0
Click for full report CSV
Board,examples/01.Basics/Control_Gain<br>flash,%,examples/01.Basics/Control_Gain<br>RAM for global variables,%,examples/01.Basics/Sinewave<br>flash,%,examples/01.Basics/Sinewave<br>RAM for global variables,%,examples/01.Basics/Sinewave_HIFI<br>flash,%,examples/01.Basics/Sinewave_HIFI<br>RAM for global variables,%,examples/01.Basics/Skeleton<br>flash,%,examples/01.Basics/Skeleton<br>RAM for global variables,%,examples/01.Basics/Skeleton_Multi<br>flash,%,examples/01.Basics/Skeleton_Multi<br>RAM for global variables,%,examples/01.Basics/Table_Resolution<br>flash,%,examples/01.Basics/Table_Resolution<br>RAM for global variables,%,examples/01.Basics/Vibrato<br>flash,%,examples/01.Basics/Vibrato<br>RAM for global variables,%,examples/02.Control/Control_Echo_Theremin<br>flash,%,examples/02.Control/Control_Echo_Theremin<br>RAM for global variables,%,examples/02.Control/Control_Oscil_Wash<br>flash,%,examples/02.Control/Control_Oscil_Wash<br>RAM for global variables,%,examples/02.Control/Control_Tremelo<br>flash,%,examples/02.Control/Control_Tremelo<br>RAM for global variables,%,examples/02.Control/EventDelay<br>flash,%,examples/02.Control/EventDelay<br>RAM for global variables,%,examples/02.Control/Line_Gliss<br>flash,%,examples/02.Control/Line_Gliss<br>RAM for global variables,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>flash,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>RAM for global variables,%,examples/02.Control/Metronome_SampleHuffman<br>flash,%,examples/02.Control/Metronome_SampleHuffman<br>RAM for global variables,%,examples/02.Control/Stop_Start<br>flash,%,examples/02.Control/Stop_Start<br>RAM for global variables,%,examples/06.Synthesis/AMsynth<br>flash,%,examples/06.Synthesis/AMsynth<br>RAM for global variables,%,examples/06.Synthesis/AMsynth_HIFI<br>flash,%,examples/06.Synthesis/AMsynth_HIFI<br>RAM for global variables,%,examples/06.Synthesis/Brown_Noise_Realtime<br>flash,%,examples/06.Synthesis/Brown_Noise_Realtime<br>RAM for global variables,%,examples/06.Synthesis/Detuned_Beats_Wash<br>flash,%,examples/06.Synthesis/Detuned_Beats_Wash<br>RAM for global variables,%,examples/06.Synthesis/Difference_Tone<br>flash,%,examples/06.Synthesis/Difference_Tone<br>RAM for global variables,%,examples/06.Synthesis/FMsynth<br>flash,%,examples/06.Synthesis/FMsynth<br>RAM for global variables,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>flash,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>RAM for global variables,%,examples/06.Synthesis/NonAlias_MetaOscil<br>flash,%,examples/06.Synthesis/NonAlias_MetaOscil<br>RAM for global variables,%,examples/06.Synthesis/PDresonant<br>flash,%,examples/06.Synthesis/PDresonant<br>RAM for global variables,%,examples/06.Synthesis/PWM_Phasing<br>flash,%,examples/06.Synthesis/PWM_Phasing<br>RAM for global variables,%,examples/06.Synthesis/WaveFolder<br>flash,%,examples/06.Synthesis/WaveFolder<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Double<br>flash,%,examples/06.Synthesis/WavePacket_Double<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Sample<br>flash,%,examples/06.Synthesis/WavePacket_Sample<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Single<br>flash,%,examples/06.Synthesis/WavePacket_Single<br>RAM for global variables,%,examples/06.Synthesis/Waveshaper<br>flash,%,examples/06.Synthesis/Waveshaper<br>RAM for global variables,%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8,-4,-0.01,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-8,-0.01,0,0.0,-4,-0.01,0,0.0,-8,-0.01,0,0.0,-16,-0.02,0,0.0,-12,-0.02,0,0.0,-8,-0.01,0,0.0,-24,-0.04,0,0.0,-28,-0.04,0,0.0,8,0.01,0,0.0,-24,-0.04,4,0.02,-24,-0.04,4,0.02,-32,-0.05,0,0.0,-4,-0.01,0,0.0,-20,-0.03,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-40,-0.06,0,0.0,-16,-0.02,0,0.0,-8,-0.01,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-28,-0.04,4,0.02
arduino:avr:uno,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-38,-0.12,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-110,-0.34,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-40,-0.12,0,0.0,-40,-0.12,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0
arduino:mbed_giga:giga,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,0,0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-16,-0.0,-72,-0.0,-16,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,0,0.0,0,0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0
arduino:samd:adafruit_circuitplayground_m0,-476,-0.18,-4,-0.01,-492,-0.19,-4,-0.01,-492,-0.19,-4,-0.01,-492,-0.19,0,0.0,-484,-0.18,0,0.0,-484,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-492,-0.19,-4,-0.01,-476,-0.18,-4,-0.01,-476,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-12,-0.0,-4,-0.01,-36,-0.01,-4,-0.01,-504,-0.19,-4,-0.01,-472,-0.18,-4,-0.01,-504,-0.19,-4,-0.01,-504,-0.19,-4,-0.01,-508,-0.19,-4,-0.01,-476,-0.18,-4,-0.01,-488,-0.19,-4,-0.01,-484,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-488,-0.19,-4,-0.01,-48,-0.02,-4,-0.01,-484,-0.18,0,0.0,-480,-0.18,-4,-0.01,-20,-0.01,-4,-0.01,-20,-0.01,-4,-0.01,-24,-0.01,-4,-0.01,-488,-0.19,-4,-0.01
esp8266:esp8266:huzzah,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
rp2040:rp2040:rpipico,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,0,0.0,-4,-0.0,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,-24,-0.0,12,0.0,-24,-0.0,-4,-0.0,0,0.0,-4,-0.0,-32,-0.0,-4,-0.0,-32,-0.0,-4,-0.0,-24,-0.0,-4,-0.0,0,0.0,-4,-0.0,-16,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-24,-0.0,-4,-0.0,-8,-0.0,0,0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-24,-0.0,-4,-0.0

Repository owner deleted a comment from github-actions bot Jan 5, 2024
Adjusted two of the stereo examples for starters
Repository owner deleted a comment from github-actions bot Jan 5, 2024
@tfry-git tfry-git force-pushed the devel/single_compilation_unit branch from 6a0e001 to f0bdae2 Compare January 5, 2024 18:14
@github-actions
Copy link

github-actions bot commented Jan 5, 2024

Memory usage change @ 6a0e001

Board flash % RAM for global variables %
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 ❔ -40 - +8 -0.06 - +0.01 🔺 0 - +4 0.0 - +0.02
arduino:avr:uno 💚 -110 - -38 -0.34 - -0.12 0 - 0 0.0 - 0.0
arduino:mbed_giga:giga 💚 -72 - 0 -0.0 - 0.0 💚 -16 - 0 -0.0 - 0.0
arduino:samd:adafruit_circuitplayground_m0 💚 -508 - -12 -0.19 - -0.0 💚 -4 - 0 -0.01 - 0.0
esp8266:esp8266:huzzah N/A N/A N/A N/A
rp2040:rp2040:rpipico 💚 -32 - 0 -0.0 - 0.0 ❔ -4 - +12 -0.0 - 0.0
Click for full report table
Board examples/01.Basics/Control_Gain
flash
% examples/01.Basics/Control_Gain
RAM for global variables
% examples/01.Basics/Sinewave
flash
% examples/01.Basics/Sinewave
RAM for global variables
% examples/01.Basics/Sinewave_HIFI
flash
% examples/01.Basics/Sinewave_HIFI
RAM for global variables
% examples/01.Basics/Skeleton
flash
% examples/01.Basics/Skeleton
RAM for global variables
% examples/01.Basics/Skeleton_Multi
flash
% examples/01.Basics/Skeleton_Multi
RAM for global variables
% examples/01.Basics/Table_Resolution
flash
% examples/01.Basics/Table_Resolution
RAM for global variables
% examples/01.Basics/Vibrato
flash
% examples/01.Basics/Vibrato
RAM for global variables
% examples/02.Control/Control_Echo_Theremin
flash
% examples/02.Control/Control_Echo_Theremin
RAM for global variables
% examples/02.Control/Control_Oscil_Wash
flash
% examples/02.Control/Control_Oscil_Wash
RAM for global variables
% examples/02.Control/Control_Tremelo
flash
% examples/02.Control/Control_Tremelo
RAM for global variables
% examples/02.Control/EventDelay
flash
% examples/02.Control/EventDelay
RAM for global variables
% examples/02.Control/Line_Gliss
flash
% examples/02.Control/Line_Gliss
RAM for global variables
% examples/02.Control/Line_Gliss_Double_32k_HIFI
flash
% examples/02.Control/Line_Gliss_Double_32k_HIFI
RAM for global variables
% examples/02.Control/Metronome_SampleHuffman
flash
% examples/02.Control/Metronome_SampleHuffman
RAM for global variables
% examples/02.Control/Stop_Start
flash
% examples/02.Control/Stop_Start
RAM for global variables
% examples/06.Synthesis/AMsynth
flash
% examples/06.Synthesis/AMsynth
RAM for global variables
% examples/06.Synthesis/AMsynth_HIFI
flash
% examples/06.Synthesis/AMsynth_HIFI
RAM for global variables
% examples/06.Synthesis/Brown_Noise_Realtime
flash
% examples/06.Synthesis/Brown_Noise_Realtime
RAM for global variables
% examples/06.Synthesis/Detuned_Beats_Wash
flash
% examples/06.Synthesis/Detuned_Beats_Wash
RAM for global variables
% examples/06.Synthesis/Difference_Tone
flash
% examples/06.Synthesis/Difference_Tone
RAM for global variables
% examples/06.Synthesis/FMsynth
flash
% examples/06.Synthesis/FMsynth
RAM for global variables
% examples/06.Synthesis/FMsynth_32k_HIFI
flash
% examples/06.Synthesis/FMsynth_32k_HIFI
RAM for global variables
% examples/06.Synthesis/NonAlias_MetaOscil
flash
% examples/06.Synthesis/NonAlias_MetaOscil
RAM for global variables
% examples/06.Synthesis/PDresonant
flash
% examples/06.Synthesis/PDresonant
RAM for global variables
% examples/06.Synthesis/PWM_Phasing
flash
% examples/06.Synthesis/PWM_Phasing
RAM for global variables
% examples/06.Synthesis/WaveFolder
flash
% examples/06.Synthesis/WaveFolder
RAM for global variables
% examples/06.Synthesis/WavePacket_Double
flash
% examples/06.Synthesis/WavePacket_Double
RAM for global variables
% examples/06.Synthesis/WavePacket_Sample
flash
% examples/06.Synthesis/WavePacket_Sample
RAM for global variables
% examples/06.Synthesis/WavePacket_Single
flash
% examples/06.Synthesis/WavePacket_Single
RAM for global variables
% examples/06.Synthesis/Waveshaper
flash
% examples/06.Synthesis/Waveshaper
RAM for global variables
%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 -4 -0.01 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -8 -0.01 0 0.0 -4 -0.01 0 0.0 -8 -0.01 0 0.0 -16 -0.02 0 0.0 -12 -0.02 0 0.0 -8 -0.01 0 0.0 -24 -0.04 0 0.0 -28 -0.04 0 0.0 8 0.01 0 0.0 -24 -0.04 4 0.02 -24 -0.04 4 0.02 -32 -0.05 0 0.0 -4 -0.01 0 0.0 -20 -0.03 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -16 -0.02 0 0.0 -40 -0.06 0 0.0 -16 -0.02 0 0.0 -8 -0.01 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -28 -0.04 4 0.02
arduino:avr:uno -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -38 -0.12 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -110 -0.34 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -40 -0.12 0 0.0 -40 -0.12 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0
arduino:mbed_giga:giga -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 0 0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -16 -0.0 -72 -0.0 -16 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 0 0.0 0 0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0
arduino:samd:adafruit_circuitplayground_m0 -476 -0.18 -4 -0.01 -492 -0.19 -4 -0.01 -492 -0.19 -4 -0.01 -492 -0.19 0 0.0 -484 -0.18 0 0.0 -484 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -492 -0.19 -4 -0.01 -476 -0.18 -4 -0.01 -476 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -12 -0.0 -4 -0.01 -36 -0.01 -4 -0.01 -504 -0.19 -4 -0.01 -472 -0.18 -4 -0.01 -504 -0.19 -4 -0.01 -504 -0.19 -4 -0.01 -508 -0.19 -4 -0.01 -476 -0.18 -4 -0.01 -488 -0.19 -4 -0.01 -484 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -488 -0.19 -4 -0.01 -48 -0.02 -4 -0.01 -484 -0.18 0 0.0 -480 -0.18 -4 -0.01 -20 -0.01 -4 -0.01 -20 -0.01 -4 -0.01 -24 -0.01 -4 -0.01 -488 -0.19 -4 -0.01
esp8266:esp8266:huzzah N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
rp2040:rp2040:rpipico 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 0 0.0 -4 -0.0 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 -24 -0.0 12 0.0 -24 -0.0 -4 -0.0 0 0.0 -4 -0.0 -32 -0.0 -4 -0.0 -32 -0.0 -4 -0.0 -24 -0.0 -4 -0.0 0 0.0 -4 -0.0 -16 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -24 -0.0 -4 -0.0 -8 -0.0 0 0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -24 -0.0 -4 -0.0
Click for full report CSV
Board,examples/01.Basics/Control_Gain<br>flash,%,examples/01.Basics/Control_Gain<br>RAM for global variables,%,examples/01.Basics/Sinewave<br>flash,%,examples/01.Basics/Sinewave<br>RAM for global variables,%,examples/01.Basics/Sinewave_HIFI<br>flash,%,examples/01.Basics/Sinewave_HIFI<br>RAM for global variables,%,examples/01.Basics/Skeleton<br>flash,%,examples/01.Basics/Skeleton<br>RAM for global variables,%,examples/01.Basics/Skeleton_Multi<br>flash,%,examples/01.Basics/Skeleton_Multi<br>RAM for global variables,%,examples/01.Basics/Table_Resolution<br>flash,%,examples/01.Basics/Table_Resolution<br>RAM for global variables,%,examples/01.Basics/Vibrato<br>flash,%,examples/01.Basics/Vibrato<br>RAM for global variables,%,examples/02.Control/Control_Echo_Theremin<br>flash,%,examples/02.Control/Control_Echo_Theremin<br>RAM for global variables,%,examples/02.Control/Control_Oscil_Wash<br>flash,%,examples/02.Control/Control_Oscil_Wash<br>RAM for global variables,%,examples/02.Control/Control_Tremelo<br>flash,%,examples/02.Control/Control_Tremelo<br>RAM for global variables,%,examples/02.Control/EventDelay<br>flash,%,examples/02.Control/EventDelay<br>RAM for global variables,%,examples/02.Control/Line_Gliss<br>flash,%,examples/02.Control/Line_Gliss<br>RAM for global variables,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>flash,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>RAM for global variables,%,examples/02.Control/Metronome_SampleHuffman<br>flash,%,examples/02.Control/Metronome_SampleHuffman<br>RAM for global variables,%,examples/02.Control/Stop_Start<br>flash,%,examples/02.Control/Stop_Start<br>RAM for global variables,%,examples/06.Synthesis/AMsynth<br>flash,%,examples/06.Synthesis/AMsynth<br>RAM for global variables,%,examples/06.Synthesis/AMsynth_HIFI<br>flash,%,examples/06.Synthesis/AMsynth_HIFI<br>RAM for global variables,%,examples/06.Synthesis/Brown_Noise_Realtime<br>flash,%,examples/06.Synthesis/Brown_Noise_Realtime<br>RAM for global variables,%,examples/06.Synthesis/Detuned_Beats_Wash<br>flash,%,examples/06.Synthesis/Detuned_Beats_Wash<br>RAM for global variables,%,examples/06.Synthesis/Difference_Tone<br>flash,%,examples/06.Synthesis/Difference_Tone<br>RAM for global variables,%,examples/06.Synthesis/FMsynth<br>flash,%,examples/06.Synthesis/FMsynth<br>RAM for global variables,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>flash,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>RAM for global variables,%,examples/06.Synthesis/NonAlias_MetaOscil<br>flash,%,examples/06.Synthesis/NonAlias_MetaOscil<br>RAM for global variables,%,examples/06.Synthesis/PDresonant<br>flash,%,examples/06.Synthesis/PDresonant<br>RAM for global variables,%,examples/06.Synthesis/PWM_Phasing<br>flash,%,examples/06.Synthesis/PWM_Phasing<br>RAM for global variables,%,examples/06.Synthesis/WaveFolder<br>flash,%,examples/06.Synthesis/WaveFolder<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Double<br>flash,%,examples/06.Synthesis/WavePacket_Double<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Sample<br>flash,%,examples/06.Synthesis/WavePacket_Sample<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Single<br>flash,%,examples/06.Synthesis/WavePacket_Single<br>RAM for global variables,%,examples/06.Synthesis/Waveshaper<br>flash,%,examples/06.Synthesis/Waveshaper<br>RAM for global variables,%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8,-4,-0.01,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-8,-0.01,0,0.0,-4,-0.01,0,0.0,-8,-0.01,0,0.0,-16,-0.02,0,0.0,-12,-0.02,0,0.0,-8,-0.01,0,0.0,-24,-0.04,0,0.0,-28,-0.04,0,0.0,8,0.01,0,0.0,-24,-0.04,4,0.02,-24,-0.04,4,0.02,-32,-0.05,0,0.0,-4,-0.01,0,0.0,-20,-0.03,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-16,-0.02,0,0.0,-40,-0.06,0,0.0,-16,-0.02,0,0.0,-8,-0.01,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-28,-0.04,4,0.02
arduino:avr:uno,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-38,-0.12,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-110,-0.34,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-40,-0.12,0,0.0,-40,-0.12,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0
arduino:mbed_giga:giga,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,0,0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-16,-0.0,-72,-0.0,-16,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,0,0.0,0,0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0
arduino:samd:adafruit_circuitplayground_m0,-476,-0.18,-4,-0.01,-492,-0.19,-4,-0.01,-492,-0.19,-4,-0.01,-492,-0.19,0,0.0,-484,-0.18,0,0.0,-484,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-492,-0.19,-4,-0.01,-476,-0.18,-4,-0.01,-476,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-12,-0.0,-4,-0.01,-36,-0.01,-4,-0.01,-504,-0.19,-4,-0.01,-472,-0.18,-4,-0.01,-504,-0.19,-4,-0.01,-504,-0.19,-4,-0.01,-508,-0.19,-4,-0.01,-476,-0.18,-4,-0.01,-488,-0.19,-4,-0.01,-484,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-488,-0.19,-4,-0.01,-48,-0.02,-4,-0.01,-484,-0.18,0,0.0,-480,-0.18,-4,-0.01,-20,-0.01,-4,-0.01,-20,-0.01,-4,-0.01,-24,-0.01,-4,-0.01,-488,-0.19,-4,-0.01
esp8266:esp8266:huzzah,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
rp2040:rp2040:rpipico,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,0,0.0,-4,-0.0,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,-24,-0.0,12,0.0,-24,-0.0,-4,-0.0,0,0.0,-4,-0.0,-32,-0.0,-4,-0.0,-32,-0.0,-4,-0.0,-24,-0.0,-4,-0.0,0,0.0,-4,-0.0,-16,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-24,-0.0,-4,-0.0,-8,-0.0,0,0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-24,-0.0,-4,-0.0

Repository owner deleted a comment from github-actions bot Jan 5, 2024
Repository owner deleted a comment from github-actions bot Jan 5, 2024
Repository owner deleted a comment from github-actions bot Jan 5, 2024
@tfry-git tfry-git changed the title DRAFT: Single compilation unit Single compilation unit / In-line configuration Jan 5, 2024
@github-actions
Copy link

github-actions bot commented Jan 5, 2024

Memory usage change @ 9d64122

Board flash % RAM for global variables %
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 ❔ -40 - +48 -0.06 - +0.07 🔺 0 - +12 0.0 - +0.06
arduino:avr:uno ❔ -110 - +90 -0.34 - +0.28 ❔ -1 - +1 -0.05 - +0.05
arduino:mbed_giga:giga 💚 -72 - 0 -0.0 - 0.0 💚 -16 - 0 -0.0 - 0.0
arduino:samd:adafruit_circuitplayground_m0 💚 -508 - -12 -0.19 - -0.0 💚 -4 - 0 -0.01 - 0.0
esp8266:esp8266:huzzah N/A N/A N/A N/A
rp2040:rp2040:rpipico 💚 -32 - 0 -0.0 - 0.0 ❔ -4 - +12 -0.0 - 0.0
Click for full report table
Board examples/01.Basics/Control_Gain
flash
% examples/01.Basics/Control_Gain
RAM for global variables
% examples/01.Basics/Sinewave
flash
% examples/01.Basics/Sinewave
RAM for global variables
% examples/01.Basics/Sinewave_HIFI
flash
% examples/01.Basics/Sinewave_HIFI
RAM for global variables
% examples/01.Basics/Skeleton
flash
% examples/01.Basics/Skeleton
RAM for global variables
% examples/01.Basics/Skeleton_Multi
flash
% examples/01.Basics/Skeleton_Multi
RAM for global variables
% examples/01.Basics/Table_Resolution
flash
% examples/01.Basics/Table_Resolution
RAM for global variables
% examples/01.Basics/Vibrato
flash
% examples/01.Basics/Vibrato
RAM for global variables
% examples/02.Control/Control_Echo_Theremin
flash
% examples/02.Control/Control_Echo_Theremin
RAM for global variables
% examples/02.Control/Control_Oscil_Wash
flash
% examples/02.Control/Control_Oscil_Wash
RAM for global variables
% examples/02.Control/Control_Tremelo
flash
% examples/02.Control/Control_Tremelo
RAM for global variables
% examples/02.Control/EventDelay
flash
% examples/02.Control/EventDelay
RAM for global variables
% examples/02.Control/Line_Gliss
flash
% examples/02.Control/Line_Gliss
RAM for global variables
% examples/02.Control/Line_Gliss_Double_32k_HIFI
flash
% examples/02.Control/Line_Gliss_Double_32k_HIFI
RAM for global variables
% examples/02.Control/Metronome_SampleHuffman
flash
% examples/02.Control/Metronome_SampleHuffman
RAM for global variables
% examples/02.Control/Stop_Start
flash
% examples/02.Control/Stop_Start
RAM for global variables
% examples/06.Synthesis/AMsynth
flash
% examples/06.Synthesis/AMsynth
RAM for global variables
% examples/06.Synthesis/AMsynth_HIFI
flash
% examples/06.Synthesis/AMsynth_HIFI
RAM for global variables
% examples/06.Synthesis/Brown_Noise_Realtime
flash
% examples/06.Synthesis/Brown_Noise_Realtime
RAM for global variables
% examples/06.Synthesis/Detuned_Beats_Wash
flash
% examples/06.Synthesis/Detuned_Beats_Wash
RAM for global variables
% examples/06.Synthesis/Difference_Tone
flash
% examples/06.Synthesis/Difference_Tone
RAM for global variables
% examples/06.Synthesis/FMsynth
flash
% examples/06.Synthesis/FMsynth
RAM for global variables
% examples/06.Synthesis/FMsynth_32k_HIFI
flash
% examples/06.Synthesis/FMsynth_32k_HIFI
RAM for global variables
% examples/06.Synthesis/NonAlias_MetaOscil
flash
% examples/06.Synthesis/NonAlias_MetaOscil
RAM for global variables
% examples/06.Synthesis/PDresonant
flash
% examples/06.Synthesis/PDresonant
RAM for global variables
% examples/06.Synthesis/PWM_Phasing
flash
% examples/06.Synthesis/PWM_Phasing
RAM for global variables
% examples/06.Synthesis/WaveFolder
flash
% examples/06.Synthesis/WaveFolder
RAM for global variables
% examples/06.Synthesis/WavePacket_Double
flash
% examples/06.Synthesis/WavePacket_Double
RAM for global variables
% examples/06.Synthesis/WavePacket_Sample
flash
% examples/06.Synthesis/WavePacket_Sample
RAM for global variables
% examples/06.Synthesis/WavePacket_Single
flash
% examples/06.Synthesis/WavePacket_Single
RAM for global variables
% examples/06.Synthesis/Waveshaper
flash
% examples/06.Synthesis/Waveshaper
RAM for global variables
%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 -4 -0.01 0 0.0 -16 -0.02 0 0.0 48 0.07 8 0.04 -16 -0.02 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -8 -0.01 0 0.0 -4 -0.01 0 0.0 -8 -0.01 0 0.0 -16 -0.02 0 0.0 -12 -0.02 0 0.0 -8 -0.01 0 0.0 40 0.06 8 0.04 -28 -0.04 0 0.0 8 0.01 0 0.0 -24 -0.04 4 0.02 40 0.06 12 0.06 -32 -0.05 0 0.0 -4 -0.01 0 0.0 -20 -0.03 0 0.0 -16 -0.02 0 0.0 48 0.07 8 0.04 -16 -0.02 0 0.0 -40 -0.06 0 0.0 -16 -0.02 0 0.0 -8 -0.01 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -12 -0.02 0 0.0 -28 -0.04 4 0.02
arduino:avr:uno -98 -0.3 0 0.0 -98 -0.3 0 0.0 50 0.16 -1 -0.05 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -38 -0.12 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 58 0.18 1 0.05 -98 -0.3 0 0.0 -110 -0.34 0 0.0 -98 -0.3 0 0.0 90 0.28 -1 -0.05 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -40 -0.12 0 0.0 80 0.25 -1 -0.05 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0 -98 -0.3 0 0.0
arduino:mbed_giga:giga -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 0 0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -16 -0.0 -72 -0.0 -16 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 0 0.0 0 0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -8 -0.0 -72 -0.0 -8 -0.0
arduino:samd:adafruit_circuitplayground_m0 -476 -0.18 -4 -0.01 -492 -0.19 -4 -0.01 -492 -0.19 -4 -0.01 -492 -0.19 0 0.0 -484 -0.18 0 0.0 -484 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -492 -0.19 -4 -0.01 -476 -0.18 -4 -0.01 -476 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -12 -0.0 -4 -0.01 -36 -0.01 -4 -0.01 -504 -0.19 -4 -0.01 -472 -0.18 -4 -0.01 -504 -0.19 -4 -0.01 -504 -0.19 -4 -0.01 -508 -0.19 -4 -0.01 -476 -0.18 -4 -0.01 -488 -0.19 -4 -0.01 -484 -0.18 -4 -0.01 -484 -0.18 -4 -0.01 -488 -0.19 -4 -0.01 -48 -0.02 -4 -0.01 -484 -0.18 0 0.0 -480 -0.18 -4 -0.01 -20 -0.01 -4 -0.01 -20 -0.01 -4 -0.01 -24 -0.01 -4 -0.01 -488 -0.19 -4 -0.01
esp8266:esp8266:huzzah N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
rp2040:rp2040:rpipico 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 0 0.0 -4 -0.0 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 -24 -0.0 12 0.0 -24 -0.0 -4 -0.0 0 0.0 -4 -0.0 -32 -0.0 -4 -0.0 -32 -0.0 -4 -0.0 -24 -0.0 -4 -0.0 0 0.0 -4 -0.0 -16 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -24 -0.0 -4 -0.0 -8 -0.0 0 0.0 -8 -0.0 -4 -0.0 0 0.0 -4 -0.0 -8 -0.0 -4 -0.0 -8 -0.0 -4 -0.0 -24 -0.0 -4 -0.0
Click for full report CSV
Board,examples/01.Basics/Control_Gain<br>flash,%,examples/01.Basics/Control_Gain<br>RAM for global variables,%,examples/01.Basics/Sinewave<br>flash,%,examples/01.Basics/Sinewave<br>RAM for global variables,%,examples/01.Basics/Sinewave_HIFI<br>flash,%,examples/01.Basics/Sinewave_HIFI<br>RAM for global variables,%,examples/01.Basics/Skeleton<br>flash,%,examples/01.Basics/Skeleton<br>RAM for global variables,%,examples/01.Basics/Skeleton_Multi<br>flash,%,examples/01.Basics/Skeleton_Multi<br>RAM for global variables,%,examples/01.Basics/Table_Resolution<br>flash,%,examples/01.Basics/Table_Resolution<br>RAM for global variables,%,examples/01.Basics/Vibrato<br>flash,%,examples/01.Basics/Vibrato<br>RAM for global variables,%,examples/02.Control/Control_Echo_Theremin<br>flash,%,examples/02.Control/Control_Echo_Theremin<br>RAM for global variables,%,examples/02.Control/Control_Oscil_Wash<br>flash,%,examples/02.Control/Control_Oscil_Wash<br>RAM for global variables,%,examples/02.Control/Control_Tremelo<br>flash,%,examples/02.Control/Control_Tremelo<br>RAM for global variables,%,examples/02.Control/EventDelay<br>flash,%,examples/02.Control/EventDelay<br>RAM for global variables,%,examples/02.Control/Line_Gliss<br>flash,%,examples/02.Control/Line_Gliss<br>RAM for global variables,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>flash,%,examples/02.Control/Line_Gliss_Double_32k_HIFI<br>RAM for global variables,%,examples/02.Control/Metronome_SampleHuffman<br>flash,%,examples/02.Control/Metronome_SampleHuffman<br>RAM for global variables,%,examples/02.Control/Stop_Start<br>flash,%,examples/02.Control/Stop_Start<br>RAM for global variables,%,examples/06.Synthesis/AMsynth<br>flash,%,examples/06.Synthesis/AMsynth<br>RAM for global variables,%,examples/06.Synthesis/AMsynth_HIFI<br>flash,%,examples/06.Synthesis/AMsynth_HIFI<br>RAM for global variables,%,examples/06.Synthesis/Brown_Noise_Realtime<br>flash,%,examples/06.Synthesis/Brown_Noise_Realtime<br>RAM for global variables,%,examples/06.Synthesis/Detuned_Beats_Wash<br>flash,%,examples/06.Synthesis/Detuned_Beats_Wash<br>RAM for global variables,%,examples/06.Synthesis/Difference_Tone<br>flash,%,examples/06.Synthesis/Difference_Tone<br>RAM for global variables,%,examples/06.Synthesis/FMsynth<br>flash,%,examples/06.Synthesis/FMsynth<br>RAM for global variables,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>flash,%,examples/06.Synthesis/FMsynth_32k_HIFI<br>RAM for global variables,%,examples/06.Synthesis/NonAlias_MetaOscil<br>flash,%,examples/06.Synthesis/NonAlias_MetaOscil<br>RAM for global variables,%,examples/06.Synthesis/PDresonant<br>flash,%,examples/06.Synthesis/PDresonant<br>RAM for global variables,%,examples/06.Synthesis/PWM_Phasing<br>flash,%,examples/06.Synthesis/PWM_Phasing<br>RAM for global variables,%,examples/06.Synthesis/WaveFolder<br>flash,%,examples/06.Synthesis/WaveFolder<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Double<br>flash,%,examples/06.Synthesis/WavePacket_Double<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Sample<br>flash,%,examples/06.Synthesis/WavePacket_Sample<br>RAM for global variables,%,examples/06.Synthesis/WavePacket_Single<br>flash,%,examples/06.Synthesis/WavePacket_Single<br>RAM for global variables,%,examples/06.Synthesis/Waveshaper<br>flash,%,examples/06.Synthesis/Waveshaper<br>RAM for global variables,%
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8,-4,-0.01,0,0.0,-16,-0.02,0,0.0,48,0.07,8,0.04,-16,-0.02,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-8,-0.01,0,0.0,-4,-0.01,0,0.0,-8,-0.01,0,0.0,-16,-0.02,0,0.0,-12,-0.02,0,0.0,-8,-0.01,0,0.0,40,0.06,8,0.04,-28,-0.04,0,0.0,8,0.01,0,0.0,-24,-0.04,4,0.02,40,0.06,12,0.06,-32,-0.05,0,0.0,-4,-0.01,0,0.0,-20,-0.03,0,0.0,-16,-0.02,0,0.0,48,0.07,8,0.04,-16,-0.02,0,0.0,-40,-0.06,0,0.0,-16,-0.02,0,0.0,-8,-0.01,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-12,-0.02,0,0.0,-28,-0.04,4,0.02
arduino:avr:uno,-98,-0.3,0,0.0,-98,-0.3,0,0.0,50,0.16,-1,-0.05,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-38,-0.12,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,58,0.18,1,0.05,-98,-0.3,0,0.0,-110,-0.34,0,0.0,-98,-0.3,0,0.0,90,0.28,-1,-0.05,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-40,-0.12,0,0.0,80,0.25,-1,-0.05,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0,-98,-0.3,0,0.0
arduino:mbed_giga:giga,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,0,0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-16,-0.0,-72,-0.0,-16,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,0,0.0,0,0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-8,-0.0,-72,-0.0,-8,-0.0
arduino:samd:adafruit_circuitplayground_m0,-476,-0.18,-4,-0.01,-492,-0.19,-4,-0.01,-492,-0.19,-4,-0.01,-492,-0.19,0,0.0,-484,-0.18,0,0.0,-484,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-492,-0.19,-4,-0.01,-476,-0.18,-4,-0.01,-476,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-12,-0.0,-4,-0.01,-36,-0.01,-4,-0.01,-504,-0.19,-4,-0.01,-472,-0.18,-4,-0.01,-504,-0.19,-4,-0.01,-504,-0.19,-4,-0.01,-508,-0.19,-4,-0.01,-476,-0.18,-4,-0.01,-488,-0.19,-4,-0.01,-484,-0.18,-4,-0.01,-484,-0.18,-4,-0.01,-488,-0.19,-4,-0.01,-48,-0.02,-4,-0.01,-484,-0.18,0,0.0,-480,-0.18,-4,-0.01,-20,-0.01,-4,-0.01,-20,-0.01,-4,-0.01,-24,-0.01,-4,-0.01,-488,-0.19,-4,-0.01
esp8266:esp8266:huzzah,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A
rp2040:rp2040:rpipico,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,0,0.0,-4,-0.0,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,-24,-0.0,12,0.0,-24,-0.0,-4,-0.0,0,0.0,-4,-0.0,-32,-0.0,-4,-0.0,-32,-0.0,-4,-0.0,-24,-0.0,-4,-0.0,0,0.0,-4,-0.0,-16,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-24,-0.0,-4,-0.0,-8,-0.0,0,0.0,-8,-0.0,-4,-0.0,0,0.0,-4,-0.0,-8,-0.0,-4,-0.0,-8,-0.0,-4,-0.0,-24,-0.0,-4,-0.0

@tfry-git tfry-git linked an issue Jan 5, 2024 that may be closed by this pull request
@tfry-git tfry-git marked this pull request as ready for review January 5, 2024 23:32
@tfry-git
Copy link
Collaborator Author

tfry-git commented Jan 6, 2024

I promised to explain a bit, what I have done (not in any particular order).

  1. Moved MozziGuts_impl_XYZ headers (and some others) into the "internal" dir.
  2. Moved a few hardware-specific bits out of mozzi_analog.h (into MozziGuts_impl_AVR.hpp).
  3. Moved the random seeding code out of mozzi_rand.cpp and into MozziGuts_impl_XYZ.hpp. This required some acrobatics to comply with the one definition rule, too, which is why part of the implementation now ended up in a (private) class MozziRandomPrivate. In this case, fortunately, no mysterious compiler errors, because no section attributes need to be specified.
  4. Removed (AVR-only) TimerZero code which had been unused for years. Interestingly, this was actually still clogging up flash space due to the ISR definition contained in the lib (compiler cannot know that it wasn't used, somewhere).
  5. Modified MozziGuts.h so it includes MozziGuts.hpp (formerly MozziGuts.cpp) into the same translation unit. That's actually the central (and only strictly required) step (as the other .cpp files do not make direct use of configuration defines). Now this means that a whole lot of internal are actually in the same translation unit as the user sketch. To avoid catastrophic clashes, here, I introduced a namespace MozziPrivate, and put almost everything into that. This latter was actually the most tricky part, because certain things need to stay at the global scope, and others not. I made a few mistakes there, at first, but hope to have ironed those out. The Teensys still need (compilation) testing, however.
  6. Introduced two "wrapper" includes: Mozzi.h and MozziHeadersOnly.h. Mozzi.h will have to be present exactly once in each project from now on, while MozziHeadersOnly.h is for cases, where Mozzi core declarations are needed in more than one translation unit. (Continuing to include MozziGuts.h is still ok, as only one translation unit is involved, but triggers a message, that you should probably update some stuff).
  7. Adjusted the examples, accordingly. Not sure, whether I've caught everything. Keep in mind that our automatic compilation covers only a fraction of the examples, so far. Importantly however, stereo and hifi examples are now actually using an appropriate config (specified inline). So do the external output examples, but those are not yet part of the workflow runs. Platforms that don't support stereo/hifi have a hack to ignore that setting, if - and only if - compiling inside the github workflow.
  8. Fought hard with Doxygen to not just throw away the documentation for all the defines, and ignore half of the documentation groups. (Actual update of generated API-documentation is not contained in this PR).

TLDR:

  • Could you test the Teensies once more? And perhaps an external output sketch or two?
  • Comments on the MozziPrivate namespace hack?
  • D'accord on switching to Mozzi.h as the new main include file?

@tomcombriat
Copy link
Collaborator

Without looking at the diffs yet (I tried to kept up to date, but that went a bit fast in the end…), some preliminary answers:

D'accord on switching to Mozzi.h as the new main include file?

Completely, this actually makes more sense to me, name-wise.

Comments on the MozziPrivate namespace hack?

Seems like a clean solution to me, isn't that what namespaces are for basically?

Could you test the Teensies once more? And perhaps an external output sketch or two?

Will try to do soon, alongside a more in-depth review!

#undef MOZZI__LEGACY_AUDIO_INPUT_IMPL

// "export" publicly accessible functions defined in this file
// NOTE: unfortunately, we cannot just write using MozziPrivate::mozziMicros(), and that will conflict with, rather than define mozziMicros()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might be a bit slow, but for the sake of learning could you explain me why MozziPrivate::startMozzi() would not work for instance?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a vain attempt at keeping the source somewhat readable, I trying not to "enter" and "leave" the MozziPrivate-namespace too often. I.e. the basic idea was to write

namespace MozziPrivate {
  void privateFunction1() {}
  void privateFunction2() {}
  void publicFunction1() {}
  void privateFunction3() {}
}
void publicFuction1() { MozziPrivate::publicFunction1(); }

rather than:

namespace MozziPrivate {
  void privateFunction1() {}
}

namespace MozziPrivate {
  void privateFunction2() {}
}

void publicFunction1() {}

namespace MozziPrivate {
  void privateFunction3() {}
}

Maybe the second variant is preferable after all? I'm not sure at all (too bad we cannot just write void MozziPrivate::privateFunction1() { [definition] }).

Copy link
Collaborator Author

@tfry-git tfry-git Jan 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or perhaps it would help to simply ignore conventional code-formatting rules?

namespace MozziPrivate { void privateFunction1() {
  [definition]
}}```

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But in that case, users would need to use the Mozzi namespace right? Or would the "export" part would still be there?

A global namespace (mozzi::) would be neat for all functions in my opinion but:

  • it might be intimidating to some users
  • this would break existing sketches badly (we are already there, but not that badly).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two somewhat separate but related topics, here:

As for the different variants of defining the MozziPrivate-namespace: The latter two variants would not need the "export" trick, because the "public" functions would not be placed inside MozziPrivate, in the first place. In contrast, the first variant (== current state of the PR) puts everything into MozziPrivate, and then "exports" the public ones.

I have indeed also been thinking a bit about adding a mozzi-namespace. Note that we could make it such that a default setup and/or examples could simply include a using namespace mozzi; line, which could again be turned off by some config switch, if desired. I have already added a MOZZI_COMPATIBILITY_LEVEL config define (mostly unused for now), which could also help with such a transition (while the compatibility level is set to < 2.0, the using line would be included by default, to keep old sketches working, but for >= 2.0, the default could be reversed).

In other words, the impact on users could be kept quite minimal, but without a doubt, we'd need to add a whole bunch of "namespace" statements, everywhere.

Copy link
Collaborator

@tomcombriat tomcombriat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, I scanned through and left some minor comments here and there, principally to get a good grasp of what is going on.
Will try to do some testing soon!

@tomcombriat
Copy link
Collaborator

tomcombriat commented Jan 7, 2024

Testing

I will update here what tests I do and there results as I go.

Board Condition Compiles Works Comment
AVR EXTERNAL PT8211 yes yes straight from the example
RP2040 EXTERNAL PT8211 yes yes SPI.begin() & SPI.beginTransaction() should be placed after `startMozzi() for some pin config (???)
RP2040 I2S PT8211 yes yes
Teensy 3.2 SPI PT8211 yes yes
Teensy 3.2 standard (DAC mono) yes yes Tested mozziAnalogRead() while at it
Teensy 4.0 standard (PWM mono) yes yes Tested mozziAnalogRead() while at it
Teensy 4.0 SPI PT8211 yes yes

Quick thought, before I forget. I know I was the author of the config_example_rp2040_i2s_pt8211.h, but after thinking about it, I wonder if I should not have put all the possible configurable in there (including DMA for instance, with a warning) so that this file could act as a documentation, if these settings are worth being editable (they are not right now).

Not sure anyone would need to change them, but while this is still fresh maybe worth deciding how much is hidden and not editable and how much should be protected but still editable? That does not concern only the RP2040, but probably other platforms where fine hardware tuning were needed.

To be honest, I think this is probably easier for users as it is right now, and probably easy to change afterward anyway…

Repository owner deleted a comment from github-actions bot Jan 14, 2024
@tfry-git
Copy link
Collaborator Author

Ok, in order to keep everything from diverging too far, I think I'll merge this (into devel/Mozzi2), later tonight. As far as I understand, the FixMath2 branch is currently stalled waiting on this, because you are still going to touch the examples, right? I'll try to get that in sync, too.

We can still address the question of how to best set up the MozziPrivate-namespace, later. (Even after Mozzi 2.0, as it won't be user visible).

Regarding your question about additional options in config_example_rp2040_i2s_pt8211.h, I concur, we should not make too much detail too visible. As a rule of thumb, I'd say, anything that isn't immediately expected to make a useful difference "outside the box" should be considered an implementation detail and remain hidden. (E.g. the number of separate buffers).

@tomcombriat
Copy link
Collaborator

Hi,

As far as I understand, the FixMath2 branch is currently stalled waiting on this

Well, not really… It is stalled because I do not manage to put enough time on it these days… But it starts to come to an end, Line class adaptation, optimizations and examples change remain and that's it…

We can still address the question of how to best set up the MozziPrivate-namespace, later. (Even after Mozzi 2.0, as it won't be user visible).

I agree. I did not have to work on that file yet (but that might come with the next port I have in mind for the ATTiny), so I honestly do not have a super clear idea of what is best…

@tfry-git tfry-git merged commit 353f91a into devel/Mozzi2 Jan 21, 2024
@tfry-git tfry-git deleted the devel/single_compilation_unit branch July 2, 2024 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RFC: Mozzi 2.0 part 1: Single compilation unit

3 participants