From 9c9bd0f9aed6d153b636678b963a1e7f44297e7c Mon Sep 17 00:00:00 2001
From: b1rdmania <102524336+b1rdmania@users.noreply.github.com>
Date: Fri, 19 Dec 2025 23:40:00 +0000
Subject: [PATCH] Add FAQ modal and link in header.
---
index.html | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++-
src/main.ts | 30 ++++++++++++
2 files changed, 161 insertions(+), 1 deletion(-)
diff --git a/index.html b/index.html
index e1acf75..057c812 100644
--- a/index.html
+++ b/index.html
@@ -73,6 +73,103 @@
letter-spacing: 0.05em;
text-shadow: var(--glow-primary);
}
+
+ .topbar {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: calc(var(--spacing-unit) * 2);
+ margin-bottom: calc(var(--spacing-unit) * 2);
+ }
+ .topbar h1 {
+ margin: 0;
+ }
+ .faq-link {
+ margin-left: auto;
+ background: transparent;
+ border: 1px solid rgba(255,255,255,0.14);
+ color: rgba(255,255,255,0.85);
+ padding: 8px 10px;
+ border-radius: var(--radius);
+ box-shadow: none;
+ font-size: 13px;
+ }
+ .faq-link:hover:not(:disabled) {
+ box-shadow: var(--shadow-sm);
+ border-color: rgba(255,255,255,0.22);
+ }
+
+ /* FAQ modal */
+ .modal-backdrop {
+ position: fixed;
+ inset: 0;
+ background: rgba(0,0,0,0.65);
+ display: none;
+ align-items: center;
+ justify-content: center;
+ padding: 20px;
+ z-index: 1000;
+ }
+ .modal-backdrop.open { display: flex; }
+ .modal {
+ width: min(720px, 100%);
+ background: rgba(20,20,20,0.98);
+ border: 1px solid rgba(255,255,255,0.12);
+ border-radius: 12px;
+ box-shadow: 0 30px 120px rgba(0,0,0,0.75);
+ overflow: hidden;
+ }
+ .modal header {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ padding: 14px 16px;
+ border-bottom: 1px solid rgba(255,255,255,0.08);
+ }
+ .modal header h3 {
+ margin: 0;
+ font-size: 14px;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: rgba(255,255,255,0.9);
+ }
+ .modal header .spacer { margin-left: auto; }
+ .modal header button {
+ padding: 8px 10px;
+ border-radius: 10px;
+ background: rgba(255,255,255,0.06);
+ border: 1px solid rgba(255,255,255,0.12);
+ box-shadow: none;
+ }
+ .modal main {
+ padding: 14px 16px 16px 16px;
+ }
+ .faq-grid {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: 12px;
+ }
+ .faq-item {
+ border: 1px solid rgba(255,255,255,0.08);
+ border-radius: 12px;
+ padding: 12px 12px;
+ background: rgba(0,0,0,0.18);
+ }
+ .faq-item h4 {
+ margin: 0 0 6px 0;
+ font-size: 13px;
+ color: rgba(0,255,136,0.9);
+ }
+ .faq-item p {
+ margin: 0;
+ color: rgba(255,255,255,0.75);
+ font-size: 13px;
+ line-height: 1.45;
+ }
+ .faq-item code {
+ font-size: 12px;
+ color: rgba(255,255,255,0.85);
+ }
.controls {
margin: calc(var(--spacing-unit) * 3) 0;
text-align: center;
@@ -662,7 +759,10 @@
-
🎵 MOTIF
+
+
🎵 MOTIF
+ FAQ
+
Procedural Music Synthesis from MIDI Structure
@@ -782,6 +882,36 @@
+
+
+
+
+
+
+
What is this?
+
A hobby project exploring MIDI → retro synthesis . Search a song, preview its MIDI, then generate a chiptune-style variation.
+
+
+
How was it built?
+
Vite + TypeScript frontend using Web Audio (procedural synth) plus a Soundfont piano preview. Backend is a small Express API (search/fetch/parse) deployed on Vercel.
+
+
+
Why do I need “Enable Audio” on iOS?
+
iOS Safari requires a user tap before audio can play. Tap Enable Audio , then press Generate & Play . If it’s still silent: disable Silent Mode / raise volume / disconnect Bluetooth.
+
+
+
How can we develop it further?
+
Add more MIDI sources, better matching, and style presets (ambient / dance / ominous). Then ship a compact /embed widget and an SDK so other sites can drop in “pixelised music”.
+
+
+
+
+
+