Move Speech Help

Speech fixes for Ableton Move. Version 1.0.3.

Changes

1.0.3

Adds compatibility with Move firmware 2.1.5. After updating Move, run the same install command again to restore the speech fixes. Earlier supported firmware remains compatible.

1.0.2

Loaded-sample Start and audio-track Start now announce their changing positions as percentages of the complete sample, rather than only their labels.

The Wi-Fi password character selector now speaks letters, numbers, punctuation and its character-set, delete and confirm controls.

1.0.1

Short shell commands for installation, checks and removal, with the certificate-checked Python option still available. Confirmation prompts work when the shell script is piped into the SSH terminal. Speech fixes are unchanged.

1.0.0

Initial release: speech for Sampling, Slice, sample start and end controls, and step velocity, with a reversible on-device installer.

Before Installing

You need Ableton Move, an internet connection and a root SSH shell on the device. This installer does not enable SSH or bypass its authentication. Keep Move connected to power and stop playback or recording before installing. Move normally saves sets automatically.

Move Speech is an unofficial modification, not an Ableton product. It does not replace Move's voice engine or install Schwung. It requires Move's existing Python 3, OpenSSL and system utilities; no compiler or extra package installation is needed.

Install

Run either option in Move's root SSH shell, not in your computer's ordinary terminal.

Short Shell Command

wget -qO- https://onjlouis.github.io/MoveSpeech/install.sh | sh

Security notice: Move's built-in wget does not verify HTTPS certificates. This short command trusts your network to deliver the initial shell script unchanged. Signed package checks cannot protect you if that first script is replaced. Use the certificate-checked Python option below on an untrusted network.

The shell script calls the same Python installer; it does not contain a separate patching implementation. You can inspect the shell script and Python bootstrap before running them.

Certificate-Checked Python Option

python3 -E -s -B -c 'import urllib.request;exec(urllib.request.urlopen("https://raw.githubusercontent.com/OnjLouis/MoveSpeech/main/bootstrap.py",timeout=30).read())'

Both options explain what the installer found and ask before restarting Move. The Python installer downloads a signed package over certificate-checked HTTPS, checks compatibility and constructs the patched executable on your own device. It then enables the fixes at startup. Stock Move and recognised Schwung installations are supported; existing voice settings are preserved.

Wait for the completion message. After the restart, open Sampling and turn the wheel to check speech, then try Slice and the sample controls.

For an unattended shell install, end the short command with | sh -s -- --yes instead of | sh. For the Python option, add --yes after the closing single quote. This approves the restart without asking. Otherwise a command without an interactive SSH terminal stops rather than waiting for an answer.

Using Speech

The fixes send text through Move's normal screen-reader path. Open Move's screen-reader page and complete its normal pairing if requested. Use your computer or phone's screen reader as usual.

If you already use on-device speech through Schwung, the same restored text is available to it. You do not need Schwung for browser-based speech. Move Speech does not install voices, alter voice licences or change your chosen speech settings.

Password selection does not read back the complete password. Inserting or deleting a character does not yet have a separate confirmation announcement. Browser speech requires a working connection to Move; use USB connectivity or an existing on-device speech setup when changing Wi-Fi networks.

Other controls using the repaired display paths can also benefit. Audio-track Tempo, Start and Input Gain, and drum-pad Volume have been reported working. This does not mean every silent screen or control is fixed.

Firmware Compatibility and Updates

Firmware profiles
FirmwareVerification
2.1.5Speech confirmed on a physical Move.
2.1.5b2Speech confirmed on a physical Move.
2.1.5b1 and 2.1.1Offline compatibility checks only; a physical-device trial is still needed.

Exact executable and startup-script checks must pass. A matching version number alone is not sufficient. An unfamiliar firmware or independently modified startup script is left unchanged rather than patched speculatively.

Uninstall Move Speech before installing an official firmware update, so its temporary executable mount cannot interfere with the updater. After updating Move's firmware, run the same install command again. It fetches the current signed compatibility information. The installer uses Move's native executable even when Schwung provides the launcher, so you do not need a separate stock or Schwung command.

Future firmware is not automatically guaranteed to work. If its profile is unavailable, wait for a Move Speech update. If the startup guard encounters a changed native executable, it declines to apply the old patch and lets unmodified Move start.

Check or Remove

Check compatibility and build the patch in memory without restarting Move or changing its startup:

wget -qO- https://onjlouis.github.io/MoveSpeech/install.sh | sh -s -- --check

Remove the speech patch:

wget -qO- https://onjlouis.github.io/MoveSpeech/install.sh | sh -s -- --uninstall

The same network-trust warning applies to these downloaded shell commands. For the certificate-checked Python option, append --check, --status or --uninstall after its closing single quote instead.

Removal restores unmodified Move and removes our startup additions. A brief restart is required. Voice settings, sets and other startup changes are preserved. Removal can work after an unrecognised firmware update because it does not build a new patch, but unfamiliar executable layouts or changed speech startup blocks are refused safely. The installer retains its small support files, bounded logs and rollback archive for diagnosis and reinstalling.

Version 1.0.1 and later also include these offline commands, which use the installed copy without downloading a script:

sh /data/onj-move-accessibility/install.sh --status
sh /data/onj-move-accessibility/install.sh --check
sh /data/onj-move-accessibility/install.sh --uninstall

The original offline Python commands remain available, including with version 1.0.0. Use python3 -E -s -B /data/onj-move-accessibility/install.py followed by the same option.

Recovery and Storage

The original native executable is not overwritten. A separate patched copy lives on Move's data partition, with a reversible file mount selecting it. Allow at least 100 MiB of free data storage. The installer does not copy a large executable onto the small system partition.

Ordinary installation failures trigger restoration of the previous startup and managed files. Once the restart operation has been handed to its worker, it can finish if the SSH connection drops. This is not a guarantee against power loss, storage failure or every firmware change: keep power connected.

Logs are kept in /data/onj-move-accessibility as install.log, install.previous.log, startup.log and startup.previous.log. The latest operation is recorded in operation.json. No background patch daemon is left running.

If installation fails, preserve the error and these logs before retrying. Do not manually delete or replace Move's firmware files. If an independently changed startup or unknown executable mount is reported, the installer refuses to overwrite it.

About

Move Speech by Andre Louis restores text to Ableton Move's existing accessibility path. Ableton Move firmware and trademarks belong to their respective owners. Downloaded packages contain the patch and installer, not Ableton's native executable.

Andre's software | Project page