Commit Graph

162 Commits

Author SHA1 Message Date
b1rdmania 8160c87258 Add share link copy button and standardize volume.
Adds a Copy link action on the main page using /api/share shortlinks and sets default volumes to 70%.
2025-12-26 17:31:34 +00:00
b1rdmania 778f2a1aaa Match /play landing UX to main page.
Updates layout and styling to reuse main MOTIF hierarchy and components.
2025-12-26 17:15:49 +00:00
b1rdmania 2e50022066 Add social preview meta tags to /play.
Ensures shared shortlinks render the MOTIF image card on X.
2025-12-26 15:51:42 +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 f671aa3b57 Add /play share page and X share links.
Includes a UX test page and Vercel/Vite routing for share URLs.
2025-12-26 14:33:01 +00:00
b1rdmania 3993b26b9a Save home UX audit doc. 2025-12-20 14:08:53 +00:00
b1rdmania 90b3450aa9 Ps. I love Claude Code.
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:36:20 +00:00
b1rdmania d8724c9d03 Tuck wario screenshot into FAQ (no dedicated section)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:33:54 +00:00
b1rdmania cdd21647ca Add Wario easter egg to FAQ
We considered it.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:33:12 +00:00
b1rdmania 1b8c0ba0df Wario Synthesis Engine 🟡
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:28:11 +00:00
b1rdmania 213c801b29 Update card copy: Run the engine + waveform details
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:26:30 +00:00
b1rdmania 1deb11c60d Tweak synth section: Synthesis Engine / Gameboy emulator
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:21:50 +00:00
b1rdmania c26095834a Update synth section copy - tech/gamer vibe
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:21:27 +00:00
b1rdmania 5775a21387 Refresh FAQ copy - punchier, friendlier tone
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:18:12 +00:00
b1rdmania 5bff81954c Fix iOS audio unlock retry and add API fetch retry. 2025-12-20 13:14:08 +00:00
b1rdmania 16e354fc44 Use sample playback for SNES test model. 2025-12-20 13:02:23 +00:00
b1rdmania 6a94031508 Stabilize SNES model audio chain. 2025-12-20 12:58:44 +00:00
b1rdmania 25a34b3519 Add isolated /models lab page for synth comparisons. 2025-12-20 12:46:23 +00:00
b1rdmania b3426f5ccd Revert "Add test models page and synth presets."
This reverts commit b7a79e93c9.
2025-12-20 12:28:02 +00:00
b1rdmania a60225d1d4 Revert "Isolate /models synth variants and revert main."
This reverts commit 633197b81a.
2025-12-20 12:28:02 +00:00
b1rdmania c788cb1a0b Revert "Make /models engine selector explicit."
This reverts commit 7ee1db049f.
2025-12-20 12:28:02 +00:00
b1rdmania 7ee1db049f Make /models engine selector explicit. 2025-12-20 12:23:13 +00:00
b1rdmania 633197b81a Isolate /models synth variants and revert main. 2025-12-20 12:21:39 +00:00
b1rdmania b7a79e93c9 Add test models page and synth presets. 2025-12-20 12:09:20 +00:00
b1rdmania 98e95c1001 Add sharing plan document. 2025-12-20 11:59:57 +00:00
b1rdmania 6caf5d6f01 Add X and GitHub links to FAQ header. 2025-12-20 11:46:43 +00:00
b1rdmania 241ea2f020 Add GitHub link to FAQ. 2025-12-20 11:43:09 +00:00
b1rdmania 7b7f854ffc Tighten FAQ copy and add X link. 2025-12-20 11:41:55 +00:00
b1rdmania 9c9bd0f9ae Add FAQ modal and link in header. 2025-12-19 23:40:00 +00:00
b1rdmania b20971f456 Add musical note icon to MOTIF title
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 23:37:32 +00:00
b1rdmania f11967f8d3 Skip leading silence in preview playback
Normalize event times to start at 0 in SoundfontMIDIPlayer,
matching the existing fix in SynthesisEngine. Prevents delay
when MIDI files have silence before the first note.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 23:34:06 +00:00
b1rdmania bfb96c65b5 Add shared iOS audio unlock helper. 2025-12-18 23:21:48 +00:00
b1rdmania 9eb40ce614 Add iOS 'Enable Audio' CTA for Motif playback. 2025-12-18 23:21:41 +00:00
b1rdmania 234f6e38b5 Replace track count with source in results table
Changed table columns from Title | Duration | Tracks
to Title | Source | Duration - more useful to see where
the MIDI is from (BitMidi, etc.) than track count.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 21:23:12 +00:00
b1rdmania 34092f2301 Fix 10-second silence at start of Motif playback
Normalize all event times to start at 0 by finding the earliest
event across all roles and subtracting that offset. Prevents
silence when MIDI files have delayed first notes.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 21:20:28 +00:00
b1rdmania 7209fad127 Auto-stop Motif playback on search/song change
- Stop Motif audio when starting a new search
- Stop Motif audio when selecting a different song
- Prevents overlapping audio from previous generations

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 21:14:26 +00:00
b1rdmania 02914bdcd0 Adjust 'Use on your website' UX to coming soon. 2025-12-18 21:08:08 +00:00
b1rdmania d0be58296e Add embeddable /embed widget and copy-paste snippet. 2025-12-18 20:58:35 +00:00
b1rdmania e33cd26238 Reference NES/Game Boy in Motif synthesis copy
Changed to "NES/Game Boy synthesis engine" to connect the technical
specs to the actual Nintendo hardware this style comes from.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 20:30:29 +00:00
b1rdmania a5bfde5c4e Simplify social preview title and description
Title: MOTIF
Description: Procedural Music Synthesis from MIDI

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 20:29:20 +00:00
b1rdmania 74fdcfbeaa Add social preview image and update meta tags
- Added chiptune_blog_piece_1000x.webp as OpenGraph preview image
- Updated meta tags to point to webp file
- Social sharing on Telegram/Twitter will now show the retro gaming preview

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 20:28:35 +00:00
b1rdmania da0a0daa1f Update Motif copy to be more technically accurate
Changed from "Retro game console vibes" to explain the actual synthesis:
- Pure oscillator synthesis
- Triangle, square, and sawtooth waveforms
- Polyphonic chiptune generation

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 20:24:19 +00:00
b1rdmania 823d0290be Improve Motif Generation copy - less tech, more drama
Before:
- "Procedural Synthesis"
- "Web Audio oscillators with dynamic filtering and envelopes."

