Firmware

bass-something-2

Loud94/100

A monosynth inspired by the legendary Novation Bass Station II, built for the M-VAVE FM-1. Also a companion for Cyma Forma's RND Synth (seeds, locks and a track mixer), and runs on an iPhone or iPad i

bass-something-2 is custom firmware for the M-VAVE FM-1, by @imijes. Open source under MPL-2.0.

forM-VAVE FM-1·by@imijes

Unclaimed. Is this yours? Sign in with GitHub as @imijes to claim it.

Downloads
0
Stars
0
Forks
0
Commits
26
Last commit
Download v0.6

Betabass-something-2-0.6.fwsc· 598 KB· +1 file

MPL-2.0· imijes/bass-something-2·imijes.github.io/bass-something-2/·downloads come from the creator’s GitHub releases

26
Commits
6
Releases
26 commits and 6 releases in the last year
Activity · last 12 months

Bass Something 2

A monosynth inspired by the legendary Novation Bass Station II, built for the M-VAVE FM-1. It's also a companion for Cyma Forma's RND Synth (firmware 1.4): 32 seed slots with their locks, and a mixer for its four tracks. It runs on an iPhone or iPad in RemoteFM1 too. It's built on fm1-base, started from fm1-base's template/. The manual (docs/MANUAL.md) describes everything it does.

FileWhat
app.hThe app's settings (name, block size, the store's objects) and its half of the contract with the platform
app.cThe app: input, sound, screen, saving
bs2_sysex.cBass Station II patch dumps in and out
bs2_rnd.cRND Synth (firmware 1.4): its patches (seed and locks) kept in their own table (OBJ_SEEDS) and sent back; its locks and its tracks' mixer set from the RND pages
rnd/The words RND SEED names patches with: BIP39's English list (bip39_english.txt, MIT) packed into words.h by make_words.py
fm1.tomlBuild and site settings: name, package identity (FM-1_62), USB names, tagline, licence
words.tsvThe screen reader's words (fm1-reader)
tests/*.txtHost simulator checks: basic, glo, sysex, rnd, seqkeep, lit, voice (tests/syx: the SysEx they send)
tests/screens.txtThe manual's screenshots
docs/MANUAL.md, site/landing.mdThe manual and the site's front page
docs/SIZE_LOG.md, tools/size_log.pyWhat each change costs in flash and RAM: python3 bs2/tools/size_log.py "what changed" (from the fm1-base root) builds the firmware and adds a row
web/emu/index.htmlThe emulator's page: fm1-base's, in the firmware's colours, with a quick guide
site/theme.css, site/make_site.pyThe site (front page, installer, manual) in the firmware's colours, with its tabs
site/publish_pages.pyThe built site to GitHub Pages (the gh-pages branch)
platform/*.patchThe changes to fm1-base and felucca-bsp it needs (below)

Build, test, install

Bass Something 2 builds in an fm1-base checkout (bs2/ at its root) at d8ff8f4, with its felucca-bsp at 305c372, plus two platform patches that aren't upstream yet (platform/): the computer's USB audio as the synth's external input (plat_usb_audio_route, plat_usb_audio_in; fm1-base #17), the battery read while the keys' velocity is on (felucca-bsp #19, fm1-base #16), and received SysEx queued instead of one message at a time, so a bank sent without gaps arrives whole (felucca-bsp #20, fm1-base #15). From the fm1-base root:

git apply bs2/platform/fm1-base.patch
git -C bsp apply ../bs2/platform/felucca-bsp.patch

Then, from the repository root:

tools/build.py bs2 --host                   # the host simulator, then:
bs2/build/host/bass-something-2_host bs2/tests/basic.txt bs2/build/host
tools/build.py bs2                          # bs2/build/bass-something-2.fwsc (JieLi toolchain, AC79 SDK)
tools/build.py bs2 --web                    # the browser emulator: bs2/build/emu/
python3 tools/fm1_install.py bs2/build/bass-something-2.fwsc

The site (bs2/build/site), from a release:

tools/build.py bs2 --release 0.6 && tools/build.py bs2 --web --release 0.6
tools/build.py bs2 --rfm1 --release 0.6               # RemoteFM1 (iOS): bs2/build/rfm1/bass_something_2-0.6.rfm1,
                                                      # a release asset; build it from a pushed commit (its source_url)
python3 bs2/site/make_site.py bs2/build/bass-something-2-0.6.fwsc 0.6
(cd bs2/build/site && python3 -m http.server 8765)    # http://localhost:8765
python3 bs2/site/publish_pages.py 0.6                 # https://imijes.github.io/bass-something-2/

Bass Something 2 is by John Brown (@imijes). Credits for everyone whose work it builds on: docs/MANUAL.md, section 12.

Novation and Bass Station are trademarks of Focusrite Audio Engineering Ltd.; Bass Something 2 is not affiliated with Novation or M-VAVE.