MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
An audio-visual digital garden: an evolving installation space of interactive rooms, each its own performance.
Translation pending
MediaTypeScript · CSSGitHub @cestlavii1111OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
vii.fm — a cinema for your ears
An audio-visual installation space. Right now: one room — a cube you stand
at the edge of, looking inward. The five walls you can see act as soft
light panels that breathe gently in time with the music, each with its own
color and its own relationship to the sound, but pulsing on one shared
rhythm so the room reads as one calm, trance-like space rather than five
separate things doing their own thing. Built with Next.js, react-three-fiber
(Three.js/WebGL), the Web Audio API, and Framer Motion.Read the full README ↗An audio-visual installation space. Right now: one room — a cube you stand at the edge of, looking inward. The five walls you can see act as soft light panels that breathe gently in time with the music, each with its own color and its own relationship to the sound, but pulsing on one shared rhythm so the room reads as one calm, trance-like space rather than five separate things doing their own thing. Built with Next.js, react-three-fiber (Three.js/WebGL), the Web Audio API, and Framer Motion.
npm install
npm run dev
Open http://localhost:3000. Click Enter — browsers require a user gesture before audio can play, so the landing screen is what unlocks sound.
src/components/scenes/CubeRoom.tsx — the room itself. Five walls (the
wall behind the visitor is left unrendered — that's where you're
standing); each is a dark frame with a glowing inset panel. Every frame:
WALL configs
at the top of the file — back wall tracks the mids, side walls track
treble with opposite phase for a little shimmer, the floor tracks bass,
the ceiling drifts on overall loudness) blended in at its own
variance, so the room feels individually alive on top of the shared
pulse rather than uniform.saturation/lightness math in the file) so intensity reads as
"brighter, still soft" rather than ever going neon or strobing — turn
those ranges up if you want more punch.src/lib/audio-engine.ts — the audio graph. If the room has an
audioSrc, that file plays; if not, a generative ambient pad (detuned
oscillators through a slow filter sweep) fills in, so the room is
audio-reactive even before you have a final track.src/lib/rooms.ts — the room's config: title, base wall colors
(palette.primary = back wall, secondary = side walls, accent =
ceiling/floor), and which audio file to use.src/lib/store.ts — global state (play/pause, volume, pointer position)
via zustand.Drop an audio file in public/audio/ and point audioSrc at it in the
single room entry in src/lib/rooms.ts:
{
id: "the-room",
title: "THE ROOM",
audioSrc: "/audio/your-track.mp3", // omit to keep the synth pad
scene: "cube-room",
palette: { bg: "#050507", primary: "#7fb8c9", secondary: "#c9a8d6", accent: "#f2e9dc" },
}
Everything about how "trance-like" this feels lives in
src/components/scenes/CubeRoom.tsx:
Math.min(1, delta * 1.2) (shared
envelope) and Math.min(1, delta * 1.6) (per-wall) control how quickly
each wall's glow catches up to the music. Lower = slower, more languid;
higher = snappier, closer to the actual beat.Math.sin(t * 0.35) is the room's own idle tempo
when the audio is quiet. Change 0.35 to speed up or slow down the
ambient "breathing."saturation/lightness formulas near the bottom of
the useFrame loop cap how far a wall can brighten/saturate. Nudge the
base numbers or multipliers to make the room punchier or even calmer.walls array in the component
(band: "bass" | "mid" | "treble" | "overall" and variance) is the
"individually controlled" part — reassign bands or change variance to
rebalance which wall reacts to what, and by how much.The room-program structure (src/lib/rooms.ts + SCENES in the same
file) still supports more than one room/scene — an older exploratory scene
(VoidClub, a particle-field club space) is still in the codebase as a
reference if you want to compare visual languages, but isn't wired into the
program right now. To add a second room later: add an entry to the ROOMS
array and, if it should look different from the cube, a new scene component
registered in SCENES — the multi-room navigation UI (dots, prev/next) in
RoomHUD.tsx automatically reappears once ROOMS.length > 1.
This is a stock Next.js (App Router) project — no special config needed.
git add -A
git commit -m "Initial vii.fm build"
git remote add origin <your-github-repo-url> # if not already set
git push -u origin main
Then in Vercel: New Project → Import your GitHub repo, framework preset auto-detects as Next.js, and deploy.
public/audio/.audioSrc at a full
URL instead of a local path.CubeRoom.tsx's useFrame
if you want visitors to be able to look further left/right/up/down.