个人 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.