framerudiments 0.4.3__tar.gz → 0.4.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {framerudiments-0.4.3/src/framerudiments.egg-info → framerudiments-0.4.4}/PKG-INFO +2 -2
- {framerudiments-0.4.3 → framerudiments-0.4.4}/README.md +1 -1
- {framerudiments-0.4.3 → framerudiments-0.4.4}/RELEASE_NOTES.md +5 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/spectrum.md +3 -1
- {framerudiments-0.4.3 → framerudiments-0.4.4}/pyproject.toml +1 -1
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/__init__.py +1 -1
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/rudiment_renderers.py +6 -1
- {framerudiments-0.4.3 → framerudiments-0.4.4/src/framerudiments.egg-info}/PKG-INFO +2 -2
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_spectrum.py +12 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/AGENTS.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/LICENSE +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/MANIFEST.in +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/analysis-releases.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/ECOSYSTEM.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/FrameRudiments-PATCH_WORKFLOW.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/annular-modulation.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/authoring-workspace.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/beat-alignment.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/controlled-audio-response.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/expanded-effects.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/extraction.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/full-preset-analysis.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/hybrid-preset-analysis.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/keyframed-mattes.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/beat-alignment-evidence.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/beat-alignment.mp4 +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/beat-alignment.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/demo-transcript.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/effects-pipeline.svg +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/full-frame-comparison.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/full-frame-demo.mp4 +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/media-evidence.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/natural-materials.mp4 +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/natural-materials.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/preset-test-cards.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/rangoli-transcript.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/rangoli.mp4 +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/rangoli.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/test-card-inputs/colour-bars.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/test-card-inputs/grid-rings.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/media/test-card-inputs/text-card.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/multi-stem-modulation.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/music-reactive-3d.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/natural-materials.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/particle-smoke.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/phase3-compositing.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/preset-behaviour.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/preset-profiling.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/project-format.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/projectm-local-runtime.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/quality-effects.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/rangoli.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/rich-lyric-effects.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/rudiment-renderers.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/scoped-post-effects.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/solid-spatial-renderers.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/spatial-renderers.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/spatiotemporal-supersampling.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/sprite-visualisations.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/stem-sources-and-masks.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/variable-bpm-word-subtitles.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/visualisation-atlas.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/visualisation-coverage-matrix.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/visualiser-routing.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/visualisers.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/docs/workflow-media.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/integration/test_fire_volume_gpu.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/integration/test_music_spatial_gpu.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/integration/test_preset_analysis.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/integration/test_released_preset_analysis.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/integration/test_visualisers_gpu.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/Run-ControlledPresetAnalysis.ps1 +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/Run-FullPresetAnalysis.ps1 +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/Run-HybridPresetAnalysis.ps1 +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/Run-PresetBehaviourAnalysis.ps1 +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/authoring_preview.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/bake_mantaflow_fire.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/build_sprite_assets.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/check_projectm_runtime.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/check_release_packages.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/controlled_preset_analysis.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/ensure_projectm_runtime.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/full_preset_analysis.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_particle_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_post_effect_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_quality_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_rich_lyric_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_sprite_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_supersampling_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_timing_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_visualisation_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_visualiser_routing_gallery.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/install_analysis_releases.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/prepare_fire_atlas.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/prepare_pixelcue_taggers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/preset_behaviour_pipeline.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/profile_visualisation_coverage.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/profile_visualisers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/projectm_dll_diagnostics.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/render_natural_material_demo.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/repair_projectm_mingw.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/select_projectm_generator.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/validate_patch.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/setup.cfg +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/__main__.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/advanced_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/atlas.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/audio_probes.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/beat_alignment.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/beat_timeline.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/choreography.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/circular_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/cli.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/compositor.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/controlled_profiling.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/demo.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/effect_catalogue.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/effect_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/effects.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/encoding.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/mantaflow/NOTICE.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/mantaflow/atlas.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/mantaflow/flames.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/marburg/NOTICE.md +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/marburg/atlas.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/marburg/flames.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_fluid.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_renderer.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_volume.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/flight.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/gpu_spatial_backend.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/io.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/keyframes.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/layer_animation.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/layer_displacement.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/layer_masks.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/lyric_indicator.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/modulation.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/motion.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/music_spatial_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/natural_materials.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/output_quality.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/particle_engine.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/post_effects.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/preset_library.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/preset_profiling.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/profile_analysis.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/project.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/projectm_backend.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/quality_effects.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/rangoli_renderer.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/render.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/rich_subtitles.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/scoped_effects.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/solid_spatial_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/spatial_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/spectrum.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/arcade.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/crystal.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/fire.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/generated-neon.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/glass.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/hud.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/ice.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/lcd-amber.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/lcd-green.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/lcd.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/led.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/manifest.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/metal.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/mono.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/neon.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/pixel.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/plasma.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/vfd.png +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_catalogue.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/stem_blend.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/stemlab.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/subtitles.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/super_sampling.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/terrain_field.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/timeline.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visual_style.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualisation_catalogue.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/butterchurn-page.js +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/butterchurn-worker.mjs +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/feedback.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/feedback.milk +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/julia.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/julia.milk +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/kaleidoscope.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/kaleidoscope.milk +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/package-lock.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/package.json +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_assets/rangoli-background.milk +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_routing.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualiser_setup.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/visualisers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/word_timing.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments.egg-info/SOURCES.txt +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments.egg-info/dependency_links.txt +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments.egg-info/entry_points.txt +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments.egg-info/requires.txt +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments.egg-info/top_level.txt +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/conftest.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_adapters.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_advanced_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_authoring_preview.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_beat_alignment.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_behaviour_pipeline.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_checkpoint_batches.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_controlled_audio.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_coverage_matrix.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_default_antialias.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_effect_batch.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_extracted_helpers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_fire_methods.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_flight.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_full_preset_analysis.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_gpu_ci_isolation.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_hybrid_launcher.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_keyframes.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_layer_masks.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_lyrics.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_music_spatial_pipeline.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_music_spatial_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_natural_materials.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_particle_engine.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_patch_validation.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_phase3_animation.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_phase3_gpu_injection.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_pipeline.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_preset_profiling.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_projectm_dll_diagnostics.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_projectm_generator.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_projectm_runtime_preflight.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_pytest_temp_isolation.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_quality_effects.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_rangoli_renderer.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_release_metadata.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_repair_projectm_mingw.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_rich_subtitles.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_rudiment_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_scoped_effects.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_solid_spatial_integration.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_solid_spatial_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_spatial_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_sprite_renderers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_stem_blend.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_stem_source_integration.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_supersampling.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_timeline.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_variable_bpm_words.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_visualisation_modulation.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_visualiser_routing.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_visualisers.py +0 -0
- {framerudiments-0.4.3 → framerudiments-0.4.4}/tests/test_windows_launcher_splitpath.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: framerudiments
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: Deterministic Shorts and lyric visualisers using DanceRudiments and StemLab evidence.
|
|
5
5
|
Author: Kieran Simkin
|
|
6
6
|
License-Expression: MIT
|
|
@@ -152,7 +152,7 @@ its own tone, sprite, LRC, CUE and four-dimensional recording.
|
|
|
152
152
|
stills, a poster, phone preview, input/output hashes, commands and logs.
|
|
153
153
|
|
|
154
154
|
The [spectrum guide](docs/spectrum.md) covers saved StemLab Fourier calibration,
|
|
155
|
-
frequency labels, peak controls and per-frame JSONL effect signals. Run
|
|
155
|
+
frequency labels, independent fixed-grid visibility, peak controls and per-frame JSONL effect signals. Run
|
|
156
156
|
`framerudiments renderers` for the current built-in names. The optional
|
|
157
157
|
`demo --spectrum` generator uses StemLab 1.6+; rendering its saved recording
|
|
158
158
|
keeps the core package lightweight.
|
|
@@ -121,7 +121,7 @@ its own tone, sprite, LRC, CUE and four-dimensional recording.
|
|
|
121
121
|
stills, a poster, phone preview, input/output hashes, commands and logs.
|
|
122
122
|
|
|
123
123
|
The [spectrum guide](docs/spectrum.md) covers saved StemLab Fourier calibration,
|
|
124
|
-
frequency labels, peak controls and per-frame JSONL effect signals. Run
|
|
124
|
+
frequency labels, independent fixed-grid visibility, peak controls and per-frame JSONL effect signals. Run
|
|
125
125
|
`framerudiments renderers` for the current built-in names. The optional
|
|
126
126
|
`demo --spectrum` generator uses StemLab 1.6+; rendering its saved recording
|
|
127
127
|
keeps the core package lightweight.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# FrameRudiments 0.4.4
|
|
2
|
+
|
|
3
|
+
- Spectrum views accept a validated `style.grid` boolean. Set it to `false` to remove the three fixed dB guide lines while retaining calibrated bars and moving peak holds; label visibility remains independent.
|
|
4
|
+
- The existing default remains `true` for backward compatibility. Documentation and focused regression coverage include the no-grid, no-label presentation used by clean campaign visualisers.
|
|
5
|
+
|
|
1
6
|
# FrameRudiments 0.4.3
|
|
2
7
|
|
|
3
8
|
- Atlas fire accepts an evidence-recorded three-stop CSS palette ordered as
|
|
@@ -26,7 +26,8 @@ the ordinary FrameRudiments dependencies.
|
|
|
26
26
|
"min_peak_db": -60,
|
|
27
27
|
"min_peak_contrast_db": 3,
|
|
28
28
|
"min_peak_distance": 2,
|
|
29
|
-
"labels": true
|
|
29
|
+
"labels": true,
|
|
30
|
+
"grid": true
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
```
|
|
@@ -112,6 +113,7 @@ In addition to the common `colours`, `padding` and `background`, spectrum accept
|
|
|
112
113
|
| `gap` | 1 pixel, nonnegative |
|
|
113
114
|
| `peak_colour`, `label_colour` | CSS colours |
|
|
114
115
|
| `labels`, `font_size` | true; responsive default font size, explicit range 6..128 pixels |
|
|
116
|
+
| `grid` | true; set false to omit the three horizontal dB reference lines while retaining bars and peak holds |
|
|
115
117
|
|
|
116
118
|
Every render/preflight streams active spectrum reports into
|
|
117
119
|
`rudiment-analysis.jsonl`, binding the sidecar hash in the final manifest.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "framerudiments"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.4"
|
|
8
8
|
description = "Deterministic Shorts and lyric visualisers using DanceRudiments and StemLab evidence."
|
|
9
9
|
requires-python = ">=3.11"
|
|
10
10
|
readme = "README.md"
|
|
@@ -280,6 +280,7 @@ class SpectrumRenderer(_Viewport):
|
|
|
280
280
|
"label_colour",
|
|
281
281
|
"font_size",
|
|
282
282
|
"labels",
|
|
283
|
+
"grid",
|
|
283
284
|
},
|
|
284
285
|
)
|
|
285
286
|
self.floor = number(style.get("floor_db", -72), "spectrum floor", minimum=-240, maximum=0)
|
|
@@ -306,6 +307,9 @@ class SpectrumRenderer(_Viewport):
|
|
|
306
307
|
self.labels = style.get("labels", True)
|
|
307
308
|
if not isinstance(self.labels, bool):
|
|
308
309
|
raise ValueError("Spectrum labels must be boolean")
|
|
310
|
+
self.grid = style.get("grid", True)
|
|
311
|
+
if not isinstance(self.grid, bool):
|
|
312
|
+
raise ValueError("Spectrum grid must be boolean")
|
|
309
313
|
self.font_size = integer(
|
|
310
314
|
style.get("font_size", max(6, min(14, size[0] // 30))), "spectrum font", minimum=6, maximum=128
|
|
311
315
|
)
|
|
@@ -346,7 +350,8 @@ class SpectrumRenderer(_Viewport):
|
|
|
346
350
|
return bottom - max(0, min(1, (db - self.floor) / (self.ceiling - self.floor))) * (bottom - top)
|
|
347
351
|
|
|
348
352
|
for db in (self.floor, (self.floor + self.ceiling) / 2, self.ceiling):
|
|
349
|
-
|
|
353
|
+
if self.grid:
|
|
354
|
+
draw.line((left, y(db), right, y(db)), fill="#40516a")
|
|
350
355
|
if self.labels:
|
|
351
356
|
draw.text(
|
|
352
357
|
(self.padding, y(db) - self.font_size / 2),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: framerudiments
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: Deterministic Shorts and lyric visualisers using DanceRudiments and StemLab evidence.
|
|
5
5
|
Author: Kieran Simkin
|
|
6
6
|
License-Expression: MIT
|
|
@@ -152,7 +152,7 @@ its own tone, sprite, LRC, CUE and four-dimensional recording.
|
|
|
152
152
|
stills, a poster, phone preview, input/output hashes, commands and logs.
|
|
153
153
|
|
|
154
154
|
The [spectrum guide](docs/spectrum.md) covers saved StemLab Fourier calibration,
|
|
155
|
-
frequency labels, peak controls and per-frame JSONL effect signals. Run
|
|
155
|
+
frequency labels, independent fixed-grid visibility, peak controls and per-frame JSONL effect signals. Run
|
|
156
156
|
`framerudiments renderers` for the current built-in names. The optional
|
|
157
157
|
`demo --spectrum` generator uses StemLab 1.6+; rendering its saved recording
|
|
158
158
|
keeps the core package lightweight.
|
|
@@ -4,6 +4,7 @@ import os
|
|
|
4
4
|
|
|
5
5
|
from dancerudiments_authoring.recording import Recording, RecordingClock, write_recording
|
|
6
6
|
import pytest
|
|
7
|
+
from PIL import ImageColor
|
|
7
8
|
|
|
8
9
|
from framerudiments import Project, render
|
|
9
10
|
from framerudiments.compositor import Compositor
|
|
@@ -93,6 +94,17 @@ def test_peak_hold_decays_deterministically_without_hidden_state(spectrum_projec
|
|
|
93
94
|
assert comp.frame(30)[0].tobytes() == first
|
|
94
95
|
|
|
95
96
|
|
|
97
|
+
def test_spectrum_grid_can_be_omitted_without_removing_bars_or_peak_holds(spectrum_project):
|
|
98
|
+
project, _, _ = spectrum_project
|
|
99
|
+
project.data["layers"][0]["style"] = {"grid": False, "labels": False}
|
|
100
|
+
comp = Compositor(Project(project.data, project.base))
|
|
101
|
+
view = comp.layers[0]
|
|
102
|
+
assert view.renderer.grid is False
|
|
103
|
+
image = view.renderer.render(view.data(comp.context(0)))
|
|
104
|
+
assert ImageColor.getcolor("#40516a", "RGBA") not in set(image.get_flattened_data())
|
|
105
|
+
assert image.getbbox() is not None
|
|
106
|
+
|
|
107
|
+
|
|
96
108
|
def test_local_peak_plateaus_threshold_contrast_and_minimum_distance():
|
|
97
109
|
assert peak_indices(
|
|
98
110
|
[-60, -10, -10, -60, -20, -60], floor=-72, threshold=-50, contrast=3, distance=2, count=3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/scripts/generate_visualiser_routing_gallery.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/mantaflow/NOTICE.md
RENAMED
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/mantaflow/atlas.json
RENAMED
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/mantaflow/flames.png
RENAMED
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/marburg/NOTICE.md
RENAMED
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/marburg/atlas.json
RENAMED
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/fire_assets/marburg/flames.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/generated-neon.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/lcd-amber.png
RENAMED
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/lcd-green.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{framerudiments-0.4.3 → framerudiments-0.4.4}/src/framerudiments/sprite_assets/manifest.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|