個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證An endless vine of electronic sequences and slow tonal harmony, in your browser. Loopra’s electric sibling.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗An endless vine of electronic sequences and slow, tonal harmony, for your browser. Twelve synthesized layers turn on one clock; the chords move by the notes they share, and now and then the whole vine travels to another key.
▶ Play in your browser · ⬇ Download Tangerine 1.3.0 · French guide · First opening on a Mac
The local edition playing, with New journey in the top bar.
Loopra’s electric sibling. Every sound is synthesized in the browser. Free and open source, with an English interface.
The musical engine, synthesis, harmony rules, effects and note-export modules are unchanged from 1.2. This release changes the interface, initial settings and recording workflow.
Online: open the demo and click Start the vine. The browser requires a click before making sound. Desktop Chrome is recommended for the widest feature support. On iPhone, check silent mode and media volume if the page appears to play without sound; phone audio behaviour still depends on the browser and system.
On your computer: download Tangerine-v1.3.0.zip from the release, unzip it and keep the whole folder together. Python 3 is required; there are no packages to install.
./run.sh.python3 scripts/serve.py --open from the extracted folder.The launcher chooses a free loopback port starting at 4350 and distinguishes different copies of Tangerine. Keep its Terminal window open while listening or recording.
Press Space to play or pause when you are not using another control. Show tips reveals the longer explanations. On a computer, Phone preview tries the phone layout without reloading the page.
| Action | What is saved | Where and when |
|---|---|---|
| Recover a recent passage | The last 30 seconds to 20 minutes, as WAV audio, MIDI notes, ABC score and a lead sheet, where capture is supported | Download links appear under recent passages. Click them before closing the tab. |
| Record a passage — online demo | From now until Stop, up to 30 minutes, held in browser memory | Download the files when the passage ends. |
| Record to this computer — local download | Audio from Record until Stop, written progressively as stereo PCM 16-bit WAV | Files are saved automatically in Recordings/, next to the launcher, in a dated session folder. Each hour continues in the next WAV file. |
| Record an already playing Chrome tab — local download | The shared tab’s audio from capture start until Stop | Choose the tab and enable Share tab audio in Chrome. It is not reloaded. No video or microphone input is recorded. |
“All available (up to 20 min)” means the audio still in the recent-memory buffer, not an arbitrarily long session since its beginning. Closing the page removes temporary browser download links. Local continuous files already written to disk remain on your computer.
For a long local recording, keep the recorder tab and Terminal open, keep the computer awake and check that there is enough disk space. Stop recording with Stop & finish files to finish the last audio block. Pausing playback records silence until playback resumes or recording stops. A system interruption can still lose an unconfirmed final block.
GitHub Pages serves static files: it cannot run the local recording server. The online demo therefore offers browser passage recording and a link to the local download for continuous recording.
Short sequences of different lengths keep meeting in new places: bass, arpeggio, high motif, dotted-eighth counter sequence and quarter-note echo pulse. A pad, low and high strings, long lead, slow melody, bells and drone move around them. No drums: the accents of the sequences are the rhythm.
The 1.3 starting setup is 60 BPM, F♯ Lydian, richness 58, six key changes per ten minutes, distance 35, held bass 56, evolution 100 and slow change 100. Sequences and sounds renew about every 32 bars, with layer rotation about every 32 bars. Other layer and effect defaults remain as in 1.2. Settings are remembered in the browser; JSON setups remain compatible with supported earlier versions.
1.2 remains available: release and original download · original source at its tag · archived 1.2 browser demo.
The archived demo is a byte-for-byte copy of the 1.2 dist/ folder. Its interface and behaviour have not been updated. The original documentation is retained in docs/versions/.
Plain HTML, CSS and JavaScript, with no build step or runtime packages. engine.js generates the music, theory.js describes harmony, and audio.js synthesizes it. journal.js, midi.js and abc.js write notes and scores. The separate disk recorder taps the master output and writes PCM blocks through the local Python server.
The complete static demo is dist/. Paths are relative, including when hosted under /tangerine/. All sound is generated or captured locally. There are no analytics, remote fonts, external audio services, model calls or account requirements. Recordings, personal setups and development captures are excluded from releases and source publication.
With Node.js 20+ and Python 3:
npm run check
npm test
npm run test:recording
See PUBLISHING.md for release and GitHub Pages instructions.
Jean-Pascal — Quick-Eyed Sky on YouTube, QES on Hugging Face. Not a programmer: Tangerine exists for the pleasure of hearing sequences turn and meet, in the spirit of the synthesizer records of the seventies.
Coding assistance: Claude (Anthropic) and ChatGPT (OpenAI), with several models from each. Jean-Pascal directs the project and its musical choices.
If it gives you a good long drift, you can buy me a coffee. Entirely optional, and Tangerine stays exactly as free either way.
MIT — see LICENSE.