After:
- "Generate Your Variation"
- "Retro game console vibes. Same notes, entirely different energy."

Less nerdy spec sheet, more exciting payoff moment.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 20:20:45 +00:00
b1rdmania 0cd50cba1f Fix iOS/mobile UX: simplified table + better touch targets
Mobile UX improvements:
- Simplify results table: Title | Duration | Tracks only
- Remove Source (always bitmidi) and Match columns
- Make entire row clickable - no button needed
- Hide Tracks column on mobile (<640px)
- Larger touch targets throughout

Progress bar fixes:
- Larger thumb (20px) for easier iOS touch
- Both 'input' and 'change' events for iOS compatibility
- Larger wrapper height (44px) for comfortable touch
- Scale animation on active thumb
- Better track styling

Table improvements:
- Mobile-responsive padding
- Better cursor states
- Cleaner selected state with accent border

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 20:16:08 +00:00
b1rdmania 7601909cda Simplify UX: single preview player before generation
UX Flow: Search → Preview → Generate

Changes:
- Remove 3-column player grid (Tone.js, Soundfont, Custom)
- Keep only Soundfont piano as simple preview
- New section title: "Preview - Review the MIDI before generation"
- Clean horizontal layout: Play | Stop | Volume | Try Next
- This sets up Motif generation as the main event
- Removed Tone.js and EnhancedMIDIPlayer dependencies
- Bundle size reduced from 314KB to 76KB (-238KB!)

Better flow with less confusion. Preview is quick, generation is the focus.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 20:07:09 +00:00
b1rdmania 9daecd192a Trigger Vercel deployment 2025-12-18 20:00:16 +00:00
b1rdmania 00e4944971 Tighten UX with Synthwave design system
Design System: Synthwave aesthetic with 8px grid
- Add CSS variables for colors, spacing, shadows, glows
- Consistent 8px spacing grid throughout
- Unified border-radius (8px) and shadows
- Better typography scale and hierarchy
- Refined button styles with smooth transitions
- Tighter card layouts with hover effects
- Cleaner input fields with focus states
- More polished player boxes and sections
- Consistent use of neon accent colors (#00ff88, #ffaa44)
- Improved visual hierarchy and readability

All spacing now uses calc(var(--spacing-unit) * N) for consistency

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 19:55:05 +00:00
b1rdmania a262f714e5 Improve Motif player layout and alignment
- Reorganize controls into a cleaner horizontal flow
- Place Generate, Stop, and Volume controls in one row
- Better visual alignment and spacing
- Progress bar section sits cleanly below controls
- Responsive flexbox layout that wraps on smaller screens
- Remove awkward two-column grid layout

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 19:20:52 +00:00