Skip to main content
Glama

edit_notes

Modify note properties like lyrics, timing, and pitch in Synthesizer V AI vocal tracks to adjust vocal performances.

Instructions

Edit one or more notes

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
trackIdYesID of the track
notesYesArray of notes to edit

Implementation Reference

  • Handler for the 'edit_notes' MCP tool. Validates trackId and notes array, maps note properties to numbers/strings, executes the 'edit_notes' command via file-based IPC to Synthesizer V Studio Lua script, and returns success message or error.
    case "edit_notes": {
      const args = request.params.arguments as any;
      const trackId = Number(args.trackId);
    
      if (isNaN(trackId)) {
        return {
          content: [{
            type: "text",
            text: "Error: Invalid track ID"
          }],
          isError: true
        };
      }
    
      if (!Array.isArray(args.notes) || args.notes.length === 0) {
        return {
          content: [{
            type: "text",
            text: "Error: No notes provided"
          }],
          isError: true
        };
      }
    
      const result = await executeCommand("edit_notes", {
        trackId,
        notes: args.notes.map((note: any) => ({
          id: Number(note.id),
          lyrics: note.lyrics && String(note.lyrics),
          startTime: note.startTime && Number(note.startTime),
          duration: note.duration && Number(note.duration),
          pitch: note.pitch && Number(note.pitch)
        }))
      });
    
      if (result.error) {
        return {
          content: [{
            type: "text",
            text: `Error: ${result.error}`
          }],
          isError: true
        };
      }
    
      return {
        content: [{
          type: "text",
          text: result.message || `${args.notes.length} notes edited successfully`
        }]
      };
    }
  • src/index.ts:331-373 (registration)
    Registration of the 'edit_notes' tool in the ListToolsRequestSchema handler, including name, description, and detailed input schema defining trackId and array of notes with required id and optional lyrics, startTime, duration, pitch.
      name: "edit_notes",
      description: "Edit one or more notes",
      inputSchema: {
        type: "object",
        properties: {
          trackId: {
            type: "string",
            description: "ID of the track"
          },
          notes: {
            type: "array",
            description: "Array of notes to edit",
            items: {
              type: "object",
              properties: {
                id: {
                  type: "number",
                  description: "The ID of the note"
                },
                lyrics: {
                  type: "string",
                  description: "Lyrics text for the note"
                },
                startTime: {
                  type: "number",
                  description: "Start time in ticks"
                },
                duration: {
                  type: "number",
                  description: "Duration in ticks"
                },
                pitch: {
                  type: "number",
                  description: "MIDI pitch (0-127)"
                }
              },
              required: ["id"]
            }
          }
        },
        required: ["trackId", "notes"]
      }
    },
  • Generic helper function used by all tools, including 'edit_notes', to serialize command to JSON file and poll for response from Synthesizer V Studio Lua script.
    async function executeCommand(action: string, params: any = {}): Promise<any> {
      const command = {
        action,
        ...params
      };
    
      await writeCommand(command);
      return await readResponse();
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/ocadaruma/mcp-svstudio'

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