个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A generative groovebox for the M-VAVE FM-1, in the style of early-90s PC tracker music.
Makohai is Finnish for the longfin mako shark. It was called Espada before 1.0.
Six lanes (lead, arp, pad, bass, drums and sfx) play parts that are composed live in one of eighteen styles: chords, bass lines, melodies, drum patterns and noise in the manner of the S3M scene, played as a tracker musician plays them, with glides, swells and an echo channel. You do not program steps; you mix styles. Queue the next style, blend it in lane by lane from the bottom up, or launch it at once with its own tempo. Shape each lane with a filter, a tempo-synced wobble, FM brightness and drive, or with tracker effects: slide, porta, vibrato, tremolo, tremor, gate, swing, retrigger, a bit crusher, echo, and an equal-power pan per lane with an autopan that sends each note to the other side or sweeps the lane in time. An arc builds the piece up from the drums to a drop, and DROP lets you call the break yourself. SETUP's free knobs show pictures: a scope, level meters, a goniometer, a spectrum landscape, and demo-style pictures (a turning crystal, a tunnel, dots, plasma, fire and more). SEL + HOME shows them full screen, cut on the beat; SETUP's BACK puts one behind the whole screen, cycling every few bars if you like.
Status: 1.3. It runs on the FM-1. A voice budget keeps the sound in time however much plays (SETUP, VOICES); if the sound ever turns to crackles, SETUP's AUDIO and VOICES rows show what the FM-1 was doing. Install it over the official firmware and keep the USB rescue in mind (below).
One screen, laid out as a mixing desk: the setting in large letters on top, all six lanes in the middle, and at the bottom the four knobs in a row, four lanes side by side, each with its value for that setting; ALGORITHM slides the window over the six lanes. A group button picks the kind of setting, PRESETS steps through them.
| Control | Does |
|---|---|
| HOME / FX / ARP / GLO | the groups PLAY, SOUND, TRACKER, SONG; again: the next setting. Hold HOME: SETUP (colours, screen, lights, MIDI channels and sync, defaults) |
| PRESETS | the setting in the group |
| KNOB 1-4 | that setting for the four lanes in the window, LEAD ARP PAD BASS to PAD BASS DRUMS SFX (SONG: the four shown) |
| ALGORITHM | the lane the buttons and keys act on (turning its knob picks it too) |
| SELECT | tempo |
| PLAY / SEQ / REC | INTRO and END, launch the next style (EDIT: copy a lane), INTER (tap) or DROP (hold) |
| ENV / LFO / EDIT | fade the lane out and in (SEL+ENV: lock), a new idea, its steps |
| SAVE, OCT- / OCT+ | save; the keys' octave |
| Keys | play the lane live; on EDIT they enter steps |
The full guide to the panel is in docs/MANUAL.md. Where Makohai is going, how it is built and why: docs/DEVELOPMENT.md.
Makohai in the browser: the same code the FM-1 runs, compiled to WebAssembly, on Felucca's browser FM-1 (knobs, buttons, keys; your computer's keyboard plays it too, a MIDI controller turns the knobs). Chrome, Edge, Firefox or Safari.
Makohai's web installer in Chrome or Edge on a computer (it also takes a test
build, and brings back the official V15), the FM-1 Firmware Hub, or from the command
line (once: pip3 install mido python-rtmidi):
python3 tools/fm1_install.py makohai-1.3.fwsc
Install over M-VAVE's official firmware. If anything goes wrong: hold OCT- while switching on for the USB rescue, where the installers still reach the FM-1. Installing firmware is at your own risk.
You need Linux on x86-64 (or macOS / Windows with Docker or WSL), Python 3 with Pillow, JieLi's toolchain and three files of the JieLi AC79 SDK:
pip3 install Pillow
tools/get_toolchain.sh
git clone --depth 1 --branch AC79NN_SDK_V1.2.1_2023-12-13 \
https://gitee.com/Jieli-Tech/fw-AC79_AIoT_SDK.git ~/fw-AC79_AIoT_SDK
./build.sh # -> build/makohai.fwsc
./build.sh --release 1.3 # -> build/makohai-1.3.fwsc, identity FM-1_47625642
GitHub Actions builds the package on every push (the run's artifact makohai-firmware).
In the browser: web/emu/makohai_build.sh (clang with wasm-ld, or Emscripten) writes build/makohai_emu/;
serve that folder and open it. node web/emu/makohai_emu_test.mjs build/makohai_emu/makohai.wasm checks it without
a browser.
Host mode runs the same code on a computer: tests/run_host.sh writes the screens as PNG and the sound as a WAV.
build/host/makohai OUT tests/demo.txt plays a scripted tour (buttons, encoders, keys over time). The screenshots
above come from host mode, pixel for pixel what the FM-1 draws, at twice the size.
firmware/src/makohai.c the app: shared state, includes the parts below
firmware/src/makohai_synth.c the audio interrupt: FM, drum and sfx voices, lane effects, the step clock
firmware/src/makohai_music.c harmony, the eighteen styles, generators, density, the arc, your patterns, the bar cache
firmware/src/makohai_ui.c the screen, the views and pages, the panel, saving
firmware/src/platform.c Dinghy's wiring of the FM-1 platform (boot, USB, updates, panel, screen, settings)
The chip's rules (docs/RULES.md): integers only, no 64-bit division, the audio interrupt well under 5.8 ms. SEL + SAVE shows the interrupt's worst time in the header.
GPL-3.0-only. Makohai is built on Dinghy (zvenson), which carries the platform of Felucca (Leo Kuroshita, Hügelton Instruments) as SLOOP (isod89) has it. Details in LICENSING.md.
"M-VAVE" and "FM-1" belong to their owners. Makohai is not made or endorsed by them.