stop_playback
Stop playback in Ableton Live sessions to pause music production or testing. This tool halts the current session playback through the AbletonMCP server.
Instructions
Stop playing the Ableton session.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- MCP_Server/server.py:491-500 (handler)The MCP tool handler for 'stop_playback'. Connects to Ableton remote script via get_ableton_connection() and sends the 'stop_playback' command, returning success or error message.@mcp.tool() def stop_playback(ctx: Context) -> str: """Stop playing the Ableton session.""" try: ableton = get_ableton_connection() result = ableton.send_command("stop_playback") return "Stopped playback" except Exception as e: logger.error(f"Error stopping playback: {str(e)}") return f"Error stopping playback: {str(e)}"
- The actual implementation in the Ableton Remote Script. Called by the MCP server when 'stop_playback' command is forwarded. Invokes self._song.stop_playing() to stop Ableton playback.def _stop_playback(self): """Stop playing the session""" try: self._song.stop_playing() result = { "playing": self._song.is_playing } return result except Exception as e: self.log_message("Error stopping playback: " + str(e)) raise
- MCP_Server/server.py:104-109 (registration)The send_command method recognizes 'stop_playback' as a state-modifying command, adding delays before/after execution for reliable communication with Ableton.is_modifying_command = command_type in [ "create_midi_track", "create_audio_track", "set_track_name", "create_clip", "add_notes_to_clip", "set_clip_name", "set_tempo", "fire_clip", "stop_clip", "set_device_parameter", "start_playback", "stop_playback", "load_instrument_or_effect" ]
- Dispatch logic in the remote script's _process_command method that routes the 'stop_playback' command to the _stop_playback handler.elif command_type == "stop_playback": result = self._stop_playback()