Commit Graph

25 Commits

Author SHA1 Message Date
b1rdmania 044182790e Update social share image to warioX.png (landscape)
New image optimized for Twitter cards (1472x704).
Updated all OG/Twitter meta tags across index, play, and server.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 11:58:51 +00:00
b1rdmania 0e0deb1642 Update social preview text
Title: Wario Synth 16-Bit Midi
Description: Turn any song into a Game Boy version

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 15:31:04 +00:00
b1rdmania e485335a26 Remove @b1rdmania from OG share copy, strip mid/midi from song titles
- OG description no longer includes "by @b1rdmania" (only X share has it)
- Song titles now strip standalone "mid" and "midi" words

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 14:53:28 +00:00
b1rdmania eb3f61b63a Add Share to X button with proper tweet text
- Added "Share to X" button next to "Copy link"
- Tweet text: "I made [song] game boy version. Click to listen or generate your own, made in Wario Synth by @b1rdmania"
- Updated Twitter cards to summary_large_image
- Dynamic OG description includes song title

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 14:32:34 +00:00
b1rdmania 150e5aacb3 Use wariosynthlogo.png for all social sharing
- Updated og:image and twitter:image across all pages
- Updated server.ts for dynamic share links
- Image dimensions: 1180x912

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 14:25:28 +00:00
b1rdmania 7a4e773fff Use wario-synth.png for social share image
- Update og:image and twitter:image to use wario-synth.png
- Update image dimensions to 1472x704

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 13:50:52 +00:00
b1rdmania aa5eaa4453 Update share description copy 2025-12-29 13:28:39 +00:00
b1rdmania 3af9eec13f Show just song title in share preview 2025-12-29 13:26:03 +00:00
b1rdmania 1041be46f3 Add short links with song title in OG preview
- Re-enable /api/share for short links (/s/abc123)
- Title shows as "Song Name - WARIO SYNTH"
- Description: "I made this in WARIO SYNTH"
- Falls back to long URL if short link fails

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 13:25:27 +00:00
b1rdmania 853e274a9d Tighten share copy
- Title: "WARIO SYNTH" or "Song Name - WARIO SYNTH"
- Description: "Tap to play this Gameboy tune"
- Switch to summary card (smaller image)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 13:22:19 +00:00
b1rdmania 3728887ba5 Use Wario sprite for social share image
Update og:image and twitter:image to wario-sprite.png
for WhatsApp, Telegram, Twitter previews

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 13:18:48 +00:00
b1rdmania 6a49aa4ceb Revert to BitMidi only
Restore original BitMidiAdapter (was working for weeks).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:07:59 +00:00
b1rdmania 448ed48ebf Replace Dongrays with FreeMidi adapter
- BitMidi is blocked by Cloudflare on Vercel (403)
- Dongrays domain is dead (ENOTFOUND)
- Add FreeMidi adapter as primary search source
- FreeMidi returns real MIDI files without blocking

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 11:15:04 +00:00
b1rdmania 622199e27c Add debug logging to BitMidi search + better headers
- Log fetch URL, response status, and HTML size
- Use realistic Chrome User-Agent headers
- Helps diagnose Cloudflare blocking on Vercel

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 11:05:22 +00:00
b1rdmania 679afbfa65 Rebrand to WARIO SYNTH
- Update site title, h1, taglines across all pages
- OpenGraph/Twitter meta tags now use wario.png
- FAQ updated to "What is WARIO SYNTH?"
- All references to "Motif engine" → "Wario Synthesis Engine"
- Share links now branded as WARIO SYNTH

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:34:31 +00:00
b1rdmania d501f3565d Customize social previews for short share links.
Serve OG/Twitter meta tags from /s/:code and update /play meta copy so Telegram/X previews show a Gameboy-tune message and image.
2025-12-26 18:47:00 +00:00
b1rdmania a23e348d5e Use REDIS_URL for share shortlinks.
Stores /s/:code mappings in the connected Redis database and falls back to Vercel KV REST when available.
2025-12-26 15:36:00 +00:00
b1rdmania d9861f8bbf Fail loudly when Vercel KV is missing.
Prevents shortlinks from silently breaking due to ephemeral in-memory fallback in production.
2025-12-26 15:06:25 +00:00
b1rdmania 54136cf11c Add backend shortlinks for sharing.
Creates /api/share to mint /s/:code redirects, backed by Vercel KV with a local fallback.
2025-12-26 15:03:23 +00:00
b1rdmania 96477e9c4a Fix Vercel deploy: build dist and run Express as serverless. 2025-12-18 19:16:47 +00:00
b1rdmania 593bbd7032 Refine playback stability and scoring. 2025-12-18 15:14:37 +00:00
b1rdmania 2c9d06d8d7 Improve MIDI search and add browser playback engines. 2025-12-18 14:25:38 +00:00
b1rdmania 177e8fbed3 Implement complete search results + dual player UI
Backend Enhancements:
- Add ParsedMIDIInfo with track analysis and quality issues
- New /api/midi/parse endpoint for MIDI metadata extraction
- Enhanced MIDIService with parseMIDI method

MIDI Preview Player:
- Complete MIDIPlayer class with polyphonic playback
- Basic oscillator mapping (bass=square, mid=triangle, high=sine)
- Lookahead scheduling with proper cleanup
- Automatic stopping when MIDI ends

New UI Flow:
1. Search → Results table with metadata
2. Select MIDI → Shows parsed info (duration, tracks, tempo)
3. Dual transport: Preview Original vs Generate Motif
4. Try Next Result button for easy A/B testing

Search Results Table:
- Title, source, confidence bar, duration, track count
- Quality issues display (short duration, few notes, etc.)
- Auto-select best result, manual selection available
- Visual confidence bars and issue warnings

This makes the project feel "real" - you can now:
- See exactly what MIDI was found
- Verify it's the right song via preview
- Compare original vs procedural synthesis
- Easily try different results

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-17 21:04:29 +00:00
b1rdmania 2d4c748d4c Major role mapping and synthesis improvements
Role Mapping Rewrite:
- Replace naive hard thresholds with scored feature analysis
- Extract comprehensive track features (polyphony, repetition, phrase continuity)
- Add melody vs accompaniment separation logic
- Competitive role allocation with fallback handling
- Support for 6 roles: bass, drone, ostinato, texture, accents, melody

Chord Detection & Polyphony:
- Extract chord events from simultaneous notes (50ms window)
- Add ChordEvent type with multiple pitches
- SynthesisEngine supports both single notes and chords
- Drone/texture layers use chords, others remain monophonic

Feature Extraction:
- medianPitch, pitchRange, noteDensity analysis
- polyphonyRatio calculation via note overlap detection
- repetitionScore using 4-note pattern matching
- phraseContinuity detection via stepwise motion
- register classification (low/mid/high)

This should dramatically improve "sounds like the song" recognition
by using actual musical features instead of arbitrary cutoffs.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-17 21:00:33 +00:00
b1rdmania 11c894bd91 Add complete MIDI search and synthesis pipeline
Backend (MVP):
- Express API with /search and /fetch endpoints
- BitMidi and Dongrays search adapters with scoring heuristics
- CORS proxy with disk caching and validation
- Quality assessment and file size limits

Frontend Integration:
- Switch to @tonejs/midi parser for reliable MIDI parsing
- MIDIService for backend API communication
- MotifEngine updated to try real MIDI, fallback to synthetic
- Enhanced error handling and logging

Development:
- Concurrent frontend/backend npm scripts
- Basic project documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-17 20:45:40 +00:00