Auto Patch (Windows)
Create Live-Novation-patch.ps1 file with an editor (Notepad) with the following contents at the desktop:
Code: Select all
Read-Host -Prompt "Press any key to start"
$filePath = "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\novation\transport.pyc"
$timestamp = Get-Date -Format "yyyyMMddHHmmss"
$backupFilePath = "$filePath`_backup$timestamp"
Copy-Item -Path $filePath -Destination $backupFilePath
Write-Output "Backed up $backupFilePath"
$fileContent = [System.IO.File]::ReadAllBytes($filePath)
$fileString = [System.Text.Encoding]::Default.GetString($fileContent)
$fileString = [regex]::Replace($fileString, "(?<=current_song_|start_)time", "tim1")
$fileContent = [System.Text.Encoding]::Default.GetBytes($fileString)
[System.IO.File]::WriteAllBytes($filePath, $fileContent)
Write-Output "Patched $filePath"
Read-Host -Prompt "Press any key to exit"
Auto Patch (macOS)
Create Live-Novation-patch.sh text file with an editor (TextEdit with Format>Make Plain Text) with the following contents at the desktop:
Code: Select all
#!/bin/bash
read -n 1 -s -r -p "Press any key to start"
echo ""
file_path="/Applications/Ableton Live 12 Suite.app/Contents/App-Resources/MIDI Remote Scripts/novation/transport.pyc"
timestamp=$(date +"%Y%m%d%H%M%S")
backup_file_path="${file_path}_backup${timestamp}"
cp "$file_path" "$backup_file_path"
echo "Backed up $backup_file_path"
perl -p -i -e 's/(current_song_|start_)time/${1}tim1/g' "$file_path"
echo "Patched $file_path"
read -n 1 -s -r -p "Press any key to exit"
Adjust file_path to your version if necessary. Open Terminal app and run the script with the command:
chmod +x ~/Desktop/Live-Novation-patch.sh && ~/Desktop/Live-Novation-patch.sh
Manual Patch
Backup the original transport.pyc file and restore it if things go wrong, not doing this will require to reinstall Live.
On Windows:
(Live 11) C:\ProgramData\Ableton\Live 11 Suite\Resources\MIDI Remote Scripts\novation\transport.pyc
(Live 12) C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\novation\transport.pyc
On Mac, use this link to locate app folder, should be something like Contents/App Resources/MIDI Remote Scripts/novation/transport.pyc.
Use any hex editor (Notepad++, etc) and NOT Notepad to patch transport.pyc:
- Find and replace current_song_time text with something else of the same length, e.g. current_song_tim1
- (Live 11.2.25+ and 12 only) Find and replace start_time text with something else of the same length, e.g. start_tim1
The edit above is the only fix that is needed. The script can be decompiled with a decompiler like pylingual.io, but this is necessary in this case only to understand what's going on. This is what it looks like:
Code: Select all
def _on_play_button_toggled(self, is_toggled, _):
if is_toggled:
self.song.current_song_time = 0.0
self.song.start_time = 0.0
self.song.is_playing = is_toggled