Skip to main content
Glama

duplicate_track

Duplicate an existing track in Ableton Live by specifying its index, enabling quick replication of arrangements, instruments, and settings for music production workflows.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
track_indexYes

Implementation Reference

  • MCP tool handler and registration for 'duplicate_track'. Forwards command to Ableton remote script via socket.
    @mcp.tool()
    def duplicate_track(ctx: Context, track_index: int) -> str:
        try:
            ableton = get_ableton_connection()
            result = ableton.send_command("duplicate_track", {"track_index": track_index})
            return f"Duplicated track '{result.get('original_name')}' to '{result.get('new_name')}' at index {result.get('new_index')}"
        except Exception as e:
            logger.error(f"Error duplicating track: {str(e)}")
            return f"Error duplicating track: {str(e)}"
  • Core implementation of duplicate_track command in Ableton Live remote script. Uses Live's API: self._song.duplicate_track(track_index) to duplicate the track.
    def _duplicate_track(self, track_index):
        """Duplicate a track at the specified index"""
        try:
            if track_index < 0 or track_index >= len(self._song.tracks):
                raise IndexError("Track index out of range")
            
            original_track = self._song.tracks[track_index]
            
            # Duplicate the track
            self._song.duplicate_track(track_index)
            
            # Get the new track (it will be at the next index)
            new_track_index = track_index + 1
            new_track = self._song.tracks[new_track_index]
            
            result = {
                "duplicated": True,
                "original_name": original_track.name,
                "new_name": new_track.name,
                "original_index": track_index,
                "new_index": new_track_index
            }
            return result
        except Exception as e:
            self.log_message("Error duplicating track: " + str(e))
            raise
  • Command dispatch/registration in remote script's _process_command that routes 'duplicate_track' to the handler.
    elif command_type == "duplicate_track":
        track_index = params.get("track_index", 0)
        result = self._duplicate_track(track_index)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Milesy1/MCP-Ableton-API'

If you have feedback or need assistance with the MCP directory API, please join our Discord server