Music

Overview

The Amper Artificial Intelligence Composer creates music based on user-provided guidance in the form of a Timeline, which is a hierarchy of JSON objects. Although there are many objects and sub-objects within a timeline, only a minimal subset is required (note that although most objects in the timeline hierarchy have required attributes, the object itself may be optional). When the Composer produces music, it creates a new timeline that is a complete representation of all the decisions it has made.

A timeline consists of zero or more Span objects defined in absolute time. The musical beat at the start time for all a spans is zero. All data within a span is positioned by the beat at which it begins. Times of all tempo changes are relative to the span they exist in.

For all objects where time is defined in beats, the beat is always relative to the start of the parent object. This approach facilitates easy moving, copying, or otherwise altering the position in time of groups of related objects.

If the Composer encounters a fully-populated timeline, no changes are made. In order to request changes to a previously-created timeline, the input must be missing data or contain additional data. However, there are occasional exceptions to this rule for certain objects within a timeline (see Action and Edit).

Methods and URLs

Renders

Method URL Description
GET /v1/renders/{id} Retrieves information for a render
GET /v1/simple_renders/{id} Retrieves information for a simple render
POST /v1/simple_renders Creates a simple render

Compositions

Method URL Description
GET /v1/compositions/{id} Retrieves information for a composition
GET /v1/simple_compositions/{id} Retrieves information for a simple composition
POST /v1/simple_compositions Creates a simple composition

Entities

Method URL Description
GET /v1/entities/descriptor/{entity_id} Retrieves information for an individual descriptor
GET /v1/entities/descriptor Retrieves information for multiple descriptors
GET /v1/entities/band/{entity_id} Retrieves information for an individual band
GET /v1/entities/band Retrieves information for multiple bands
GET /v1/entities/category/{entity_id} Retrieves information for an individual category
GET /v1/entities/category Retrieves information for multiple categories
GET /v1/entities/descriptor/{entity_id} Retrieves information for an individual descriptor
GET /v1/entities/descriptor Retrieves information for multiple descriptors
GET /v1/entities/hit/{entity_id} Retrieves information for an individual hit
GET /v1/entities/hit Retrieves information for multiple hits
GET /v1/entities/instrument/{entity_id} Retrieves information for an individual instrument
GET /v1/entities/instrument Retrieves information for multiple instruments
GET /v1/entities/label/{entity_id} Retrieves information for an individual label
GET /v1/entities/label Retrieves information for multiple labels
GET /v1/entities/tag/{entity_id} Retrieves information for an individual tag
GET /v1/entities/tag Retrieves information for multiple tags