MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
브라우저에서 곡을 만들고 공유하세요
Translation pending
AI summary · website and README
MediaJavaScript · CSSGitHub @minsikim-42OnlineOwner 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.
브라우저에서 여는 작곡(시퀀서) 앱. 악기를 고르고 → 격자(피아노 롤)에 음표를 찍고 → 재생하면 곡이 흘러나온다. 링크 하나로 폰·태블릿·다른 PC 어디서든 접속하는 것이 목표. • 소리 엔진: Tone.js (Web Audio API 위에서 악기·타이밍·재생을 다룸) • 화면: HTML + CSS + 바닐라 JS (프레임워크 없이 시작) • 별도 빌드 도구 없음 — index.html을 브라우저로 열면 바로 돈다 index.html을 브라우저로 열거나, 로컬 서버로 띄운다: 그 다음 http://localhost:8000 접속. (첫 재생 버튼 클릭 때 소리가 켜진다 — 브라우저 정책상 사용자 클릭이 있어야 오디오가 시작됨)Read the full README ↗
브라우저에서 여는 작곡(시퀀서) 앱. 악기를 고르고 → 격자(피아노 롤)에 음표를 찍고 → 재생하면 곡이 흘러나온다. 링크 하나로 폰·태블릿·다른 PC 어디서든 접속하는 것이 목표.
index.html을 브라우저로 열면 바로 돈다index.html을 브라우저로 열거나, 로컬 서버로 띄운다:
python3 -m http.server 8000
그 다음 http://localhost:8000 접속. (첫 재생 버튼 클릭 때 소리가 켜진다 — 브라우저 정책상 사용자 클릭이 있어야 오디오가 시작됨)
곡이름.wav 파일로 저장(서버 없음)#songz=, 긴 곡도 짧게).mid 파일로 다른 DAW(로직·큐베이스·개러지밴드 등)와 주고받기(라이브러리 없이 직접 읽고 씀)setBpm이 슬라이더·숫자·Transport를 함께 맞추고 범위 밖은 확정 시 클램프).Tone.Volume 노드(createVoices의 vol)를 거쳐 마스터로 간다.
setTrackVolume이 그 노드를 라이브로 조절(재생성 없음). 재생·WAV 렌더 모두 반영.track.volume은 세션 저장 + 공유 링크(코덱 v5) 에도 실린다(v1~v4 링크는 볼륨 0으로 열림).track.collapsed는 세션에 저장된다(공유 링크엔 안 담김).moveTrack이 tracks 배열 순서를 바꾼다(맨 위/아래는 비활성).Tone.Sampler 로 만들어
한 샘플을 건반 전체에 음정 맞춰 재생한다. 트랙 사운드 드롭다운에 🎵 로 뜨고, 다른 소리처럼 트랙에 끼운다.sounds에 data URL로 저장(localStorage). 디코드 버퍼는 sampleBuffers(id→ToneAudioBuffer)에
캐시하고, 로드되면 그 소리를 쓰는 트랙 신스를 다시 만든다(로딩 전에는 무음 폴백).PolySynth에 넣어 화음 가능).
기타·클라리넷은 FMSynth(배음이 풍부): 통기타=빠른 어택+긴 감쇠로 잦아드는 뜯는 줄,
클라리넷=홀수 배음의 목관·부드러운 어택·긴 지속. 나머지는 Synth+파형/엔벨로프.PluckSynth/NoiseSynth는 Monophonic이 아니라 PolySynth에 못 넣는다
(넣으면 재생 시 "Voice must extend Monophonic" 에러). 예전 '플럭'이 그 버그였고 Synth 기반으로 고쳤다.position: sticky로 항상 위에 고정했다(스크롤해도 보임).syncTracksHorizontally, 각 트랙 _hscroll의 scroll 이벤트로 나머지를 맞춤, 피드백 루프는 syncingScroll로 방지).
상태는 localStorage에 기억한다..gridscroll) 가 맡고 touch-action: pan-x pan-y로 양축을 허용한다.
(축을 나눠 중첩하면 안쪽 컨테이너의 touch-action이 격자를 한 축으로 제한해 다른 축이 막힌다.) 가로 스크롤이
실제로 생기려면 **flex 항목이 격자 크기만큼 커지지 않게 .track에 min-width:0**이 필요하다.tanh로 완만히 굽혀 입력이
아무리 커도 ~0.93에서 멈춘다(피크 3.3→0.93 확인). 재생·WAV·미리듣기 모두 동일 마스터.
(Web Audio엔 진짜 리미터가 없어 컴프레서는 순간 피크를 놓친다 → WaveShaper로 확실히 눌렀다.)#은 올림표로, 오선 밖 음은 보조선으로 표기.Tone.Offline로 한 번에 렌더링 → 16비트 PCM WAV로 인코딩 →
곡이름.wav 다운로드. 서버 없이 브라우저에서 만든다.스텝수 × 16분음표 길이 + 여운 2초(현재 템포 기준). 재생용 신스는 건드리지 않고
오프라인 컨텍스트에 별도 신스(createVoices)를 만들어 렌더한다. 음이 하나도 없으면 안내만 뜬다..mid 파일로 다른 DAW(로직·큐베이스·개러지밴드 등)와 주고받는다.
외부 라이브러리 없이 브라우저에서 SMF를 직접 읽고 쓴다.곡이름.mid. 1칸 = 16분음표, 드럼은 일반 MIDI 드럼(채널 10). 거의 그대로 옮겨진다..mid 파일을 골라 새 곡으로 연다. MIDI는 자유 타이밍이라 격자(16·32분음표)에 맞춰 정렬하고,
음역(도3~도6) 밖 음은 옥타브를 옮겨 담는다 → "음 N개, M개 옮김/무시"를 알려준다.+ 새 소리, 각 소리 [편집]·[이름변경]·[삭제].applySoundToTracks→poly.set).sounds 배열에 담겨 저장(localStorage) 되고 공유 링크에도 실린다(코덱 v3).
링크에서 소리는 이름 + 7바이트로 양자화(파형 1 + ADSR 4 + 컷오프 1 + 볼륨 1), 트랙은 소리를 인덱스로 참조 — 값이
아주 미세하게 바뀔 수 있다(귀로는 구분 안 됨). v1/v2 링크도 계속 열린다(하위호환).마스터(여러 트랙이 겹쳐도 깨끗하게): ① 헤드룸(-6dB)으로 정상 믹스(2~4트랙)가 천장(0.9) 아래에 머물러 마스터가 손대지 않는다(왜곡 0). ② 넓은 범위 소프트 클립: 무거운 믹스가 넘쳐도 tanh로 부드럽게 포화. WaveShaper는 입력이 ±1을 넘으면 곡선 끝에 '평평하게 잘라'(=퍼벅) 버리므로, 입력을 1/DRIVE로 축소해 넣고 곡선이 ±DRIVE까지 다루게 한다 → 아무리 겹쳐도 하드클리핑 없이 매끄럽게 눌린다.
#song=...)에 담는다.
격자가 불리언이라 그대로 두면 링크가 길어지므로 비트 패킹으로 짧게 유지한다(2트랙 2마디 ≈ 150자).🔗 공유 또는 왼쪽 메뉴) → 링크 복사 → 나에게(카톡·메일 등) 보내 다른 기기에서 연다.encodeShare/decodeShare(app.js). 버전 바이트가 있어 나중에 포맷이 바뀌어도 구분 가능.정적 파일뿐이라 아무 정적 호스팅에나 올리면 된다. 가장 쉬운 건 GitHub Pages:
main/root로 지정https://<아이디>.github.io/<저장소>/ 로 열림 → 이 주소에서 공유하면 폰에서도 열린다(아직 push 안 함. 원하면 도와줄 수 있음.)
musik-maker.sessions, 활성 곡: musik-maker.activeId).+ 새 곡으로 추가, ✎로 이름 변경(인라인),
🗑로 삭제(실행취소 토스트 포함).