Skip to content

Modernization Update: Processing 4, Apple Signing, Cross-Platform Builds#14

Open
james-see wants to merge 26 commits into
codygibb:masterfrom
james-see:master
Open

Modernization Update: Processing 4, Apple Signing, Cross-Platform Builds#14
james-see wants to merge 26 commits into
codygibb:masterfrom
james-see:master

Conversation

@james-see

Copy link
Copy Markdown

Hey @codygibb! 👋

I've been a fan of Animus for years and recently took on modernizing it for 2025. Since the original hasn't been updated in 11 years, I wanted to share these changes back and see if you'd like to merge them—or if you'd prefer, I'm happy to maintain a fork going forward.

What's New

Processing 4 Compatibility

  • Updated to Processing 4.4+ with settings() / fullScreen(P3D) pattern
  • Fixed deprecated API calls (captionLabel()getCaptionLabel(), super.stop()dispose())
  • Updated library references for Minim 2.2.2 and ControlP5 2.2.6

macOS Code Signing & Notarization

  • Full Apple Developer signing with hardened runtime
  • Notarization for Gatekeeper approval (no security warnings!)
  • Automated release.sh script for one-command releases

Audio Device Selection

  • Dropdown to select audio input devices
  • Works with virtual audio drivers (Loopback, SoundSource, BlackHole)
  • Persistent config saves last device, volume, and visualizer

New Features

  • Sensitivity slider (1x-500x) for exaggerated visualizations
  • Configuration persistence via JSON
  • Improved UI colors and styling

Developer Experience

  • Cross-platform build.sh with auto-install of prerequisites
  • env.example for Apple signing credentials
  • GitHub Actions for automated releases
  • Updated README with screenshots and setup guides

Files Changed

  • Animus.pde - Main sketch (P4 compat, audio selection, config)
  • Visualizer.pde - Fixed runtime width calculation
  • sketch.properties - Processing 4 config
  • New: build.sh, build-macos.sh, release.sh, env.example
  • New: .github/workflows/release.yml
  • Updated: README.md with screenshots

Screenshots

The visualizer running on macOS with system audio from Spotify:

Vortex Mode
Droplet Mode

Offer

If you're still interested in maintaining Animus, I'd love to collaborate! If not, I'm happy to continue maintaining my fork at james-see/animus-visualizer as a hard fork with full attribution to your original work.

Either way, thanks for creating Animus—it's been a blast modernizing it! 🙏


Tested on:

  • macOS 14.x (Apple Silicon)
  • Processing 4.4.10
  • Java 17 (Temurin)

James Campbell added 26 commits December 18, 2025 01:31
…ation

- Migrate to Processing 4 with fullScreen(P3D) and settings()
- Add audio input device enumeration and selector dropdown
- Add config persistence (JSON) for audio device and settings
- Fix deprecated APIs (stop() -> dispose(), displayWidth -> width)
- Add macOS code signing and notarization script (build-macos.sh)
- Add cross-platform build script with auto-install (build.sh)
- Add env.example for build credentials
- Update README with complete documentation
- Use official Processing contribution manager URLs for Minim and ControlP5
- Add proper error handling and fallback messages
- Add env.example for build credentials template
- Make install process idempotent (skip already installed)
- Auto-creates release on tag push (v*)
- Generates release notes from commits
- Creates source zip archive
- Optional macOS build job (disabled by default)
Processing 4 lacks reliable CLI export. Source zip is sufficient.
- release.sh: Full release automation (build, sign, tag, upload)
- .githooks/pre-push: Builds app when pushing version tags
- Uses gh CLI for GitHub release uploads
- Automated export via processing-java --export
- No more manual Processing IDE export needed
- Uses --no-java flag (CLI embed bug workaround)
- Requires: processing-java CLI, Java 17+, gh CLI
- Copies sketch.icns to app bundle Resources
- Updates Info.plist to reference icon
- 4 visualization examples (vortex, droplet, terrain, particles)
- Interface screenshot in controls section
- Submit to Apple notary service after signing
- Staple notarization ticket to app
- Requires APPLE_ID, TEAM_ID, APP_PASSWORD in .env
- Separate 'macOS App' (just download) vs 'From Source' instructions
- Update GitHub Actions to skip if release already exists (created by local script)
- Add emoji for better visual hierarchy
- Dark-themed Astro site with mouse-follow particle effects
- Hero section with fav.png background and parallax
- Features section for 3 visualizers + effects
- Screenshot gallery with lightbox
- System audio setup guide
- Download CTA linking to releases
- Built to docs/ folder for GitHub Pages
- Smooth cursor trail with blur/fade instead of particles
- Hero image visible with parallax and slow zoom animation
- Floating orb background effects
- Button hover jiggle and shimmer animations
- Glowing text animations
- Card hover effects with scale
- Scanline overlay for retro feel
- Configure Astro to output external JS files instead of inline
- Fixes GitHub Pages CSP blocking inline script execution
- Adds Content-Security-Policy meta tag with unsafe-eval
- Allows external scripts, inline scripts, and eval
- Fixes GitHub Pages CSP blocking
@lucid-jake

lucid-jake commented Feb 26, 2026

Copy link
Copy Markdown

Ahhh please someone accept this! I was about to make some of these changes, but this is fantastic!
@codygibb

Comment thread Animus.pde
try {
if (selectedDeviceIndex == 0 || audioDeviceMixers.get(selectedDeviceIndex) == null) {
// Use system default
input = minim.getLineIn(Minim.STEREO, 512);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I had to make this Minim.MONO for it to work on my M1 2020 macbook pro running Sequoia 15.0.1

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.

2 participants