Commit Graph

58 Commits

Author SHA1 Message Date
b1rdmania 31310a6ea3 Replace copy button with text box for sharing
Simple solution: show the link in a selectable text box
Works everywhere without clipboard API issues

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:59:34 +00:00
b1rdmania 56e280fe33 Simplify share: use native share sheet on mobile
- Remove async fetch before share (was breaking iOS gesture chain)
- Use navigator.share() on mobile for native share sheet
- Simple clipboard.writeText() on desktop
- No complicated fallbacks

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:56:55 +00:00
b1rdmania 1eef11acbe Fix iOS clipboard with contentEditable approach
- Try modern clipboard API first
- For iOS: use contentEditable + special range selection
- Set font-size 16px to prevent zoom on iOS
- Properly throw error on failure for user feedback

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:53:55 +00:00
b1rdmania aac5d9d95b Fix iOS clipboard, update FAQ style, rename button text
- Fix iOS Safari clipboard by using textarea with proper selection
- Add visible "Link copied!" confirmation next to Copy link button
- Update FAQ modal styling to match Game Boy light palette
- Change "Use this →" to "Use" in search results

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:48:51 +00:00
b1rdmania 71762c07f8 Switch to light Game Boy palette and fix search/results UX
- Flip from dark to light authentic Game Boy LCD palette
- Update both main app (index.html) and share page (play.html)
- Light background (#C8D8B0) with dark text (#1D2A1D)
- Keep results interactive after selecting a song
- Remove search locking so users can always search or pick different results

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:38:37 +00:00
b1rdmania b582446269 Remove volume slider and description text from player
Cleaner UI - metadata already tells the story.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:13:31 +00:00
b1rdmania 9d38a9a83a Fix pause/play audio muting + tidy share page UX
- Fix SynthesisEngine to not cleanup layers on stop, preventing
  audio from going silent after pause/resume
- Remove "Reimagined as classic game-console music" line
- Remove procedural playback meta block
- Move "Generate your own" CTA inside player card
- Update footer with Birdmania credit and Twitter link

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 11:00:27 +00:00
b1rdmania 6e61aef35a Redesign UI with Game Boy retro aesthetic
- Add classic LCD green color palette (#9BBC0F, #8BAC0F, #306230, #0F380F)
- Switch to Press Start 2P pixel font
- Add scanline overlay effect for CRT feel
- Style buttons with chunky 4px borders and inset shadows
- Remove all border-radius for pixel-perfect look
- Update hero, controls, results table, and player sections

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:49:04 +00:00
b1rdmania b48fb4b7de Add MP3 download to UX test page.
Installs lamejs and adds an MP3 downloader that records the Motif synth output in real time via an output tap, then encodes and downloads as .mp3.
2025-12-29 09:59:56 +00:00
b1rdmania 134867cf93 Allow scrolling back to search after generation.
Keeps the search UI visible in generated mode (so you can scroll up), but locks it to prevent changing choices until tapping New search.
2025-12-26 21:29:17 +00:00
b1rdmania 9c6a47ab4e Add New search reset after generation.
Keeps the generated artifact view intact but provides a footer New search button that stops audio, resets state, scrolls to top, and focuses the search input.
2025-12-26 21:26:23 +00:00
b1rdmania 7cbf582fa1 Enable Copy link after generation and style it.
Refresh generated state after successful playback starts so Copy link becomes clickable, and boost its visual prominence without competing with Play.
2025-12-26 21:20:21 +00:00
b1rdmania 63618ec4fa Split selected vs generated UI on main page.
After generation starts, hide preview/source-changing/search affordances and switch to an artifact view: title, Wario transformation line, Play/Pause, timeline, volume, and Copy link.
2025-12-26 21:14:30 +00:00
b1rdmania fd422aa084 Make results a chooser and move preview to selected card.
Removes preview controls from search results, adds a 'Choosing a MIDI source' helper block, introduces selected/generated states, and keeps Preview original MIDI as a secondary action inside the selected source card.
2025-12-26 20:38:15 +00:00
b1rdmania 839d40447f Restore FAQ button at top-right.
Adds a top-right FAQ button in the hero while keeping a footer FAQ button, both opening the same modal.
2025-12-26 20:28:23 +00:00
b1rdmania b0c1b49d2a Remove volume controls and play at 100%.
Eliminates volume sliders on main and share pages and hard-sets preview + Motif playback volume to 1.0 across the app.
2025-12-26 20:25:38 +00:00
b1rdmania d5434025c8 Polish share page hierarchy and styling.
Align /play colors with main (green accents), simplify copy and metadata, reduce timestamp prominence, and improve title cleaning to avoid filename-like artifacts with optional artist subline.
2025-12-26 20:21:14 +00:00
b1rdmania 9ad1b00b4e Scroll to synthesis controls after selecting a source.
After clicking 'Use this' and loading the MIDI, auto-scrolls to the selected source card so Generate is immediately visible.
2025-12-26 19:34:47 +00:00
b1rdmania 5e90b9e5d5 Fix share page progress bar updates.
Track playback position locally so the /play progress slider and time display advance reliably, including pause/resume, scrubbing, and end-of-track behavior.
2025-12-26 19:32:55 +00:00
b1rdmania 7deb7bd4d9 Move MIDI preview controls into results table.
Adds per-row Play/Stop preview toggles, moves preview volume to the results header, and removes preview controls from the selected source card.
2025-12-26 19:27:16 +00:00
b1rdmania 9fc636a558 Refocus main page around search → select → generate.
Cleans result titles, adds a 'Use this' action, promotes a selected source card with Preview/Generate, collapses results after selection, and hides debug-ish metadata behind Details.
2025-12-26 19:21:28 +00:00
b1rdmania 834a170a58 Rewrite share player page UX.
Makes /play a narrative artifact page with a clean song title, one-line transformation hook, single Play/Pause control, progress bar, minimal metadata, and a single CTA.
2025-12-26 19:00:56 +00:00
b1rdmania 0e0b64d6a2 Remove redundant preview controls bar.
Moves preview volume into the results header and relies on per-row Play/Stop controls.
2025-12-26 18:53:55 +00:00
b1rdmania f437bba281 Move MIDI preview playback into results table.
Adds per-row Play/Stop buttons and replaces the standalone preview box with compact preview volume/stop controls.
2025-12-26 18:42:31 +00:00
b1rdmania ba34f66c91 Add progress slider to share player.
Updates /play with a seekable progress bar, time display, 70% default volume, and Wario engine copy.
2025-12-26 18:36:40 +00:00
b1rdmania 88891afd8e Move Copy link to Generate & Play and align /play output.
Shows Copy link beside the synth engine controls and makes /play run procedural generation to match the main page.
2025-12-26 18:26:49 +00:00
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 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 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 9c9bd0f9ae Add FAQ modal and link in header. 2025-12-19 23:40:00 +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 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 3031614914 Add progress bar and seek controls to Motif player
- Add interactive progress bar with visual fill indicator
- Show current time and total duration
- Enable seeking/scrubbing through the synthesis
- Improve Motif player UX with cleaner layout
- Add progress tracking that updates 10x per second
- Format time display as MM:SS
- Progress bar appears when playback starts
- Seeking updates event indices for smooth playback

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

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