`.
* `422` — Validation Error (invalid or missing `message_id`).
# AI Magic Tools
Source: https://help.soundverse.ai/create/ai-magic-tools
Use AI Magic Tools such as Text to Music, Lyrics Writing or Stem Separation to realize your content dreams quickly. AI magic tools are the tools which will let the creator generate music or audio in a shorter span of time and with great efficiency. With the help of AI magic tools, even amateurs can generate music in one go.
AI magic tools have lyrics generation, stem separation, text to music, extend audio and auto-select.
## Text to music
The "Text to music" feature enables users to type in a prompt, and the AI technology within Soundverse can generate the necessary audio content from that text input. This approach streamlines the content creation process and simplifies music composition, making it accessible to individuals who may not have extensive knowledge of music theory or complex software. Users just need to type the prompt and click on the send button to generate audio. Writing a perfect prompt or explanatory prompt plays an essential role in generating perfect audio.
Here are some tips to draft the perfect prompt-
* Specify the genre- Rock, electronic, house, pop, jazz etc.
* Mention the instruments to be included- Guitar, Bass, Synth, Piano, Drums etc.
* Narrate the vibe of the audio to Soundverse-
Note: For better results mention the speed in bpm to the Soundverse assistant to get the desired output.
* After receiving initial outputs, feel free to iterate and refine your prompt based on the results.
* Don't be afraid to let the AI surprise you. Sometimes, giving it some creative freedom can yield fantastic results.
**Example prompt-**
“In a packed arena, the electric guitar wailed and the drums thundered. The crowd surged with adrenaline as the rock band's energetic performance ignited a rebellious spirit, setting the stage for a night of wild rock 'n' roll rebellion. The speed of the song is very fast!”
Genre: Rock
Vibe: Energetic and rebellious
Instrument: Electric Guitar, Drums
Speed: Very Fast
Story: Song being played in a packed arena
## Stem Separation
The stem separation feature allows users to separate the different elements of a song, such as vocals, drums, and bass. With stem separation, you can separate a mixed audio track into its constituent parts or stems. It is a powerful tool for musicians and producers, as it allows them to isolate and manipulate individual tracks in a mix.
There are multiple ways to do Stem Separation, which are:
### Method 1 (Upload audio)
Press on the options, right to the enter button in the prompt bar.
Select AI magic tools and stem separation in it.
Once Stem separation is selected a dialogue box will open asking for you to
upload the audio for stem separation.
Upload the audio by browsing it from your system, once uploaded it will
prompt with a text and a symbol will appear in the prompt bar..
Click on the send button to get your stems separated, it will automatically
separate bass, guitar, vocals, melody and accompaniment and will give you 5
separate audio results.
### Method 2 (through generated clips)
Type in your prompt and generate audio, click on the dots besides the generated audio.
Select stem separation from the dialog box.
It will automatically generate stems- bass, guitar, drums, melody and accompaniment and show it below the generated audio.
### Method 3 (arrangement view)
Type in your prompt, generate audio and move it to the arrangement view.
The audio gets shifted in the arrangement view, representing the section.
Click on the options of the parent cell, click on stem separation.
It will generate stems- bass, guitar, drums, melody and accompaniment and show it below the parent cell.
### Exporting stems
You can export each cell by clicking on the options and selecting download,
or
Click on the export tab on the upper right side of the studio and download the entire composition.
## Lyrics
Soundverse's lyrics generation feature is a powerful tool that empowers users to effortlessly create customized lyrics for their music compositions. With this feature, users can simply provide the AI with a description of the kind of lyrics they desire, and the AI will work its magic to generate lyrics tailored to their specifications. Whether you're looking for emotional ballads, catchy pop lyrics, or lyrics with a specific theme, Soundverse's AI technology makes the creative process more accessible and efficient. This feature is a game-changer for songwriters and musicians, offering a quick and convenient way to spark inspiration and bring their musical visions to life with original, AI-generated lyrics.
## Extend Audio
Soundverse's Extend Audio feature is a tool that empowers users to break free from the confines of fixed audio lengths. Whether extending the audios generated by Soundverse or uploading their own compositions, musicians can seamlessly experiment and refine their musical narratives. This user-friendly feature provides a dynamic canvas for creative exploration, fostering an environment where the length of composition becomes a malleable element in the artist's toolkit, opening up endless possibilities for collaboration and sonic innovation. Users can extend seamlessly extend their audio in a single click.
Users can extend the audio generated by Soundverse. You can hover over the generated audio, click the options and then select extend audio from the AI magic tool option available. Soundverse’s AI will process this and will generate the output automatically and you will get the desired output in a while.
### Sharing the extended audio
Users have to hover the extended audio, click on options and then with a simple click on the 'Share' button, users can seamlessly generate direct links to their extended audio creations. Also, users get the option to share the audios directly to social media platforms such as Whatsapp etc.
## Auto Select
Now Soundverse Assistant can decide the AI Magic Tool required to process your request! Just type in the prompt mentioning your requirements, select auto in AI Magic Tools and sit back. Soundverse will automatically generate the required output by using the appropriate AI Magic Tool.
## Auto Complete Song
The Auto Complete feature of Soundverse is a game-changing tool designed to simplify the music composition process for users of all levels. With this innovative feature, musicians can now upload their own composition snippets, such as guitar or piano pieces, and seamlessly generate a full-fledged song by providing a simple prompt. Here's how it works:
* Upload Your Snippets: Users can kickstart their creative journey by uploading their own musical snippets, offering a personalized touch to their compositions. Whether it's a guitar riff or a piano melody, your unique musical elements become the building blocks of the full-length composition.
* Craft Your Prompt: The magic begins with your creative input. Users can write a prompt describing how they envision the full song, setting the tone, style, and mood they desire. This can be as simple or detailed as you like, making it accessible for musicians with varying levels of experience.
* Select Your Input Section: Tailor the composition to your liking by trimming and selecting the relevant sections of your uploaded snippets. This feature gives you control over the input, allowing you to curate the elements that will shape the final composition.
* Generate Your Song: Once you've provided your prompt and selected the input sections, Soundverse's Auto Complete feature takes the reins, crafting a full-fledged song based on your specifications. Users can choose the duration of the generated song – be it 1, 3, or 5 minutes – in the style they've envisioned.
With Soundverse's Auto Complete, users can effortlessly transform their musical snippets into polished compositions, offering a creative and streamlined approach to music production. Whether you're a seasoned musician or a novice, this feature gives you endless possibilities, making the composition of music accessible and enjoyable. Explore the endless combinations, experiment with styles, and let Soundverse be your companion in crafting the perfect musical masterpiece.
## Filter to Music
What if you are not aware of the tones, and technicalities of music and are not able to draft an accurate prompt? With this feature, users can now generate music by applying filters such as theme, vibe, genre, instruments, speed and duration. This feature will help you to select everything and help you draft a perfect prompt so you get the desired output. This filter has all of the theme, duration, genre, instruments, vibe and speed which Soundverse can produce. So now it is easier for the novice to generate music with Soundverse just by applying filters!
You can also click [here](https://www.instagram.com/p/C0JFPyLuG8u/) to watch the basic functioning of filter to music.
# AI Studio
Source: https://help.soundverse.ai/create/ai-studio
A Collaborative Audio Visual Environment (CAVE) with generative capabilities, multi-track editing, and real-time collaboration.
## What is AI Studio?
AI Studio is Soundverse's built-in Collaborative Audio Visual Environment (CAVE) with generative capabilities. Think of it as a fully-featured recording and mixing environment that runs entirely in your browser. No downloads, no installations.
Whether you're a first-time creator or a seasoned producer, AI Studio gives you everything you need to record vocals, layer music tracks, add a video score, or collaborate live with teammates — all in one place.
### Features
* **Browser-Based DAW:** No heavy installations required; everything runs in the cloud.
* **AI Integration:** AI tools generate audio, image, and video directly onto the grid of the timeline — your clips appear instantly in place, ready to arrange and mix.
* **Multi-Track Editing:** Layer multiple audio, video, and image tracks simultaneously.
* **Real-Time Collaboration:** Invite teammates to edit the same project at the same time.
* **Cloud Asset Management:** All your recordings, AI-generated clips, and uploads are saved and accessible from one place.
### What Can You Make?
| Workflow | What It Means |
| -------------------------- | ------------------------------------------------------------------------------ |
| **Music Production** | Build beats, layer AI-generated stems, and mix your track. |
| **Voiceover & Podcasting** | Record your voice over a music bed across multiple tracks. |
| **Video Scoring** | Drop in a video and add background music or sound effects to match the action. |
| **Dubbing** | Watch your video in the Preview Panel while you record a localized voiceover. |
***
## Getting Started
### Create a Project
In the left sidebar, look for the **AI Studio** option and click it to open the studio.
Once inside, click **New Project** to start a fresh, empty multi-track canvas.
You can rename your project at any time by clicking on the project name. There are no templates — every project starts blank.
### Open an Existing Project
In the left sidebar, navigate to the **Library** panel.
Inside the Library panel, open the **Projects** tab to see all your saved AI Studio projects.
Click on any project to open it. The studio will restore all your tracks, assets, and the last saved state of your timeline automatically.
***
## Studio Interface Overview
Here's what the AI Studio interface looks like:
The interface is divided into four main areas:
| Area | What's Here |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Left Sidebar** | The Asset Library — your tools and library for audio projects, videos, and other media — alongside the Soundverse AI Assistant. |
| **Left Panel** | Track headers with basic controls: volume slider, mute, and solo buttons. The bottom section shows dedicated track headers for your Image and Video lanes. |
| **Center Area (Timeline)** | The main multi-track arranger where you place and sequence all your clips. |
| **Right Panel (Preview)** | Displays the visual output of your Video and Image tracks, synchronized with the playhead in real-time. |
The studio also has two bars running across the top and bottom of the screen:
* **Top Bar:** Houses project-level actions — collaboration invites, sharing settings, and export options.
* **Bottom Bar:** Contains all playback controls — Play, Pause, Record, and the Metronome toggle — so you can control your session at any time.
***
## Core Concepts
### Projects
A **project** is the container for everything in your session — your timeline, all tracks, and references to every asset you've used. Projects auto-save to the cloud and stay synced with all collaborators in real-time.
You can adjust project-wide settings from the Top Bar:
* **BPM (Beats Per Minute):** The tempo of your project.
* **Time Signature:** How beats are grouped (e.g., 4/4 is standard for most popular music).
* **Sharing & Permissions:** Control who can view or edit your project.
***
### Timeline
The Timeline is your main working canvas. Time flows from left to right — the further right a clip is, the later it plays.
#### Key Timeline Controls
* **Playhead:** The vertical line that marks where playback is currently happening. Click anywhere on the ruler at the top to jump to that moment.
* **Zoom In/Out:** Use the zoom slider or scroll wheel (with a modifier key) to get a close-up or a bird's-eye view of your timeline.
* **Snapping:** When enabled, clips will snap to the nearest beat or second as you drag them — great for keeping everything rhythmically aligned.
***
### Tracks
Tracks run horizontally across the timeline. Each track holds one type of media. Think of each track as a separate "layer" of your final mix.
#### Audio Tracks
Used for vocals, instruments, sound effects, and AI-generated music stems. Each audio track has its own **volume**, **mute**, and **solo** controls in the track header on the left.
#### Video Track
A dedicated track for your reference video. It is helpful for scoring, dubbing, or sound design work. The video plays in sync with the playhead inside the **Preview Panel** on the right. You can import a video from your device or generate one using Soundverse's AI tools.
> AI Studio supports **one active video track** at a time.
#### Image Track
Place static images on the image track — great for podcast cover art, storyboarding, or visual context for your session. You can import images from your device or generate them using Soundverse's AI tools. Stretch image clips to define how long they stay on screen.
***
### Assets
**Assets** are your raw media files — audio (WAV, MP3), video (MP4), or images (PNG, JPEG) — whether uploaded manually or generated by Soundverse AI.
The **Asset Library** lives in the left sidebar and organizes everything into:
* **Folders** — Your own organization structure.
* **AI Generations** — Every clip Soundverse's AI has created for you.
* **Uploads** — Files you've imported from your device.
You can drag and drop any asset directly from the library onto the timeline.
| Previous Projects | Audios |
| :------------------------------------: | :----------------------------------: |
|
|
|
***
## Working with Audio
### Adding Audio to the Timeline
1. Find your clip in the **Asset Library** on the left sidebar.
2. Drag and drop it onto an existing **Audio Track**, or drop it onto the empty space below all tracks to automatically create a new track.
### Editing Audio Clips
Right-click on any clip to select it, which reveals edit handles and opens the clip's properties.
#### Trimming & Splitting
* **Trim:** Hover over the left or right edge of a clip. When the trim cursor appears, drag to shorten or extend the clip.
* **Split:** Move the playhead to the exact moment you want to cut, right-click the clip, and select **Split**. This divides one clip into two independent pieces.
#### Looping Clips
Drag the loop handle (found at the top-right corner of a clip) to repeat it seamlessly. This is especially useful for drum loops or AI-generated beats that you want to play continuously in the background.
#### Volume Controls
* **Track Volume:** Use the volume slider on the left-panel track header to control the overall level of that track.
* **Clip Gain:** Select an individual clip and open the Properties panel to fine-tune its volume independently from the rest of the track.
#### Mute & Solo
* **Mute (M):** Silences just that track. Useful when you want to hear your mix without one element.
* **Solo (S):** Mutes *all other* tracks so you can hear only the soloed track in isolation. Great for checking if a specific part sounds right.
***
## Working with Video
### Adding Video
Drag a video file from the Asset Library and drop it onto the dedicated **Video Track**, or generate a video directly using Soundverse's AI video generator.
### Trimming & Splitting Video
You can trim and split the video clip the same way as audio. Additionally, the audio track embedded in the video file can be **detached** into a separate audio track for independent mixing — so you can mute the original audio and replace it with your own.
### Previewing Video
Make sure the **Right Panel (Preview)** is visible. As the playhead scrubs through the timeline, the video will update in real-time — allowing frame-accurate synchronization between your audio and video.
### Syncing Audio to Video
Use the waveform of the detached video audio as a visual guide. Align your custom sound effects or voiceover by matching them to the peaks and valleys you can see in the waveform.
***
## Working with Images
### Adding Images
Drag an image from the Asset Library onto the **Image Track**, or generate one using Soundverse's AI image generator. This is handy for podcast cover art, visual storyboards, or setting a visual scene.
### Creating a Slideshow
Place multiple images sequentially on the image track to create a slideshow effect that plays in sync with your audio.
### Controlling Image Duration
Drag the left or right edge of an image clip to make it appear on screen for a longer or shorter time.
### Image Preview
All images render in the **Preview Panel** on the right, respecting the timing you've set on the timeline.
***
## Recording
You can record directly into AI Studio from your microphone or any connected audio interface.
### How to Record Audio
Click the settings gear on a track header, or open the Properties panel, and choose your microphone or audio interface input.
Click the **Record Arm** button (the red circle icon) on the track you want to record into. An armed track is "listening" and ready to capture your audio.
Move the playhead to your desired start point, then click the master **Record** button in the top navigation bar. A metronome count-in will play (if enabled) before recording begins.
Enable **input monitoring** to hear yourself through AI Studio as you record.
Always use headphones when input monitoring is on to avoid feedback (the screeching loop sound you get when a mic picks up its own output).
### Common Recording Workflows
#### Recording Vocals Over a Beat
1. Import or generate an AI instrumental from Soundverse and add it to an audio track.
2. Create a new empty audio track for your vocals.
3. Arm the vocal track and press Record.
#### Recording a Podcast or Voiceover
1. Arm a single audio track.
2. Press Record and start speaking.
3. After recording, use the **Trim** and **Split** tools to remove mistakes, long pauses, or breaths.
#### Dubbing a Video
1. Import your video onto the Video Track.
2. Open the **Preview Panel** on the right.
3. Arm an audio track for your voiceover.
4. Press Record and speak while watching the video play — your audio and video stay in sync automatically.
***
## Collaboration
AI Studio supports real-time multiplayer editing — multiple people can work on the same project at the same time.
### Inviting Collaborators
You can easily invite others to your project to work together in real time.
Click the **Invite** button in the top right corner of AI Studio.
Type the email address of your collaborator, choose their access level (Editor, Viewer, or Admin) from the dropdown, and click **Invite**.
Alternatively, you can change the **General Access** from "Restricted" to "Anyone with link" and click **Copy link** to share it directly via chat or social media.
### Roles & Permissions
| Role | What They Can Do |
| ---------- | -------------------------------------------------------------- |
| **Viewer** | Can listen and watch the project, but cannot make changes. |
| **Editor** | Can add/delete clips, record, mix, and rearrange the timeline. |
| **Admin** | Can manage other collaborators and change project settings. |
For Edu/Enterprise Workspaces: Sharing permissions may be governed by your Workspace Administrator's Walled Garden policies.
### Project History & Conflict Resolution
Every action is tracked. You can undo and redo changes at any time. If two collaborators edit the same clip at the exact same moment, AI Studio resolves the conflict automatically — no data loss.
***
## Multi-Channel Input Support
Multi-Channel Input Support is an advanced feature for creators who use external audio interfaces, digital mixers, or complex studio setups.
> **Not sure if you need this?** If you're just recording with a standard USB microphone into your laptop, you don't need this. This feature is meant for setups with multiple microphones, mixers, or situations where your instrument is plugged into a higher-numbered channel on your interface.
### Routing Complex Setups
If you have a microphone or instrument plugged into a higher-numbered input on your mixer (like Channel 3, Channel 24, etc.), you can use **Virtual Audio Routing Software** to seamlessly bring those signals into AI Studio. By using a virtual audio router, you can easily reroute the physical input of your interface into a clean, selectable audio source that AI Studio can detect on Channel 1.
### Supported Software
Based on your operating system, you can use the following virtual audio routing tools to achieve this:
* **Windows:** Voicemeeter Banana, Voicemeeter Potato, VB-Audio Matrix
* **macOS:** Loopback, BlackHole
### How to Connect
Plug your multi-channel audio interface or mixer into your computer via USB.
If your external mixer doesn't appear as individual channels in the browser, use a virtual audio router (such as VB-Audio Matrix) to reroute your mixer's physical inputs to virtual output channels — for example, mapping your mixer's Channel 24 to Virtual Output 1, so AI Studio can see it as a clean, selectable input.
Select your interface (or virtual audio device) as the audio input when your browser asks for microphone permission.
Open the **Input Selection** menu on each track and assign the specific channel you want that track to capture.
### Recommended Setups
| Setup | Best For |
| --------------------------------- | ----------------------------------------------------------------------------------------- |
| **AI Studio + Headphones** | Best for music producers building tracks with AI and existing assets. |
| **USB Mic + AI Studio** | Great for both producers recording vocals and podcasters recording solo episodes. |
| **Multi-input Mixer + AI Studio** | Serious professional setup for recording multiple speakers or instruments simultaneously. |
***
## Exporting Your Work
When you're done, export your project in the format you need.
### Audio Export
Click **Export → Audio**. Choose your format:
* **WAV** — Lossless, highest quality. Best for professional use or further editing.
* **MP3** — Compressed, smaller file size. Good for sharing or uploading to streaming platforms.
AI Studio will render a mixdown of all active tracks, applying your volume, panning, and mute settings.
### Video Export
If your session includes a Video Track, select **Export → Video**. AI Studio renders an **MP4** file combining your original video with the newly mixed audio tracks.
### Project Export
Download a **zip archive** containing the AI Studio project file and all raw assets. Useful for opening stems in a local DAW or a different system.
### Individual Clip Export
Right-click any clip in the **Asset Library** (or on the timeline) and select **Download** to export just that one clip without rendering the entire project.
# DNA - FAQs
Source: https://help.soundverse.ai/create/dna-faqs
## 1. What is DNA?
**DNA** is your artist-trained AI music model on Soundverse.
* Each DNA is built from the music or vocals of a real creator.
* It learns that creator's **sound** – production style, harmonies, groove, textures, and (for voice models) vocal tone.
* You can then generate new songs, instrumentals, or vocals that stay true to that DNA's vibe, while still being original.
There are two main types:
1. **Full DNA**
* Trained on full songs / instrumentals / acapellas.
* Can generate **Song, Instrumental,** and sometimes **Singing** outputs depending on how it's trained.
2. **Voice DNA (Voice Model)**
* Trained only on a singer's voice.
* Used to generate **vocals** or to **replace your own voice** with theirs in a new performance.
## 2. What's the difference between a Full DNA and a Voice Model?
* **Full DNA**
* Trained on your music catalog (songs, instrumentals, acapellas).
* Can generate songs, instrumentals, and sometimes vocals.
* Also exposes Track presets (Song/Vocal/Instrumental Styles).
* **Voice Model (Voice DNA)**
* Trained on your **voice only**.
* Used to generate or replace **vocals** (Singing output).
* Does **not** include your production / instrumental style.
## 3. What are "Song", "Instrumental", and "Singing" outputs exactly?
* **Song**
* Full track: **music + vocals** (where supported).
* **Instrumental**
* Music only, **no lead vocals**.
* **Singing**
* Vocals only, typically using a **Voice Model** or vocal-enabled DNA.
Availability depends on:
* DNA type (Full vs Voice).
* Track type (Song Style vs Instrumental Style vs Vocal Style).
## 4. Why can't I select all three outputs sometimes?
Because the output options respect **what data the DNA/track was trained on**:
* If you pick a **Song Style** track → All three outputs enabled.
* If you pick an **Instrumental Style** track → Only **Instrumental** enabled.
* If you pick a **Vocal Style** track → Only **Singing** enabled.
* If you're using a pure **Voice Model** → Focused on **Singing**.
This prevents you from asking for outputs the model doesn't have proper data for.
## 5. How many files should I upload to build a good Full DNA?
* **Minimum:** 3 tracks.
* But for better quality:
* Aim for at least **5–10 solid, representative tracks** if you have them.
* Up to **hundreds** if you have a large catalog – just note training will take longer.
Always prioritise **quality and consistency** over sheer quantity.
## 6. What kind of audio should I upload for a Voice DNA?
* Clean recordings of **one single speaker/singer**.
* No background music, crowd, or heavy FX.
* At least **2 different files** (under 5 minutes each), ideally more:
* Different phrases.
Different dynamics.
* Mix of natural speech + singing if appropriate.
## 7. What does DNA Sensitivity actually do?
**DNA Sensitivity controls how many AI sub-models we create from your catalog.**
If your catalog spans multiple genres (say **EDM, pop, rock**), DNA Sensitivity tells the system how finely to slice those styles:
* **Higher sensitivity**
* We detect **more nuance and sub-genres**.
* Example: instead of a single "EDM" DNA, you might get separate DNAs like **House, Festival Techno, Synthwave, Future Bass**, etc.
* The same applies to your Pop and Rock material – they can be split into more detailed sub-styles.
* **Lower sensitivity**
* We keep things at a **broader level**.
* Example: you might just get **EDM, Pop, Rock** as three main DNAs, without breaking them into sub-genres.
If you’re unsure what to choose, **leave it at the recommended value** – it’s a balanced setting that works well for most creators.
## 8. What is "Model Quality" in Voice DNA?
For **Voice Models**:
* "Model quality" adjusts how much compute/detail goes into capturing your voice.
* Higher quality = more expressive and accurate voice modelling, at the cost of **longer training**.
* Start with the recommended level and adjust based on results.
## 9. Do I have to stay on the page while DNA is training?
No.
* After uploading audio and starting training:
* **Tagging and categorisation are automatic**.
* You can **close the tab** or **move away**.
* You'll get an **email** when your DNA is ready for review.
## 10. How do I get paid for my DNA?
1. Go to the **Earn** tab.
2. **Connect Stripe** (Stripe Connect account).
3. Build and **publish** your DNA as Public.
4. Ensure **Become Partner** is set to **Yes** (if available in your region).
5. When other users generate content using your DNA, and export it, your share is:
* Calculated according to the **license and price** you chose.
* Shown inside the **Earn** dashboard.
* Paid out via Stripe's payout schedule.
## 11. Can I change my DNA price or visibility later?
In general:
* **Price** – can typically be adjusted later (future uses follow the new price).
* **Visibility** – you can switch between **Public** and **Private**, which:
* Controls whether your DNA is discoverable in **Discover** and usable by others.
Use **My DNA** and the per-DNA options to manage this.
## 12. What rights do users get when they generate with my DNA?
* This depends on the license you selected (e.g., Royalty-free, Distribution).
* In general:
* A **Royalty-free** license supports broad usage but under non-exclusive terms.
* A **Distribution** license focuses on release/monetisation rights via DSPs, etc.
* Users should always check the license label on a DNA before using it commercially.
* As a creator, always choose the license that matches how comfortable you are with people using your sound.
## 13. Can I build multiple DNAs under the same creator profile?
Yes.
* The **Creator Name** is your umbrella identity.
* Under that profile, you can create:
* Multiple **Full DNAs** (e.g., AfroDesi, Piano House).
* Multiple **Voice DNAs** (e.g., different personas, languages, or timbres).
Each DNA can have its own:
* Description.
* DNA Picture.
* Price.
* License.
* Visibility.
* DNA and Track metadata.
## 14. What if I want to test a DNA privately before making it public?
* During **Profile Creation**, set **DNA Visibility = Private**.
* Train and test the DNA using **My DNA** only.
* Once happy, update it to **Public** so it can join Discover and generate revenue.
## 15. Can I use my own DNA to make songs for release?
Yes – that's a core use case.
* Use your own DNA in **Model Based** or **Track Based** mode.
* Generate songs that reflect your signature sound, then:
* Optionally edit / mix / master them in your DAW.
* Release under your artist name, respecting the **Soundverse license** attached to that DNA (which you control).
## 16. What happens after I publish a DNA?
Once you hit **Finalise / Publish**, your DNA doesn't go straight to the store instantly. It goes through a short **review and moderation** process by the Soundverse team:
1. **Internal Review**
* The team checks:
* Audio quality and consistency.
* That the content follows Soundverse's ethical and legal guidelines (no obvious copyright abuse, hate content, etc.).
* That tags, description, and pricing look reasonable.
2. **If there's an issue**
* The Soundverse team will **email you** at your account email.
* They'll explain what needs to be changed (e.g., problematic tracks, unclear rights, inappropriate metadata) and what you can do to fix it.
* You can then adjust the DNA (or your uploads) and resubmit if needed.
3. **If everything is fine**
* Your DNA is **approved** and goes **live in the store**:
* It appears under **My DNA**.
* If set to Public, it can show up in **Discover** (Top Creators / Top DNAs) and be used by other creators in the DNA generation panel.
* From that point, usage of your DNA can start generating **royalties** for you (as per your license, price, and Stripe setup).
# DNA - Help Center
Source: https://help.soundverse.ai/create/dna-help-center
## Part A – For Music Creators Using DNA
### 1. What is DNA?
**DNA** is your artist-trained AI music model on Soundverse.
* Each DNA is built from the music or vocals of a real creator.
* It learns that creator's **sound** – production style, harmonies, groove, textures, and (for voice models) vocal tone.
* You can then generate new songs, instrumentals, or vocals that stay true to that DNA's vibe, while still being original.
There are two main types:
1. **Full DNA**
* Trained on full songs / instrumentals / acapellas.
* Can generate \*\*Song, Instrumental, \*\*and sometimes **Singing** outputs depending on how it's trained.
2. **Voice DNA (Voice Model)**
* Trained only on a singer's voice.
* Used to generate **vocals** or to **replace your own voice** with theirs in a new performance.
### 2. The DNA Generation Panel
When you click **Create** on a DNA (or open DNA from within the agent / studio), you see the **DNA panel**.
Main pieces:
1. **Mode Toggle**
* **Model Based** – use the **whole DNA model** as one big style generator.
* **Track Based** – use **Song Styles, Vocal Styles,** or **Instrumental Styles** as more granular starting points.
2. **Model Area**
* Shows the selected **DNA cover art** and **name** (e.g., Cyberpunk Synth).
* This tells you which DNA you're generating from.
3. **Select the output**
* Buttons: **Song · Instrumental · Singing**
* This chooses what you want to generate (full track / instrumental only / vocals only).
4. **Prompt Type**
* Toggle: **Describe your song / Lyrics**
* **Describe your song** – write a vibe / scenario prompt
"Euphoric synthwave track for night driving, 120 BPM, big drums, emotional lead."
* Lyrics – paste your lyrics, and optionally add a short style line at the top
"emotional cyberpunk ballad about distance and hope"
5. **Prompt Box**
* Large text field where you write your description or lyrics.
6. **CREATE button**
* Starts the generation with the selected DNA + mode + output + prompt.
### 3. Model Based vs Track Based
**3.1 Model Based**
* You're using the entire DNA model as your style.
* Best when you:
* Want the DNA to decide structure and arrangement.
* Just care about "make this feel like \[creator]" rather than micro-controlling sections.
* Steps:
1. Choose **Model Based**.
2. Pick your **output** (Song / Instrumental / Singing – subject to what the DNA supports).
3. Choose **Describe your song** or **Lyrics**.
4. Type your prompt and hit **CREATE**.
**3.2 Track Based**
Track Based lets you choose specific style presets inside the DNA.
At the top you'll see three columns:
* **Song Styles** – full song presets (structure + groove + vibe).
* **Vocal Styles** – vocal performance styles.
* **Instrumental Styles** – instrument-only textures.
Each entry (e.g., Memories, Signal Drift, Synth.wav – Neon Ghosts) has:
* A name.
* A short tag line (mood, adjectives, influences).
You choose a track style, then set the output.
**Output availability logic (important):**
* When you select a **Song Style** track → **All three outputs** are available: **Song, Instrumental, Singing** (because the preset contains full musical + vocal context).
* When you select an **Instrumental Style** track → Only **Instrumental** output is available. Song & Singing will be disabled, since there's no vocal context.
* When you select a **Vocal Style** track → Only **Singing** output is available. You'll generate vocals in that style.
So the rule of thumb:
* **Song styles** = everything allowed
* **Instrumental styles** = instrumentals only
* **Vocal styles** = vocals only
Then, as with Model Based:
1. Pick **Describe your song** or **Lyrics**.
2. Write the prompt.
3. Hit **CREATE**.
### 4. Discover, Earn, and My DNA
You'll see three main sections in the DNA experience:
**4.1 Discover**
This is where you **browse** and **explore** existing DNAs.
1. **Top Creators**
* Carousel of featured artists (e.g., Ash Pournouri, BlueNucleus).
* Each card shows:
* Creator image.
* Name.
* A short description of their sound.
2. **Top DNAs**
* Grid of individual DNA models (e.g., EDM, Piano House, Progressive House).
* Each DNA card shows:
* Artwork.
* DNA name.
* "by \[Creator Name]" + a short style description.
3. **Search**
* Search bar (e.g., "Search creators…" or "Search DNA models…").
* Type an artist name, DNA name, or keyword to find a specific sound.
Use Discover when you want to:
* Find a new style to write in.
* See what's trending or featured.
* Explore artists who've trained their own DNA.
**4.2 Earn**
The Earn tab is primarily for DNA creators, but it's useful context as a user to understand how the ecosystem works.
Here's what you see:
1. **Step 1 – Link Stripe Connect Account**
* Button: **Connect Stripe**.
* Creators link a Stripe account to receive royalties from their DNAs.
2. **Step 2 – Build Your DNA, Expand Your Reach**
* Short explanation of the creation process:
* **Train Your DNA** – upload catalog and train a custom AI model.
* **Set Your Price** – choose how much to charge per export (e.g., $0.99–$9.99).
* **Our Team Reviews** – Soundverse reviews each DNA for quality and ethics.
**Step 3 – Get Paid, Transparently**
* Creators can track:
* How often their DNA is used.
* How much they've earned.
* When payouts are scheduled.
As a **user**, the takeaway is simple:
When you use a DNA, you're supporting the artist behind it. Revenue goes back to the creator based on the license and price they've chosen.
**4.3 My DNA**
This is your **personal library** of DNA assets.
* Title: **MY DNA – Your personal AI music models for creating unique sounds.**
* **Tabs:**
* **DNAs** – your full DNA models.
* **Voice Models** – your voice-only DNAs.
* **Dreampacks** – curated packs/bundles (if available to you).
**Search bar:**
* "Search DNA by name, description, or status…"
Each DNA card shows:
* Cover image.
* DNA name.
* Short description.
* A status label (e.g., **Public** or **Private**).
Use **My DNA** to:
* Generate quickly from your own models.
* Check which DNAs are public vs private.
* Manage your personal artist AI presence on Soundverse.
### 5. Models, Tracks, Voice Models (Conceptual Overview)
You'll see these three concepts across the product:
1. **Models**
* These are **full DNAs** (artist-trained AI models).
* Used in **Model Based** mode.
* Think "whole artist brain in a box" – sound, structure, feel.
2. **Tracks**
These are **style presets extracted from DNAs**:
* **Song Styles** – preconfigured full-song feels.
* **Vocal Styles** – types of vocal performances.
* **Instrumental Styles** – instrument-only moods/textures.
Used in **Track Based** mode to give you more control over which part of the DNA you use.
3. **Voice Models**
These are **voice-only DNAs**.
Used when:
* You want the DNA to sing your lyrics.
* You want to replace your voice with a specific artist's voice (where allowed).
Typically mapped to the **Singing** output.
## Part B – For DNA Creators (Artists & Producers)
This section explains how to **build and monetize your own DNA** on Soundverse.
### Overview of the Creation Flow
Creating a DNA is a **6-step process**:
1. Profile Creation
2. Upload
3. DNA Sensitivity / Voice Model Quality
4. Tagging & Categorisation
5. Review
6. Finalise & Publish
There are two creation paths:
* **Full DNA** – trains a full music model (and its track presets: song, instrumental, singing).
* **Voice DNA (Vocal Model only)** – trains only the voice, for singing / voice replacement.
### Step 1 – Profile Creation
From the DNA interface, choose **Build DNA by uploading audio tracks**.
You'll see the **Profile Creation** screen.
**1.1 Creator Profile**
* **Creator Name**
* **Dropdown + text input**:
* "Name such as Coldplay or type your own"
* **Option A – Select existing profile**:
* If you've created a profile before, choose it from the dropdown.
* Your existing info (description, picture, etc.) is automatically filled.
* **Option B – Create a new profile**:
* Type a new artist/creator name.
* **Description**
* Short description of the creator (up to 300 characters).
* Example: "EDM artist blending melodic house with cinematic textures."
* **Upload Picture**
* Add a square creator image (photo, logo, or illustration) that will show on Discover & My DNA.
**1.2 DNA Settings**
These settings belong to this DNA instance:
* **Tags**
* Free-text tags (type and press comma/Enter).
* Use genres, moods, instruments, and use-cases:
* "electronic, EDM, chill, dark, cinematic"
* **DNA Visibility**
* At least Public is available; typically:
* Public – visible on Discover & usable by others.
* Private – only visible in your My DNA.
* Use Public if you plan to monetize and let others generate with it.
* **Price**
* Dropdown with price points (e.g., $0.99–$9.99).
* This is the price per export or per defined unit, depending on the product setup.
* You can start lower to encourage adoption and raise later.
**License**
This dropdown controls what users are allowed to do with tracks generated using your DNA.
Options: Royalty free, Sample, Distribution, Sync, Full ownership.
Pick the minimum level you're comfortable granting to people who use your DNA.
1. Royalty Free
* One-time fee; no recurring royalties to you or other rights-holders each time the track is used.
* Great for background/underscore in YouTube videos, streams, social clips, podcasts, web & mobile apps, internal company videos, presentations, etc.
2. Sample
* Includes everything in Royalty Free, plus the right for users to sample, loop, chop and layer the AI audio inside a larger track they create and distribute to DSPs, as long as the AI portion is not 100% of the final song.
* Ideal for beatmakers, game/film composers, meditation music, producers adding their own vocals/instruments.
* Users cannot resell the raw AI file on its own, create sample packs from it, or market it as a standalone asset.
3. Distribution
* Builds on Sample rights and explicitly allows users to release finished songs (with some human accompaniment) to Spotify, Apple Music, TikTok, etc. under their artist name.
* Aimed at creators who want to publish tracks publicly without worrying about recurring royalties to Soundverse, provided they follow the licence rules.
4. Sync
* Covers using the music in film, TV, streaming shows, games, adverts, trailers, branded content and other "music-to-picture" uses, with sync + mechanical rights included.
* Best suited when your DNA is likely to be used by agencies, production houses, or SaaS video tools.
5. Full Ownership
* The strongest licence: the user gets exclusive ownership of the generated audio. They can perform it live, resell it, press vinyl/CD, add it to stock libraries, or use it across any media without needing further clearance from Soundverse.
* Soundverse does not claim royalties later on tracks properly covered by a Full Ownership licence.
* **Tracks Visibility**
* Example value: Visible.
* Controls whether the uploaded Track (Song Styles / Vocal Styles / Instrumental Styles) are visible to users in Track Based mode. If this is hidden, users can't see the tracks that were used in making the DNA.
7. **Become Partner**
* Yes/No.
* "Yes" typically opts you into the Soundverse Partner / Revenue-share program, where you can earn from users who generate via your DNA.
Once everything looks correct, click Done.
You'll move to Step 2 – Upload Audio.
### Step 2 – Upload Audio (Build Full DNA or Voice DNA)
On this step, you choose **what kind of DNA** you want to build.
**2.1 Build Full DNA**
Use this to create a **Full DNA** (music style + structure + optionally vocal feel).
Panel shows:
* Button: **Build Full DNA**
* Instructions (visible in the UI), summarised:
* Upload **songs**, **instrumentals**, or **acapellas** to create a complete DNA model.
* Minimum: 3 audio files (any duration).
* Maximum: 1000 files.
* More files ⇒ better results, but longer training.
* Supported formats: .mp3, .wav
**Best practices:**
* Upload tracks that **represent your real sound** today.
* Variety is good:
* Different tempos / keys / moods.
* But all still recognisably "you".
* Avoid:
* Covers you don't fully own rights to.
* Low-quality rehearsal recordings, unless that's your intended aesthetic.
When you upload for Full DNA, the system will, after training:
* Train the core model, controlled later via DNA Sensitivity.
* Create track presets (Song Styles, Instrumental Styles, Vocal Styles) from your catalog that users see in Track Based mode.
**2.2 Build Voice DNA (Vocal Model Only)**
Use this to create an only-voice DNA.
Panel shows:
* Button: **Build Voice DNA**
* Instructions (visible in the UI), summarised:
* Upload clean vocal recordings (no background music).
* Minimum: 2 files (same speaker) required.
* Each file should be under 5 minutes.
* Only one speaker per file (multiple voices confuse the model).
* More diverse recordings ⇒ better results.
**Best practices:**
* Use studio or clean home-recorded takes (no reverb, no heavy effects if possible).
* Include:
* Different vowels and consonants.
* Different dynamics (soft / loud).
* Casual speech + singing if allowed.
Once your audio is uploaded and you're happy with the list, proceed to Step 3.
### Step 3 – DNA Sensitivity / Voice DNA Quality
This step configures how the model trains.
**3.1 For Full DNA – DNA Sensitivity**
You'll see a slider for DNA Sensitivity, which corresponds to training epochs.
* Range: 0 to 350
* Recommended default: 150
Practical meaning:
* Lower values (e.g. 50–100)
* Train faster.
* DNA is looser – more variation, slightly less "locked" to your exact catalog.
* Medium values (around 150 – recommended)
* Good balance between:
* Capturing your signature sound.
* Still allowing creative variation.
* Higher values (250–350)
* Train longer.
* DNA becomes very specific to your catalog.
* Great if you want extreme fidelity; may be less forgiving to out-of-distribution prompts.
Also note:
* More audio + higher sensitivity = longer training time.
* If you're unsure, start at 150. You can always iterate later with a different sensitivity.
**3.2 For Voice DNA – Model Quality**
For voice-only DNAs, instead of sensitivity you'll be asked to pick Model Quality.
Conceptually:
* Lower quality = faster training, lighter model.
* Higher quality = more accurate voice capture, more detail.
Because exact values/levels might change over time, use the in-app description near the selector, and:
* Start at the recommended option.
* If you need more nuance (e.g., complex runs, vibrato), you can later try a higher quality setting.
### Step 4 – Tagging & Categorisation (Automatic)
Once training is triggered:
* Soundverse automatically runs tagging and categorisation for your DNA:
* Categorizes audios into song, instrumentals and vocal tracks
* Extracts descriptors like genres, moods, energy, instrumentation, era, etc. based on your audio.
* Generates human-readable tags and style blurbs.
From your side:
* You don't have to stay on the page.
* You can safely close the window or navigate away.
You'll be notified via email/ or a mobile notification (if you have the app) when:
* Training is complete.
* Tagging & categorisation are done.
* Your DNA is ready for Review (Step 5).
### Step 5 – Review
In Review, you see a complete summary of your DNA:
Likely items (based on earlier steps):
* DNA name.
* Creator profile & picture.
* Description.
* Tags (genre, mood, etc.).
* Output types enabled (Song / Instrumental / Singing).
* Price.
* License.
* Visibility (Public / Private).
* Track presets (Song Styles / Vocal Styles / Instrumental Styles) derived from your catalog.
What you should do here:
* **Check naming**
* Is the DNA name clear and unique?
* Does it reflect the vibe (e.g., AfroDesi, Neon Hearts)?
* **Refine description**
* Short, punchy, and descriptive:
* "Emotional synthpop with retro drums and lush pads."
* **Clean up tags**
* Remove irrelevant ones.
* Add missing but important ones.
* **Verify license & price**
* Make sure the **license type** matches your business intent.
* Ensure the price is something you're comfortable with for the value offered.
When everything looks correct, move to **Finalise**.
### Step 6 – Finalise & Go Live
In the last step:
* You confirm all details and click Finalise / Publish.
* Your DNA is:
* Saved to My DNA.
* Set to Public or Private as chosen.
* If Public and approved:
* Eligible to appear in Discover (Top Creators, Top DNAs).
* Available in the DNA panel for users to generate music.
* If you have Stripe connected and are part of Become Partner = Yes:
* Your DNA is now ready to earn royalties when used by others.
* Usage and earnings will show in the Earn section.
# Studio Agent FAQ
Source: https://help.soundverse.ai/create/studio-faq
## **What is Soundverse Agent?**
**Soundverse Agent** is a conversational “AI producer” that can:
* Use all Soundverse creation tools (Song / Music / Lyrics / Singing / DNA / Melody-to-Song / MIDI-to-Song, etc.).
* Use modification tools (Stem Separator, Inpainting, Extend, Section Analysis, Voice Swap, Voice to Instrument, Similar Music/Song, etc.).
* Analyze key / tempo and change them.
* Apply audio effects (EQ, reverb, delay, compressor, distortion, etc.).
* Layer and merge audio.
* Use system abilities (web search, YouTube URL extractor, record / upload / library selection)
* Maintain context across messages, so follow-ups like “make it a little louder” refer to the last thing you changed.
You always talk to it in natural language. There is no strict syntax.
## **1. General “How do I talk to Agent?” questions**
### **Q1. How do I reference audio?**
You can say:
* “Use **this** track as reference” (after uploading / recording / choosing from library).
* “Take the **song we just generated**…”
* “On the **last track**, make the vocals louder.”
* “Use the **YouTube link I just pasted** as reference.”
* “Use my **DNA model ‘DNA Name’** for style.”
Agent keeps track of the current working song / section unless you switch.
###
### **Q2. How does context memory work?**
Example:
1. “Add reverb to the entire track.”
2. Agent applies reverb.
3. “Increase it a little more.”
* Agent understands “it” = the reverb you just added.
4. “Now only keep that reverb on the choruses.”
* Agent uses Section Analysis + effects automation to target choruses.
## **2. Commands by Tool**
Below, for each tool/capability we list **what it does** and **example things you can say**.
### **2.1 Song, Music & Vocal Generation**
#### **2.1.1 AI Song Generator (lyrics → full song with vocals)**
**What it does:** Turns your lyrics (or prompts that include lyrics) into a full song with vocals.
**Things you can say:**
* “Turn these lyrics into a pop song with female vocals in 120 BPM, about 3 minutes long.”
* “Make a dark synthwave song from these lyrics. Keep the chorus big and atmospheric.”
* “Use my lyrics and generate a rock ballad with a long guitar solo at the end.”
* “Generate a Hindi pop song from this verse and chorus, keep it radio-friendly and under 3 minutes.
* “Make a duet version of these lyrics: one male, one female voice, trading lines in the verses.”
You can combine with other constraints:
* “Use my DNA model for the production style, but keep the vocals generic.”
* “Render this in V5 streaming so I can quickly preview it while we edit.”
#### **2.1.2 AI Music Generator (text → music, mostly instrumental)**
**What it does:** Generates music from a text description (instrumental or minimal vocals).
**Things you can say:**
* “Create a 2-minute ambient synth track, 90 BPM, for a sci-fi game menu.”
* “Make a high-energy EDM drop in G minor, 128 BPM.”
* “Generate a chill lo-fi beat with vinyl crackle, slow tempo, for studying.”
* “Give me a cinematic orchestral build-up that resolves after 30 seconds.”
* “Create a soft piano + strings background loop for meditation, around 1 minute and loopable.”
#### **2.1.3 AI Lyrics Writer**
**What it does:** Writes lyrics or rewrites/extends existing lyrics.
**Things you can say:**
* “Write a verse and chorus for a trap song about the football World Cup in Spanish.”
* “Extend these lyrics with a second verse and a bridge, same rhyme scheme.”
* “Rewrite this chorus to be more uplifting but keep the same number of syllables.”
* “Turn this English verse into Hindi, preserving rhyme and rhythm as much as possible.”
* “Give me 10 alternative chorus ideas for this theme: heartbreak but self-empowered.”
You’ll often combine this with **AI Singing Generator** or **Inpainting** to get the audio.
#### **2.1.4 AI Singing Generator**
**What it does:** Takes lyrics (or generated text) and creates realistic singing/spoken vocals.
**Things you can say:**
* “Sing these lyrics in a soft female pop voice, mid-range, no ad-libs.”
* “Generate a rap delivery of these lines in Spanish, keep it tight and rhythmic.”
* “Resing just the chorus in a more powerful belting style.”
* “Make a spoken-word version of this poem over a subtle pad.”
* “Generate backing harmonies for this chorus: one above, one below the lead.”
Often used together with **Stem Separator**, **Voice Swap**, **Inpainting**, and **Section Analysis**.
#### **2.1.5 Melody to Song**
**What it does:** Turns a melody (hummed, sung, or played) into a full musical arrangement.
**Things you can say:**
* “Here’s me humming a melody—turn this into a full synthwave track with drums and bass.”
* “Use this whistled melody as the main hook of a funk song.”
* “Take this melody and build a Bollywood-style orchestration around it.”
* “Turn this melody into a sad piano ballad with minimal percussion.”
You’ll first record or upload the melody.
#### **2.1.6 MIDI to Song**
**What it does:** Uses a MIDI file (chords, melody, progression) and generates a full song.
**Things you can say:**
* “Here’s a MIDI chord progression. Turn it into a deep house track, 122 BPM, with a strong bassline.”
* “Use this MIDI melody as the lead for a trap beat.”
* “Take these chords and make a gospel-inspired arrangement with choir and organ.”
* “Turn this MIDI into a cinematic trailer cue with big drums and strings.”
#### **2.1.7 DNA: Generate & Build**
**What it does:** Uses your DNA models (trained on your songs) to generate in your own style; or builds new DNA from your catalog.
**Things you can say:**
* “Generate 10 song ideas in my ‘BlueNucleus DNA 01’ style, each around 1 minute.”
* “Make a new track using my ‘Lo-fi DNA’ but slower, around 85 BPM.”
* “Train a new DNA model from these 15 tracks I’m uploading called ‘New Album DNA’.”
* “Use my DNA model but make the drums more acoustic and less electronic.”
* “Generate only instrumentals in my DNA style, no vocals.”
You’ll combine with AI Music / Song Generator when specifying more details.
#### **2.1.8 Model Selection (V5 streaming, v4.5 Asian Languages)**
**What it does:** Lets you influence which underlying model/engine Agent uses.
**Things you can say:**
* “Use the V5 model with streaming so I can hear it while it’s generating.”
* “Use the v4.5 model with Hindi/Punjabi support for these lyrics.”
* “Regenerate this but with the higher quality model you used earlier.”
### **2.2 Music Modification, Editing & Analysis**
#### **2.2.1 Stem Separator**
**What it does:** Splits a mixed song into vocal and instrument stems (and possibly multiple instrument stems like drums, guitar, etc., depending on your configuration).
**Things you can say:**
* “Split this track into stems: vocals, drums, bass, other instruments.”
* “Isolate the vocals so we can replace or edit them.”
* “Separate the guitar track so we can add effects only to the guitar.”
* “Give me a version with vocals removed (instrumental).”
* “Give me a version with only drums and bass.”
#### **2.2.2 Extend Music**
**What it does:** Extends a track while keeping style and motifs consistent.
**Things you can say:**
* “Extend this song from 2 minutes to 3:30.”
* “Add a longer intro build-up before the beat drops.”
* “Give me a 30-second outro that feels like a fade-out.”
* “Loop this synth section for another 16 bars before the chorus.”
* “Turn this 15-second idea into a full-length 2-minute track.”
#### **2.2.3 Inpainting (Song & Instrumental)**
**What it does:** Rewrites selected parts of a track, keeping the rest intact.
**Things you can say:**
* “Rewrite just the second half of this verse; keep the rest of the song as-is.”
* “Give me 3 alternate versions of this chorus melody.”
* “Fix this off-key vocal phrase between 0:52 and 0:58.”
* “Replace the drop with a more minimal version, but keep the build the same.”
* “Change the chord progression in the bridge but leave the vocals unchanged.”
You’ll usually specify **time ranges or sections** (e.g., “second verse”, “first chorus”).
#### **2.2.4 Section Analysis**
**What it does:** Detects structural sections like intro, verse, chorus, bridge, drop, etc.
**Things you can say:**
* “Analyze this track and show me the sections: intro, verse, chorus, bridge, outro.”
* “Identify all the choruses so we can edit them.”
* “Tell me where the drops are in this track.”
* “Mark the sections where vocals are present vs instrumental only.”
* “Show me which part could work as a loop for TikTok or Reels.”
Section Analysis is often Step 1 for many edits.
#### **2.2.5 Key & Tempo Detection / Change**
**What it does:** Detects BPM & key, and changes tempo and/or pitch.
**Things you can say:**
* “What is the BPM and key of this track?”
* “Increase the tempo by 10% but keep the pitch the same.”
* “Change the BPM from 100 to 120.”
* “Shift the key up by 2 semitones.”
* “Move this song from C minor to E♭ minor.”
* “Match the tempo and key of this song to that reference track.”
You can also chain instructions:
* “Find the BPM and key of this track, then generate an instrumental in the same BPM and key.”
#### **2.2.6 Effects Engine (Compressor, Reverb, EQ, etc.)**
**AvailableEffects:**
`[`\
`"compressor",`\
`"limiter",`\
`"gain",`\
`"high_pass",`\
`"low_pass",`\
`"peak_eq",`\
`"high_shelf",`\
`"low_shelf",`\
`"reverb",`\
`"delay",`\
`"chorus",`\
`"phaser",`\
`"distortion"`\
`]`
**Things you can say:**
* “Add a bit of reverb to the lead vocal.”
* “Make the whole mix slightly louder, around +1 dB.”
* “Use a high-pass filter on the vocals at 100 Hz to remove rumble.”
* “Warm up the master with a gentle low-shelf boost around 200 Hz.”
* “Make the track sound ‘underwater’.”\
→ Agent might apply **low-pass**, **reverb**, maybe **chorus**
* “Make it sound ‘spacey’ and wide.”\
→ Agent uses **reverb**, **delay**, **chorus/phaser**.
* “Add gentle compression to glue the mix together.”
* “Put a limiter on the master so it doesn’t clip.”
* “Add some distortion to the guitar to make it more aggressive.”
* “Open up the high end of the hi-hats with a high-shelf boost.”
You can then refine with context:
* “Increase the reverb just a little more on the chorus vocals.”
* “Undo the distortion but keep the EQ changes.” (If you implement selective removal.)
#### **2.2.7 Merge Audio (Concatenate)**
**What it does:** Puts clips/tracks one after another.
**Things you can say:**
* “Place this new chorus after the existing one.”
* “Join these three ideas into one track: first A, then B, then C.”
* “Attach this outro after the main song.”
* “After 1 minute, append this instrumental as an extended outro.”
#### **2.2.8 Audio Layering (Stacking / Mixing)**
**What it does:** Stacks tracks on top of each other.
**Things you can say:**
* “Layer this vocal take on top of the main vocal for double-tracking.”
* “Add these new backing vocals under the chorus.”
* “Put this beat under the acapella we extracted.”
* “Blend this pad subtly behind the verses only.”
### **2.3 Controlled Generation Tools**
#### **2.3.1 Voice Swap**
**What it does:** Changes one vocal performance into another voice style.
**Things you can say:**
* “Replace this singer’s voice with my voice model.”
* “Turn this male vocal into a female vocal with a softer tone.”
* “Swap the verse vocals into a gritty rock voice, but keep the chorus as it is.”
* “Use my ‘Creator Voice 01’ for all the leads, and keep backups generic.”
Usually combined with **Stem Separator** and **Section Analysis**.
#### **2.3.2 Voice to Instrument**
**What it does:** Converts a vocal performance into an instrument (e.g., sitar, drums, bansuri, guitar).
**Things you can say:**
* “Turn this hummed melody into a sitar line.”
* “Convert this sung hook into an electric guitar riff.”
* “Use this vocal rhythm to drive a drum pattern.”
* “Turn this vocal line into a bansuri melody layered over the mix.”
#### **2.3.3 Similar Music Generator**
**What it does:** Generates music in the style of a reference track (usually instrumental / production focus).
**Things you can say:**
* “Generate a new synthwave track in the style of this reference track.”
* “Make a similar lo-fi beat but with a different melody.”
* “Create a techno track inspired by this YouTube link, but don’t copy the chords.”
* “Generate 10 background music variations in the style of this game soundtrack.”
You’ll typically supply **reference audio** via upload or YouTube URL extractor.
#### **2.3.4 Similar Song Generator**
**What it does:** Creates full songs (structure, vibe) in a similar style to a reference.
**Things you can say:**
* “Create a song in a similar style to this track, but with new melodies and chord progressions.”
* “Give me 5 variations inspired by this reference but slower and more mellow.”
* “Make a similar Bollywood song but in Punjabi instead of Hindi.”
* “Generate 3 similar songs for this reference that I can use as demos.”
### **2.4 System-Level Tools**
#### **2.4.1 Web Search API**
**What it does:** Fetches up-to-date info from the web.
**Things you can say:**
* “Show me the current trending songs in the world.”
* “What are the top Afrobeats tracks this month?”
* “Find popular synthwave tracks released this year.”
* “What’s trending in Latin trap right now?”
Agent can then use those references to guide style for generation.
#### **2.4.2 YouTube URL Extractor**
**What it does:** Takes a YouTube URL and extracts audio as reference.
**Things you can say:**
* “Use this YouTube song as a reference for vibe: \[paste URL].”
* “Extract the audio from this link and make a similar instrumental.”
* “Take the structure of this song and suggest a similar arrangement for my track.”
#### **2.4.3 Recording, Upload, Library Selection**
**What it does:** Gets audio into the system.
**Things you can say:**
* “Record my voice, I’ll sing a hook.”
* “Use the file I just uploaded as the main track.”
* “Open my library and use the song ‘demo\_05’ as reference.”
* “Record 20 seconds of humming; then turn it into a song.”
## **3. Example Workflows (with Tool Sequences)**
Below are concrete multi-step workflows. For each, we show:
* **User ask**
* **Example prompts**
* **Tool sequence Agent uses**
### **3.1 Trend-based Generation**
#### **Workflow 1 – See global trending songs**
**User ask:** “Show me the current trending songs of the world.”
**Tool sequence:**
1. **Web Search API** → query global charts (e.g., “current top songs worldwide”).
2. Agent summarizes results for the user (titles, artists, styles).
#### **Workflow 2 – Generate 10 synthwave songs in trending style**
**User ask:**\
“In the style of today’s trending songs in synthwave, generate 10 new synthwave songs.”
**Tool sequence:**
1. **Web Search API** → find trending synthwave / related tracks.
2. **YouTube URL Extractor** → optionally pull audio for some of those tracks.
3. For each new song:
* **Similar Music Generator / Similar Song Generator** → create new synthwave tracks inspired by those references.
* Optionally **AI Music Generator** → fine-tune prompts (tempo, mood).
4. Present 10 generated synthwave songs.
### **3.2 Direct Prompted Song Creation**
#### **Workflow 3 – Trap song about football World Cup in Spanish**
**User ask:**\
“Make a trap song about football worldcup in Spanish.”
**Example prompts:**
* “Write Spanish trap lyrics about the World Cup, high energy, stadium vibe.”
* “Turn these lyrics into a full trap song.”
**Tool sequence:**
1. **AI Lyrics Writer** → generate Spanish trap lyrics.
2. **AI Song Generator** → create full trap song with Spanish vocals based on those lyrics.
3. (Optional) **Section Analysis** → show user structure.
4. User can then ask for edits (inpainting, effects, etc.).
#### **Workflow 4 – Generate 10 songs in my DNA style**
**User ask:**\
“Generate 10 songs in my DNA style.”
**Tool sequence:**
1. **DNA Generation** → select given DNA model (e.g., “BlueNucleus DNA 01”).
2. For each of 10 tracks:
* **AI Music Generator / AI Song Generator** with DNA model as style.
3. (Optional) **Section Analysis** → return structures or loops for quick listening.
### **3.3 Voice Replacement & Vocal Editing**
#### **Workflow 5 – Replace song’s vocals with my voice**
**User ask:**\
“Replace this song’s vocals with my voice.”
**Tool sequence:**
1. **Stem Separator** → isolate existing vocals and instruments.
2. **Voice Swap** → apply user’s voice model to the vocal stem; or
* **AI Singing Generator** → resing using user’s custom voice if supported.
3. **Layering / Merge** → combine new vocal with instrumental.
4. (Optional) **Effects Engine** → match tone (EQ, compression, reverb).
#### **Workflow 6 – Increase volume of vocals in second chorus by 1 dB**
**User ask:**\
“Increase the volume of vocals on second chorus by 1 decibel.”
**Tool sequence:**
1. **Section Analysis** → detect all choruses and locate second chorus region.
2. **Stem Separator** → get vocal stem (if not already isolated).
3. **Effects Engine (gain)** → apply +1 dB gain to vocal stem in second chorus region only.
4. Return result; user may say:
* “A bit more” → Agent increases gain slightly again, same region.
#### **Workflow 7 – Generate verse with new lyrics alternative**
**User ask:**\
“Generate verse with new lyrics alternative.”
**Tool sequence:**
1. **Section Analysis** → locate the verse you want to replace.
2. **AI Lyrics Writer** → create new verse lyrics (matching theme / syllables).
3. **AI Singing Generator** → sing the new verse.
4. **Inpainting** → replace original verse audio with new verse, keeping surrounding sections intact.
### **3.4 Structural Edits & Looping**
#### **Workflow 8 – Repeat the chorus twice**
**User ask:**\
“Repeat the chorus twice.”
**Tool sequence:**
1. **Section Analysis** → identify chorus region(s).
2. **Merge Audio (concatenate)** → duplicate chorus region and place second copy right after first.
3. (Optional) **Inpainting** → smooth transitions in/out of duplicated chorus.
#### **Workflow 9 – Turn chorus into a perfectly loopable section**
**User ask:**\
“Turn the chorus into a perfectly loopable section.”
**Tool sequence:**
1. **Section Analysis** → isolate chorus region.
2. **Inpainting / Extend Music** → adjust start/end of chorus to loop cleanly (align beats / crossfade).
3. **Export loop** as a stand-alone loop segment.
#### **Workflow 10 – Stitch multiple ideas into one song**
**User ask:**\
“I have three sketches A, B, and C. Join them into one continuous song.”
**Tool sequence:**
1. **Upload / Library selection** → choose clips A, B, C.
2. **Section Analysis (per clip)** → understand structure & key/BPM of each.
3. **Key & Tempo Tools** → adjust clips to a consistent BPM/key if needed.
4. **Merge Audio** → A → B → C in chosen order.
5. **Inpainting** → smooth transitions between each pair.
### **3.5 Tempo, Key & Style Transformations**
#### **Workflow 11 – Identify BPM & key and make instrumental in same style**
**User ask:**\
“Identify the bpm, and key of this track, and make an instrumental track in this style.”
**Tool sequence:**
1. **Key & Tempo Detection** → find BPM and key.
2. (Optional) **Stem Separator** → create instrumental from original (remove vocals).
3. Or **Similar Music Generator** → new instrumental track inspired by reference, using detected BPM/key.
4. Return instrumental to user.
#### **Workflow 12 – Change key and regenerate vocals**
**User ask:**\
“Raise the key of the entire song by 2 semitones and keep the vocals sounding natural.”
**Tool sequence:**
1. **Key & Tempo Detection** → find original key.
2. **Key Change** → plan shift of +2 semitones.
3. **Stem Separator** → isolate vocals.
4. **Inpainting / AI Singing Generator** → re-render vocals in the new key (to avoid artifacts).
5. **Merge Audio** → combine new vocals with key-shifted instrumental.
#### **Workflow 13 – Create a DJ edit at 128 BPM**
**User ask:**\
“Make a DJ-friendly edit of this song at 128 BPM with a longer intro and outro.”
**Tool sequence:**
1. **Key & Tempo Detection** → detect original BPM & key.
2. **Tempo Change** → time-stretch to 128 BPM (keeping pitch).
3. **Section Analysis** → identify intro/outro.
4. **Extend Music** → lengthen intro & outro (e.g., 16/32 bars).
5. **Inpainting** → smooth edits if needed.
### **3.6 Multi-language & Translation Workflows**
#### **Workflow 14 – Translate song into multiple languages and regenerate track**
**User ask:**\
“Translate this song into Hindi, Spanish, Swedish and French. Give me the new track.”
**Tool sequence:**
1. **Stem Separator** → isolate vocals & instrumental.
2. **AI Lyrics Writer** → translate/adapt lyrics into Hindi, Spanish, Swedish, French (matching phrasing).
3. For each language:
* **AI Singing Generator** → generate vocals in that language.
* **Layering** → place new vocals over original instrumental.
* (Optional) **Effects Engine** → match tone & reverb to mix.
4. Return 4 new language versions.
#### **Workflow 15 – Multi-language choruses only**
**User ask:**\
“Make the chorus in Hindi and the verses in English.”
**Tool sequence:**
1. **Section Analysis** → find chorus and verse regions.
2. **AI Lyrics Writer** → translate or rewrite chorus in Hindi; keep verses in English.
3. **AI Singing Generator** → generate Hindi chorus vocals + English verse vocals.
4. **Inpainting** → replace chorus sections only.
5. **Layering / Mix** → combine for final bilingual song.
### **3.7 Detailed Effects & Mixing Automation**
#### **Workflow 16 – Add more reverb to guitar in choruses and lower elsewhere**
**User ask:**\
“Add more reverb to the guitar, but only in all the chorus, decrease the volume of guitar by 20% in rest of the sections.”
**Tool sequence:**
1. **Stem Separator** → isolate guitar stem.
2. **Section Analysis** → detect all chorus sections vs non-chorus sections.
3. **Effects Engine (reverb + gain)**:
* In chorus sections → increase reverb amount on guitar stem.
* In all other sections → reduce guitar gain by \~20%.
4. Return new mix.
User can then say things like:
* “The reverb is too much—dial it back slightly.”
* “Make the guitar a bit louder in the bridge only.”
Agent adjusts the same effect chain with new parameters.
#### **Workflow 17 – Make track sound “underwater” or “spacey”**
**User ask:**
* “Make the whole track sound like it’s underwater.”
* “Make the chorus sound more spacey and wide.”
**Tool sequence:**
1. **Effects Engine**:
* For “underwater” → strong **low\_pass**, extra **reverb**, subtle **chorus**.
* For “spacey” → **reverb**, **delay**, **chorus/phaser**, slight stereo widening if available.
2. Optionally **Section Analysis** → restrict changes to chorus or target section.
#### **Workflow 18 – Boost only the hook for TikTok**
**User ask:**\
“Make the hook pop more on TikTok: louder vocal, less low-end and more high-end.”
**Tool sequence:**
1. **Section Analysis** → identify hook section(s).
2. **Stem Separator** → isolate vocals & instruments.
3. **Effects Engine**:
* Increase **gain** on hook vocals.
* Use **peak\_eq / high\_shelf** to brighten.
* Possibly **low\_shelf** cut on full mix during hook.
4. Return modified track.
### **3.8 Looping, Short-form & Platform-specific**
#### **Workflow 19 – Create a 1-minute TikTok-friendly version starting from hook**
**User ask:**\
“Make a 1-minute TikTok version of my song that starts directly with the hook.”
**Tool sequence:**
1. **Section Analysis** → find hook/chorus and key sections.
2. **Merge / Arrangement**:
* Reorder so the song starts with the hook.
* Trim total duration to \~1 minute.
3. **Inpainting** → smooth transitions / add small intro gap if needed.
#### **Workflow 20 – Make a perfectly loopable 30s background track**
**User ask:**\
“From this song, create a 30-second loopable background segment.”
**Tool sequence:**
1. **Section Analysis** → find sections that can loop well (e.g., a stable groove).
2. **Key & Tempo** → ensure consistent BPM.
3. **Inpainting / Extend Music** → adjust boundaries for clean loop.
4. Deliver the 30-second seamless loop.
### **3.9 Reference-driven Generation**
#### **Workflow 21 – Generate similar beats from YouTube reference**
**User ask:**\
“From this YouTube link, generate 5 similar beats without copying the melody.”
**Tool sequence:**
1. **YouTube URL Extractor** → pull audio.
2. **Section Analysis & Key/Tempo** → understand structure, BPM, key.
3. **Similar Music Generator** → generate 5 different beats inspired by that track’s style.
4. (Optional) **Effects** / **tempo adjustments** as requested.
#### **Workflow 22 – Make a lo-fi version of my song**
**User ask:**\
“Create a lo-fi version of this song for studying.”
**Tool sequence:**
1. **Key & Tempo** → optionally slow the BPM.
2. **Stem Separator** → separate vocals/instruments (if you want instrumental-only).
3. **Similar Music Generator / AI Music Generator** → regenerate with lo-fi vibe (softer drums, vinyl noise, etc.).
4. **Effects Engine** → apply **low\_pass**, gentle **distortion**, maybe **chorus**.
5. Deliver lo-fi mix.
### **3.10 Instrumental & Practice Tracks**
#### **Workflow 23 – Create a karaoke instrumental**
**User ask:**\
“Give me a clean instrumental version for karaoke.”
**Tool sequence:**
1. **Stem Separator** → isolate vocals from instruments.
2. **Mute vocals** → keep only instrumental stems.
3. (Optional) **Effects Engine** → tidy up mix.
4. Output instrumental.
#### **Workflow 24 – Remove drums for practice**
**User ask:**\
“Remove the drums so I can play them live over the track.”
**Tool sequence:**
1. **Stem Separator** → get drum stem (if available) plus rest of instruments.
2. **Mute drum stem**.
3. Output drumless mix.
### **3.11 Game / Batch Content Generation**
#### **Workflow 25 – 20 short game tracks**
**User ask:**\
“Generate 20 short, royalty-free game background tracks, 60–90 seconds each.”
**Tool sequence:**
1. For each of 20 tracks:
* **AI Music Generator** → with constraints (tempo, mood, length).
* Optionally, **Similar Music Generator** from a chosen style reference.
2. Return bundle with labeled moods (e.g., menu, battle, victory).
### **3.12 Melody / MIDI-driven Workflows**
#### **Workflow 26 – Turn humming into full song**
**User ask:**\
“I’ll hum an idea; turn it into a full pop song with lyrics and vocals.”
**Tool sequence:**
1. **Record Audio** → capture humming.
2. **Melody to Song** → build instrumental around the melody.
3. **AI Lyrics Writer** → generate lyrics matching melody structure.
4. **AI Singing Generator** → sing the lyrics over the song.
5. (Optional) **Effects** → polish mix.
#### **Workflow 27 – Build EDM track from MIDI**
**User ask:**\
“Here’s a MIDI chord progression—turn it into a big-room EDM track at 128 BPM.”
**Tool sequence:**
1. **Upload MIDI**.
2. **MIDI to Song** → generate arrangement with chosen style.
3. **Key/Tempo** → ensure BPM = 128 and appropriate key.
4. (Optional) **Effects Engine** → extra processing on master.
### **3.13 DNA-Focused Workflows**
#### **Workflow 28 – Train a new DNA model on my catalog**
**User ask:**\
“Train a new DNA model using these 10 songs from my last EP.”
**Tool sequence:**
1. **Upload / Library selection** → choose the 10 songs.
2. **DNA Build / Training** → create new DNA model (e.g., “EP 2025 DNA”).
3. Return status + future prompts:
* “Now generate 5 ideas using my ‘EP 2025 DNA’.”
#### **Workflow 29 – Batch ideas from DNA**
**User ask:**\
“Generate 20 short ideas in my new DNA style, all around 45 seconds.”
**Tool sequence:**
1. **DNA Generation** → select DNA model.
2. For each idea:
* **AI Music Generator** → 45-second clips.
3. Collect and present as an idea bank.
### **3.14 Voice Creative Workflows**
#### **Workflow 30 – Voice to instrument lead & harmonies**
**User ask:**\
“Turn my sung melody into a guitar lead, then add harmony lines.”
**Tool sequence:**
1. **Record / Upload vocal**.
2. **Voice to Instrument** → create guitar lead.
3. **Similar Music / AI Music Generator** → generate harmonized variations.
4. **Layering** → stack harmonies on top of original track.
#### **Workflow 31 – Swap my rap verse voice & keep hook original**
**User ask:**\
“Turn my rap verse into a deeper, more aggressive voice, but keep the original hook vocal.”
**Tool sequence:**
1. **Section Analysis** → separate verse vs hook.
2. **Stem Separator** → isolate vocal stem.
3. **Voice Swap** → apply new voice style only to verse regions.
4. **Merge / Layer** → combine swapped verse with original hook.
### **3.15 Structural Feedback & Suggestions**
#### **Workflow 32 – Analyze structure and suggest improvements**
**User ask:**\
“Analyze this track’s structure and suggest changes to make it more catchy.”
**Tool sequence:**
1. **Section Analysis** → map intro, verses, choruses, etc.
2. Agent (LLM) → suggests changes (e.g., “move first chorus earlier”).
3. If user agrees:
* **Merge / Reorder** sections accordingly.
* **Inpainting** → smooth transitions.
#### **Workflow 33 – Give me 3 variations of the chorus**
**User ask:**\
“Give me 3 variations of the chorus.”
**Tool sequence:**
1. **Section Analysis** → identify chorus.
2. **Inpainting** → generate 3 alternative versions (melody / production).
3. (Optional) **AI Lyrics Writer + AI Singing Generator** → if user also wants lyrical variations.
4. Provide A/B/C chorus versions.
### **3.16 Batch Hooks & Short Ideas**
#### **Workflow 34 – 20 short hooks about a topic**
**User ask:**\
“Generate 20 different 15-second hooks about space travel in a modern pop style.”
**Tool sequence:**
1. For each idea:
* **AI Lyrics Writer** → short hook lyrics.
* **AI Song / Music Generator** → 15-second musical hook.
2. Present 20 hooks as separate snippets.
### **3.17 Complex Example Combining Many Tools**
#### **Workflow 35 – “Identify BPM/key, generate instrumental, edit sections, add effects”**
**User ask (sequence):**
1. “Identify the bpm, and key of this track, and make an instrumental track in this style.”
2. “Give me 3 variation of the chorus.”
3. “Turn the chorus into a perfectly loopable section.”
4. “Add more reverb to the guitar, but only in all the chorus, decrease the volume of guitar by 20% in rest of the sections.”
**Tool sequence:**
1. **Key & Tempo Detection** → BPM, key.
2. **Stem Separator** → create instrumental (mute vocals) or **Similar Music Generator** → new instrumental in same style.
3. **Section Analysis** → locate chorus.
4. **Inpainting** → generate 3 alternate chorus versions.
5. **Extend / Inpainting** → make chosen chorus loopable.
6. **Stem Separator** (if not already) → isolate guitar.
7. **Effects Engine** → chorus: more reverb on guitar; non-chorus: -20% gain on guitar.
8. Deliver final track + loopable chorus segment.
## **4. Contextual Follow-ups – How does “remembering context” work in practice?**
Examples:
* **Effects context**
1. “Add reverb effect to the entire track.”
2. *Agent applies reverb.*
3. “Increase it a little more.”\
→ Agent increases **reverb** level, not something else.
4. “Now only keep that reverb on the vocals, remove it from everything else.”\
→ Agent uses stems + automation to keep vocal reverb only.
* **Section context**
1. “Replace the second chorus with a new variation.”
2. *Agent does it.*
3. “Actually, also give me a second version that keeps the old chorus but with more drums.”\
→ Agent knows “old chorus” vs “new one,” can branch or create alt take.
* **Reference context**
1. “Use this YouTube song as reference.” (paste URL)
2. *Agent extracts and generates similar track.*
3. “Make another one but slower and with more atmospheric pads.”\
→ Agent keeps using same reference song unless you change it.
# Enterprise API FAQs
Source: https://help.soundverse.ai/enterprise-api/faqs
Comprehensive FAQs about licenses, ownership, and usage for Soundverse Enterprise API
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **License Types**
**Royalty-Free (Included)**\
A broad **commercial-use** license. Pay once (your plan) and use the exported track in unlimited projects without per-use fees. Subject to these Terms, Customer receives a non-exclusive, worldwide, perpetual, royalty-free license to reproduce, publicly perform, communicate, distribute, display, and monetize Customer's exported audio in any media. No resale of raw, unmodified exports as standalone sound libraries or sample packs.
**Sample**\
Permission to **sample/chop/re-record** Soundverse audio **inside a new work**. Not for reselling raw sounds "as is." Customer may sample, edit, transform, and incorporate exports into new musical works. Customer may not resell or distribute unmodified exports as individual sounds, loops, or construction kits. Content-ID claims may be asserted over the new derivative work, not over the unmodified export.
**Distribution (Included)**\
Rights to **release the track** to streaming stores, social platforms, and distributors (Spotify, Apple, YouTube, TikTok, etc.). Customer may deliver exported audio to digital service providers (DSPs), social platforms, and distributors and monetize releases. Non-exclusive, worldwide, perpetual for exports made during an active plan. Registration, reporting, and platform policies are Customer's responsibility.
**Sync**\
Rights to **pair the track to picture** (film/TV/ads/games/apps/podcasts/UGC campaigns). Typically **per project/campaign**. Customer may synchronize exported audio with audiovisual productions (including film, TV, ads, games, apps, podcasts, social campaigns) for the specified project/campaign. Non-exclusive, worldwide. Term may be perpetual or time-bound as designated by Customer at grant.
**Full Ownership**\
An **exclusive buy-out** of the **master** (and, where applicable, composition created on Soundverse) for that track. Best for catalogs, label deals, or high-stakes brand work. Upon purchase, Customer obtains exclusive worldwide ownership of the specific exported master (and, where applicable, the composition created on Soundverse). Soundverse retains no ongoing royalty interest. Model IP, software, and training assets are excluded. Customer may register Content ID and exploit/sublicense the master without restriction, subject to platform and legal requirements.
## **What each license lets you do (at a glance)**
| Capability | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ----------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------- | --------------------------------- |
| Commercial use | ✅ | ✅ (within a new work) | ✅ | ✅ | ✅ |
| Release to DSPs/social (Spotify/Apple/YouTube/TikTok) | ✅ | ✅ (as part of a new work) | ✅ | ✅ | ✅ |
| Use "to picture" (film/TV/ads/games/apps) | ✅ (many clients still prefer Sync) | ✅ (as part of new work) | 🟡 Allowed but clients often require Sync | ✅ (designed for this) | ✅ |
| Exclusivity | ❌ Non-exclusive | ❌ Non-exclusive | ❌ Non-exclusive | ❌ Non-exclusive (per project) | ✅ Exclusive (track-level) |
| Resell/redistribute raw audio "as is" | ❌ | ❌ | ❌ | ❌ | ✅ (you control the master) |
| Make derivatives/remixes of **your** export | ✅ | ✅ (as new work) | ✅ | ✅ | ✅ |
| Register Content ID/fingerprint | 🟡 Allowed for your finished track; not to block others using their own licensed copies | 🟡 Only over your **new** mixed work, not raw sample | 🟡 Allowed for your release; may not block others lawfully licensing the same base | 🟡 For the audiovisual asset only | ✅ You may assert exclusive claims |
| Sublicense to clients (e.g., brand/film) | ❌ (end-user license) | 🟡 Allowed **as part of** a deliverable; not a standalone sound license | ❌ (distribution ≠ sublicensing) | ✅ For that project/campaign | ✅ Broadly allowed |
| Term | Perpetual for exports made on an active plan | Perpetual for the new work | Perpetual for exports made on an active plan | Per project/campaign (perpetual or time-bound) | Perpetual |
| Territory | Worldwide | Worldwide | Worldwide | Worldwide | Worldwide |
**Note:** Platform/distributor rules, public-performance rules, and broadcaster policies still apply (e.g., PRO reporting, platform T\&Cs).
## **Ownership & Earnings**
**Who owns what?**
* **Master (the audio file you export):**
* **Royalty-Free / Sample / Distribution / Sync:** You own the master of the export you created.
* **Full Ownership:** You own the master **exclusively**.
* **Composition (lyrics/melody/chords):**
* If you authored them, **you** own the composition in all license types.
* If AI text tools helped, you have a license to use that text; you're responsible for final editorial review.
**Who keeps the money?**
* **Soundverse takes no revenue share** under these licenses. You keep **100%** of earnings you collect from DSPs, social platforms, and clients (after any platform/distributor/collector fees).
* If a distributor or platform charges fees, those are the user's responsibility.
## **Detailed FAQs**
**1) What's the difference between Royalty-Free and Distribution?**
* **Royalty-Free** = broad commercial permission without per-use fees.
* **Distribution** = explicit rights to deliver your track to DSPs/social and monetize there.
In practice, both are included to make releases straightforward: Royalty-Free covers general commercial use; Distribution covers the release workflow.
**2) What does the Sample license allow?**
* You can **sample, chop, re-record, or substantially transform** our exports inside your **new** composition.
* You **cannot** resell or share the raw sounds as a standalone pack, loop, or "construction kit."
* **Content ID:** you may claim your **finished new work**, not the raw sample itself.
**3) What does Sync add on top of Royalty-Free/Distribution?**
* Sync is designed for **to-picture** uses (film/TV/OTT/ads/games/apps/podcasts, etc.).
* It's typically **non-exclusive** and **project/campaign-specific**.
* You (or your client) can store the license proof with the production files and cue sheets.
**4) When do I need Full Ownership?**
* When you require **exclusivity** (e.g., brand themes, trailer cues, catalog acquisition, library deals).
* You can **sell or assign** the master later, register Content ID exclusively, and generally exercise all owner controls (subject to platform rules).
* Model IP/weights are **not** transferred—only the track you exported.
**5) Can I register my releases with Content ID or similar systems?**
* **Royalty-Free/Distribution:** Yes, for your finished track. You can't use it to block other lawful licensees of their own independent exports.
* **Sample:** Only your **new** mixed/derivative track, not the underlying raw sample.
* **Sync:** You may register where appropriate for the **audiovisual** asset.
* **Full Ownership:** Yes, with exclusive control over the master.
**6) Can I sublicense the music to clients?**
* **Royalty-Free/Distribution:** Not as a standalone license. You can **deliver the track in your project** (e.g., a YouTube upload, album release), but you're not selling a separate sound license.
* **Sample:** You may deliver a finished track/score to a client; you're not granting them a reusable sample license.
* **Sync:** Yes—**for that project/campaign**; clients can exploit the audiovisual work that embeds the music.
* **Full Ownership:** Yes—exclusive master owner can sublicense broadly.
**7) Are there exclusivity differences?**
* **Exclusive:** Only **Full Ownership**.
* **Non-exclusive:** Royalty-Free, Sample, Distribution, Sync.
**8) What are the term and territory?**
* **Term:**
* Royalty-Free / Sample / Distribution: **Perpetual** for any exports created while your plan was active.
* Sync: **Per project/campaign** (choose perpetual or time-bound).
* Full Ownership: **Perpetual**.
* **Territory:** **Worldwide** in all cases.
**9) Can I edit, remix, or make derivatives of my export?**
* Yes. All licenses allow you to modify your own exports.
* **Sample** specifically encourages transformation inside a new track.
* Only **Full Ownership** lets you then **resell the raw master** or package stems as you wish.
**10) Can I sell stems?**
* **Royalty-Free/Distribution/Sync/Sample:** You may deliver stems **as part of your project** (mixing/mastering, collaboration, client deliverables). Don't sell raw exports as a generic sample pack.
* **Full Ownership:** You control stem commercialization unless restricted by your downstream contracts.
**11) Do I owe any ongoing royalties to Soundverse?**
* No. These licenses are **royalty-free** with respect to Soundverse. Platform/distributor/collection fees (e.g., DSP fees, YouTube rev share, PRO collections) may still apply.
**12) What about public performance royalties (PROs)?**
* Broadcasters/venues/platforms may owe public-performance royalties under their own regimes. That's separate from your Soundverse license and typically handled by platforms/PROs.
**13) Can I transfer or sell my track later?**
* **Royalty-Free/Distribution/Sync:** You may assign your master rights in your finished track, but you can't confer greater rights than you hold (still non-exclusive; cannot convert into exclusivity).
* **Full Ownership:** You can sell/assign the master exclusively.
**14) Any credit requirements?**
* No mandatory credit lines in this version of the licenses. You may credit yourself and Soundverse at your discretion.
**15) What are "performance rights," and how do they relate to Soundverse licenses?**
**Performance rights** = the right to publicly perform or broadcast the **composition** (melody/lyrics).
* **Who benefits:** the **songwriter(s)/publisher(s)** of the composition.
* **Which Soundverse licenses touch this:** *All of them*, because once your music is out in the world, venues/platforms may generate performance royalties for the songwriters.
* **What Soundverse licenses do *not* do:** They **don't collect your composition royalties** for you. They give you the right to create/export/monetize the recording (master) and, if you authored the song, you hold those writer rights.
**16) Who pays performance royalties when I release Soundverse music?**
Usually **platforms/venues/broadcasters** (e.g., Spotify/Apple/YouTube, radio/TV, bars/clubs) under their **PRO** deals.
* **Your role:** If you wrote the song, **register with a PRO** (e.g., ASCAP/BMI, PRS, GEMA, IPRS, etc.) so they know who to pay.
* **Relevant Soundverse licenses:** All. (Your license choice doesn't change a broadcaster's duty to pay PROs.)
**17) Master vs Composition—how does Soundverse treat each?**
* **Master (sound recording):**
* Under **Royalty-Free, Sample, Distribution, Sync** you own your exported **master** (non-exclusive).
* Under **Full Ownership** you own your master **exclusively**.
* **Composition (song):**
* If you authored the lyrics/melody/chords, **you** own the composition in all license types.
* Soundverse licenses do **not** take your writer share.
**18) What income should I expect per right, using Soundverse?**
* **Master income (recording):** Streams/sales/platform rev shares, sync fees.
* **Enabled by:** Royalty-Free, Distribution, Sync, Full Ownership (and Sample when your new work is released).
* **Composition income (songwriting):** Performance + mechanical royalties to **you as writer/publisher**.
* **Enabled by:** Your authorship, regardless of Soundverse license. Register with PRO/MLC/publisher to get paid.
* **Neighboring rights (recording broadcast performance):** For certain radio/webcasts/non-interactive streams, master owners/featured performers may collect via societies like SoundExchange/PPL/SENA.
* **Enabled by:** Your master ownership (any Soundverse license where you own the master).
**19) Do Soundverse licenses include performance royalties?**
They **permit** commercial exploitation but **don't replace** songwriter performance royalties. Those flow through PROs once you register your works.
**20) What about mechanical royalties on streaming/downloads?**
Mechanical royalties relate to the **composition** reproduction/distribution. In many regions, these are handled by publishers/collectives (e.g., **MLC** in the US for digital).
* **Action:** If you wrote the song, ensure you (or your publishing admin) are set up to collect.
* **Soundverse:** Licenses don't interfere with your right to collect mechanicals.
**21) What are neighboring rights, and do I get them?**
Neighboring (related) rights are performance-type royalties for the **recording** on certain broadcasts.
* **If you own the master** (all Soundverse licenses grant you master ownership; **Full Ownership** grants exclusivity), you may register with the relevant societies and claim where eligible.
**22) Content ID / fingerprinting—what can I do?**
* **Royalty-Free / Distribution / Sync:** You can register **your finished recording**; don't use it to block other lawful releases of independently created masters.
* **Sample:** You may claim the **new derivative work**, not the unmodified source export.
* **Full Ownership:** You may assert exclusive claims over **your** master, subject to platform rules.
**23) Do I ever owe royalties to Soundverse?**
No. Soundverse licenses are **royalty-free** with respect to Soundverse. You keep **100%** of what you collect from platforms/clients (minus their fees). Performance/mechanical/neighboring collections are separate industry systems.
**24) Covers vs originals made on Soundverse—what changes?**
* **Originals you authored:** You own the composition and the master (license-dependent for exclusivity). Register with PRO/MLC/publisher to be paid.
* **Covers:** You own the **new master**, but the **composition** belongs to the original writer/publisher. You'll need a **mechanical license** for distribution in many territories (your distributor may provide tools).
**25) Sampling third-party recordings inside Soundverse projects?**
If you import or use **third-party recordings**: you must clear **both** the **master** and the **composition** from those third parties. Soundverse's **Sample** license only covers your right to sample **Soundverse exports** inside your new work—not external recordings.
**26) Sublicensing to clients (brands/films/games)?**
* **Royalty-Free / Distribution:** End-user licenses—deliverables okay, but not a standalone re-licensing of the raw track.
* **Sample:** You can deliver your **new** track to a client; you're not issuing them a reusable sample license.
* **Sync:** Built for project/campaign sublicensing (to exploit the audiovisual work).
* **Full Ownership:** You can broadly sublicense or assign the master.
**27) Does Full Ownership change performance rights?**
It gives you **exclusive control of the master**—pricing power, takedowns, exclusive syncs. It **does not convert** composition performance royalties (writers still get paid via PROs).
**28) Quick setup checklist for Soundverse creators**
1. **Pick the right license** at export (Distribution/Sync/Full Ownership as needed).
2. **Register your songs** with your **PRO** (and publisher/admin if you have one).
3. Ensure **ISRC** (recording) and **work registrations** (ISWC when available) are in place.
4. For visual media, make sure **cue sheets** are filed by the production.
5. For **covers**, secure **mechanical licenses** where required.
6. For **third-party samples**, clear **master + composition** from those rightsholders.
7. If eligible, enroll with **neighboring-rights** societies (e.g., SoundExchange/PPL).
**28) TL;DR per license (Soundverse)**
* **Royalty-Free (Included):** Broad commercial use of **your master**. You keep earnings. Performance/mechanical royalties for the **composition** are collected via PRO/MLC (if you're the writer).
* **Sample:** You can transform our exports in a **new work**; monetize the new track. Composition royalties flow to the new work's writers; you can't resell raw sounds "as is."
* **Distribution (Included):** Explicit right to release/monetize on DSPs/social. Platform/venue performance royalties still flow to songwriters via PROs.
* **Sync:** Project/campaign rights to pair your master **to picture**. Cue sheets trigger songwriter performance royalties; you keep master fees.
* **Full Ownership:** Exclusive control of **your master** (takedowns, exclusive deals, CID control). Composition performance royalties remain with the writers.
**29) Can we bulk-generate tracks and pre-fill our catalog?**
Yes—store them in your DAM. For public "stock" download, limit to **Full Ownership** tracks or use **Sync** at point-of-sale (per-project licensing).
**30) Can we give our customers a license certificate?**
Yes, issue a certificate referencing the applicable license (Distribution/Sync/Full Ownership) and your transaction ID/order.
**31) Can we run contests or creator programs with Soundverse outputs?**
Yes—ensure your T\&Cs tell creators what license they receive on export and that they cannot repackage raw exports as libraries.
**32)** What if a platform disputes our Content ID claim?
Follow platform escalation. With **Full Ownership**, you can assert exclusivity; otherwise, ensure you're only claiming your finished asset and not blocking lawful parallel uses.
**33) Can we assign works between subsidiaries/labels?**
Yes—masters may be assigned per your corporate structure. Composition rights (if authored by your writers) must be registered correctly with PRO/MLC.
## **Difference between owning the master and Owning the master exclusively**
* **Owning the master** = you own **that recording**, can monetize it, license it, and collect revenue. **But the ownership is non-exclusive**—others may also own and exploit *their* recordings (or even the same recording, if they acquired rights separately), and you generally can't stop them.
* **Owning the master *exclusively*** = you are the **only party** allowed to exploit that recording. You can **block others**, issue takedowns, do exclusive deals, and register/enforce Content ID without carve-outs.
Here's the practical split:
| Topic | Master (non-exclusive) | Master (exclusive) |
| ------------------------------------------------------ | -------------------------------------------------------------------- | -------------------------------------------------------- |
| Who can exploit the recording? | You **and** any other rightsholders | **Only you** (unless you sublicense) |
| Can you stop others from releasing the same recording? | **No** | **Yes** (takedowns/claims) |
| Content ID / fingerprinting | Allowed for your release, but you can't block lawful parallel owners | You can register and **enforce exclusively** |
| Sync deals (ads/films/games) | Usually **non-exclusive**; brands may hesitate | You can grant **exclusive** syncs (often higher fees) |
| Resale/assignment of the master | Yes, but you transfer only **your** non-exclusive interest | Yes, you can sell/assign **full exclusive** rights |
| Price/value to buyers | Lower (others can compete with identical/near-identical tracks) | Higher (scarcity + control) |
| Typical use | Regular artist releases, social, non-exclusive libraries | Brand anthems, trailers, catalog buys, high-stakes syncs |
**Rule of thumb:**\
If you just need to release and monetize, **non-exclusive master ownership** is fine. If you (or a client) need **control and scarcity**. e.g., "no one else can use this exact recording"—you want **exclusive master ownership**.
## **Enterprise usage models (what's allowed)**
**A1) Internal content ops (in-house use)**
* ✅ Use the API to generate/export music for your own products, campaigns, shows, apps, channels.
* ✅ Store and version exports in your DAM/asset pipeline.
* ✅ Edit/mix/master/derive new works from your exports (per license).
* ❌ No redistribution of *raw, unmodified* exports as libraries, one-shots, loops, or construction kits (unless you hold **Full Ownership** and your downstream contract allows it).
**A2) Agency / production house (on behalf of clients)**
* ✅ Create deliverables for named client projects.
* ✅ Pass-through **Sync** rights for the specific production or campaign.
* ✅ Deliver **Distribution**-ready masters to your client's distributor account.
* ❌ Do not sell a standalone "sound license" to the raw export under Royalty-Free/Distribution/Sample; you're delivering *a project*, not a reusable library.
* ✅ With **Full Ownership**, you may assign/sublicense exclusivity as negotiated.
**A3) Platform / app / SaaS embedding**
* ✅ Use the API to power user features (e.g., UGC creator tools, game music, short-form creation) so long as the **end-user's license** matches the intended use (Distribution vs Sync vs Sample).
* ✅ Cache *thumbnails/previews* and store full-resolution exports created by your users.
* ❌ Do not expose raw exports as a public, searchable "sound library" for third parties to download "as is," unless you own **Full Ownership** and your TOS reflect that.
* ❌ No model extraction, benchmarking-to-copy, or model weight access.
* ❌ No training or fine-tuning of *any* model on Soundverse outputs.
**A4) Resale / marketplace / catalog**
* ✅ **Full Ownership** tracks may be listed, sold, sublicensed, or assigned exclusively.
* 🟡 **Sync** can be re-licensed *per project* (non-exclusive), not as a reusable library SKU.
* ❌ Royalty-Free/Distribution/Sample exports cannot be resold "as is" as a stock library.
## **License-by-license: enterprise do's & don'ts**
**B1) Royalty-Free (Included)**
**Do:**
* Use in unlimited internal/external projects; distribute releases; monetize across channels.
* Register Content ID for *your finished recording* (not to block lawful parallel owners).\
**Don't:**
* Resell raw exports as libraries/kits.
* Sublicense a general "sound license" to third parties (project deliverables are fine).
**B2) Sample**
**Do:**
* Sample/chop/re-record exports **into a new composition** for your client/product.
* Monetize the *new work*; register CID for the *new work only*.\
**Don't:**
* Sell/share the raw sample "as is."
* Claim CID over the unmodified source export.
**B3) Distribution (Included)**
**Do:**
* Deliver to DSPs/social; use your metadata/ISRC; handle reporting with your distributor.
* Allow artists on your roster to release masters you produced with the API.\
**Don't:**
* Treat Distribution as a right to sublicense raw audio to third parties.
**B4) Sync**
**Do:**
* Grant to-picture rights **per production/campaign** (film/TV/OTT/ads/games/apps/podcasts).
* Keep license proofs, cue sheets, and project IDs in your production archive.\
**Don't:**
* Convert Sync into a general library right or exclusivity (unless purchased separately).
**B5) Full Ownership (Exclusive Buy-Out)**
**Do:**
* Assert exclusive control: takedowns, exclusive brand deals, CID enforcement.
* Sell/assign/sublicense the master, package stems, monetize as catalog.\
**Don't:**
* Assume transfer of any model IP, data, or weights (not included).
## **Sublicensing patterns (enterprise scenarios)**
* **Brand campaign:** Use **Sync** for the campaign (perpetual or time-bound). If the brand requires "nobody else can ever use this recording," upgrade that track to **Full Ownership**.
* **Production music library:**
* **Non-exclusive shelf:** Use **Sync** per project at checkout; no bulk raw downloads.
* **Exclusive shelf / catalog sale:** Use **Full Ownership** titles only.
* **UGC creator platform:**
* End-user owns their master under **Distribution** (and Royalty-Free).
* You can't let users re-upload raw exports as stock loops to third-party stores.
## **Attribution, credits, and metadata (enterprise)**
* **Attribution:** Not mandatory in this version of the licenses. You may co-brand/credit at your discretion or per your house style.
* **Metadata hygiene:** Assign **ISRC** for masters; register works to collect **composition** royalties via PRO/MLC (if you authored).
* **Content ID:**
* Royalty-Free/Distribution/Sync → register your finished asset; don't block lawful parallel owners.
* Sample → register only the *new* derivative work.
* Full Ownership → exclusive enforcement allowed, subject to platform policies.
## **Data governance, security & compliance**
* **PII & customer data:** Do not send sensitive PII in prompts/metadata. Restrict API inputs to content necessary for audio generation and asset tagging.
* **Caching & storage:** You may cache **outputs** your org or users created. Do **not** cache or attempt to infer any underlying model parameters.
* **Audit & logging:** You may log prompts/exports for compliance; secure logs as confidential.
* **No training on outputs:** Enterprise is prohibited from using Soundverse outputs as training data for any model (internal or external).
* **Benchmarking:** Reasonable internal QA is fine; publishing head-to-head benchmarks intended to deconstruct or copy model behavior is prohibited.
* **Export controls & sanctions:** You are responsible for compliance with applicable export/sanctions regimes for your territory and users.
* **Content policy:** You are responsible for moderating your app/workflows so downstream use remains lawful and compliant with platform rules and ad standards.
## **SLA, support, and change management**
* **API keys & environments:** Use separate **sandbox** and **production** keys. Rotate keys regularly; do not embed keys in public clients.
* **Uptime/SLA:** Enterprise plans include target uptime and response-time objectives (defined in your Order Form/SLA).
* **Versioning:** We publish versioned endpoints. Breaking changes are posted with deprecation windows; you must migrate within the window.
* **Rate limits:** Set in your plan; contact us for burst allowances around major launches.
* **Support:** Priority channels for P0 incidents, plus scheduled solution-architect sessions for integration reviews.
## **Rate limits by tier**
These are default rate limits by plan tier. Contact us if you need higher burst capacity.
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 15 | 150 |
| AI Music Gen (AI Music + DNA Music Gen, Extend Music, Autocomplete Music, Similar Music Gen) | 15 | 150 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 15 | 150 |
| Extend Music | 15 | 150 |
| Extend Song | 15 | 150 |
| Stem Separation | 15 | 150 |
| Copyright Check | 15 | 150 |
| Section Timestamping | Unlimited | Unlimited |
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 75 | 750 |
| AI Music Gen (AI Music + DNA Music Gen, Extend Music, Autocomplete Music, Similar Music Gen) | 75 | 750 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 75 | 750 |
| Extend Music | 75 | 750 |
| Extend Song | 75 | 750 |
| Stem Separation | 20 | 50 |
| Copyright Check | 20 | 50 |
| Section Timestamping | Unlimited | Unlimited |
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 25 | 60 |
| AI Music Gen (AI Music + DNA Music Gen, Extend Music, Autocomplete Music, Similar Music Gen) | 25 | 60 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 25 | 60 |
| Extend Music | 25 | 60 |
| Extend Song | 25 | 60 |
| Stem Separation | 50 | 125 |
| Copyright Check | 50 | 125 |
| Section Timestamping | Unlimited | Unlimited |
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 40 | 100 |
| AI Music Gen (AI Music + DNA Music Gen, Extend Music, Autocomplete Music, Similar Music Gen) | 40 | 100 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 40 | 100 |
| Extend Music | 40 | 100 |
| Extend Song | 40 | 100 |
| Stem Separation | 80 | 200 |
| Copyright Check | 80 | 200 |
| Section Timestamping | Unlimited | Unlimited |
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 80 | 200 |
| AI Music Gen (AI Music + DNA Music Gen, Extend Music, Autocomplete Music, Similar Music Gen) | 80 | 200 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 80 | 200 |
| Extend Music | 80 | 200 |
| Extend Song | 80 | 200 |
| Stem Separation | 160 | 400 |
| Copyright Check | 160 | 400 |
| Section Timestamping | Unlimited | Unlimited |
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 120 | 300 |
| AI Music Gen (AI Music + DNA Music Gen, Extend Music, Autocomplete Music, Similar Music Gen) | 120 | 300 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 120 | 300 |
| Extend Music | 120 | 300 |
| Extend Song | 120 | 300 |
| Stem Separation | 240 | 600 |
| Copyright Check | 240 | 600 |
| Section Timestamping | Unlimited | Unlimited |
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 160 | 400 |
| AI Music Gen (AI Music) | 160 | 400 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 160 | 400 |
| Extend Music | 160 | 400 |
| Extend Song | 160 | 400 |
| Stem Separation | 320 | 800 |
| Copyright Check | 320 | 800 |
| Section Timestamping | Unlimited | Unlimited |
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 200 | 500 |
| AI Music Gen (AI Music) | 200 | 500 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 200 | 500 |
| Extend Music | 200 | 500 |
| Extend Song | 200 | 500 |
| Stem Separation | 400 | 1000 |
| Copyright Check | 400 | 1000 |
| Section Timestamping | Unlimited | Unlimited |
| Endpoint | One hour | 24 hour |
| -------------------------------------------------------------------------------------------- | --------- | --------- |
| AI Song Gen (Song + Extend Song + Similar Song + DNA Song Gen) | 400 | 1000 |
| AI Music Gen (AI Music + DNA Music Gen, Extend Music, Autocomplete Music, Similar Music Gen) | 400 | 1000 |
| Singing Gen (AI Singing Gen + Similar Singing Gen) | 400 | 1000 |
| Extend Music | 400 | 1000 |
| Extend Song | 400 | 1000 |
| Stem Separation | 800 | 2000 |
| Copyright Check | 800 | 2000 |
| Section Timestamping | Unlimited | Unlimited |
## **Pricing (USD)**
Prices are per output unless noted. The tables below cover endpoints currently listed in the Enterprise API navigation.
**Contracted**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------- | ------------ | ------ | -------------- |
| v6 | \$0.105 | \$0.158 | \$0.21 | \$0.42 | \$1.05 |
| v5 | \$0.07 | \$0.105 | \$0.14 | \$0.28 | \$0.7 |
| v4 | \$0.065 | \$0.195 | \$0.26 | \$0.52 | \$1.3 |
| v1 | \$0.05 | \$0.075 | \$0.1 | \$0.2 | \$0.5 |
**Pay-as-you-go**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | -------- | ------------ | ------ | -------------- |
| v6 | \$0.158 | \$0.2363 | \$0.315 | \$0.63 | \$1.575 |
| v5 | \$0.105 | \$0.1575 | \$0.21 | \$0.42 | \$1.05 |
| v4 | \$0.14 | \$0.21 | \$0.28 | \$0.56 | \$1.4 |
| v1 | \$0.06 | \$0.09 | \$0.12 | \$0.24 | \$0.6 |
**Contracted**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------- | ------------ | ------ | -------------- |
| v6 | \$0.105 | \$0.158 | \$0.21 | \$0.42 | \$1.05 |
| v5 | \$0.07 | \$0.105 | \$0.14 | \$0.28 | \$0.7 |
| v4 | \$0.065 | \$0.195 | \$0.26 | \$0.52 | \$1.3 |
| v1 | \$0.05 | \$0.075 | \$0.1 | \$0.2 | \$0.5 |
**Pay-as-you-go**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | -------- | ------------ | ------ | -------------- |
| v6 | \$0.158 | \$0.2363 | \$0.315 | \$0.63 | \$1.575 |
| v5 | \$0.105 | \$0.1575 | \$0.21 | \$0.42 | \$1.05 |
| v4 | \$0.14 | \$0.21 | \$0.28 | \$0.56 | \$1.4 |
| v1 | \$0.06 | \$0.09 | \$0.12 | \$0.24 | \$0.6 |
**Contracted**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------ | ------------ | ------ | -------------- |
| v2 | \$0.06 | \$0.09 | \$0.12 | \$0.24 | \$0.6 |
**Pay-as-you-go**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------- | ------------ | ------ | -------------- |
| v2 | \$0.09 | \$0.135 | \$0.18 | \$0.36 | \$0.9 |
**Contracted**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------ | ------------ | ------ | -------------- |
| v1 | \$0.04 | \$0.06 | \$0.08 | \$0.16 | \$0.4 |
**Pay-as-you-go**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------ | ------------ | ------ | -------------- |
| v1 | \$0.04 | \$0.06 | \$0.08 | \$0.16 | \$0.4 |
**Contracted**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------ | ------------ | ------ | -------------- |
| v1 | \$0.02 | \$0.03 | \$0.04 | \$0.08 | \$0.2 |
**Pay-as-you-go**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------ | ------------ | ------ | -------------- |
| v1 | \$0.02 | \$0.03 | \$0.04 | \$0.08 | \$0.2 |
**Contracted**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------ | ------------ | ------ | -------------- |
| v1 | \$0.05 | \$0.05 | \$0.05 | \$0.05 | \$0.05 |
**Pay-as-you-go**
| Version | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| ------- | ------------ | ------ | ------------ | ------ | -------------- |
| v1 | \$0.05 | \$0.05 | \$0.05 | \$0.05 | \$0.05 |
**Contracted**
| Mode / Duration | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| --------------- | ------------ | ------ | ------------ | ------ | -------------- |
| Upload - 15s | \$0.06 | \$0.06 | \$0.06 | \$0.06 | \$0.06 |
| Upload - 60s | \$0.12 | \$0.12 | \$0.12 | \$0.12 | \$0.12 |
| Upload - 180s | \$0.24 | \$0.24 | \$0.24 | \$0.24 | \$0.24 |
| Upload - 300s | \$0.45 | \$0.45 | \$0.45 | \$0.45 | \$0.45 |
| Generate - 5s | \$0.04 | \$0.04 | \$0.04 | \$0.04 | \$0.04 |
| Generate - 15s | \$0.06 | \$0.06 | \$0.06 | \$0.06 | \$0.06 |
| Generate - 60s | \$0.12 | \$0.12 | \$0.12 | \$0.12 | \$0.12 |
| Generate - 180s | \$0.24 | \$0.24 | \$0.24 | \$0.24 | \$0.24 |
| Generate - 300s | \$0.45 | \$0.45 | \$0.45 | \$0.45 | \$0.45 |
| Existing - 5s | \$0.04 | \$0.04 | \$0.04 | \$0.04 | \$0.04 |
| Existing - 15s | \$0.06 | \$0.06 | \$0.06 | \$0.06 | \$0.06 |
| Existing - 60s | \$0.12 | \$0.12 | \$0.12 | \$0.12 | \$0.12 |
| Existing - 180s | \$0.24 | \$0.24 | \$0.24 | \$0.24 | \$0.24 |
| Existing - 300s | \$0.45 | \$0.45 | \$0.45 | \$0.45 | \$0.45 |
**Pay-as-you-go**
| Mode / Duration | Royalty-Free | Sample | Distribution | Sync | Full Ownership |
| --------------- | ------------ | ------ | ------------ | ------ | -------------- |
| Upload - 15s | \$0.06 | \$0.06 | \$0.06 | \$0.06 | \$0.06 |
| Upload - 60s | \$0.12 | \$0.12 | \$0.12 | \$0.12 | \$0.12 |
| Upload - 180s | \$0.24 | \$0.24 | \$0.24 | \$0.24 | \$0.24 |
| Upload - 300s | \$0.45 | \$0.45 | \$0.45 | \$0.45 | \$0.45 |
| Generate - 5s | \$0.04 | \$0.04 | \$0.04 | \$0.04 | \$0.04 |
| Generate - 15s | \$0.06 | \$0.06 | \$0.06 | \$0.06 | \$0.06 |
| Generate - 60s | \$0.12 | \$0.12 | \$0.12 | \$0.12 | \$0.12 |
| Generate - 180s | \$0.24 | \$0.24 | \$0.24 | \$0.24 | \$0.24 |
| Generate - 300s | \$0.45 | \$0.45 | \$0.45 | \$0.45 | \$0.45 |
| Existing - 5s | \$0.04 | \$0.04 | \$0.04 | \$0.04 | \$0.04 |
| Existing - 15s | \$0.06 | \$0.06 | \$0.06 | \$0.06 | \$0.06 |
| Existing - 60s | \$0.12 | \$0.12 | \$0.12 | \$0.12 | \$0.12 |
| Existing - 180s | \$0.24 | \$0.24 | \$0.24 | \$0.24 | \$0.24 |
| Existing - 300s | \$0.45 | \$0.45 | \$0.45 | \$0.45 | \$0.45 |
## **Payments, reporting, and taxes**
* **Revenue share:** Soundverse takes **no revenue share** on license types described here; you retain earnings from DSPs/clients (net of their fees).
* **Taxes & filings:** You handle applicable taxes, cue sheets, PRO registrations, and distributor reporting.
* **Third-party fees:** Distributor/platform/collection-society fees are your responsibility.
## **Termination & survival (enterprise specifics)**
* **Exports already made:** Licenses for exports created during an active plan **survive** termination per their terms (e.g., Distribution → perpetual for those exports; Sync → as granted for the project; Full Ownership → perpetual exclusive).
* **Access:** API access ceases at end of term; keys are revoked.
* **Data:** You may retain **your exports and internal logs**. Do not retain any confidential SDK materials or bypass access after termination.
## **Quick "Can we…?" matrix**
| Question | Answer |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| White-label Soundverse inside our app? | ✅ Yes, as an embedded feature powering your users' exports; follow license mapping per user action. |
| Offer a "sound library" for download? | ❌ Not with Royalty-Free/Distribution/Sample. ✅ Only with **Full Ownership** titles you control. |
| Sell exclusive tracks to brands? | ✅ Yes, with **Full Ownership**. |
| Auto-claim YouTube for our users? | 🟡 Possible for finished assets per license; ensure you don't block other lawful owners. |
| Use outputs to train our model? | ❌ Not permitted. |
| Share API keys with subcontractors? | 🟡 Only under your control and NDAs; you remain liable. Prefer service-account scoping and per-vendor keys. |
| Host the Soundverse model on-prem? | ❌ Not included. On-premise/isolated options require a separate agreement. |
# Extend Music - v5
Source: https://help.soundverse.ai/enterprise-api/generate/ai-music-extend/extend-music-v5
Extend existing music tracks by adding more content to either side of the track.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Extend AI Music (v5)**
* The API supports only synchronous responses
### **Endpoint**
* POST `/v5/extend/music`
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| ------------------ | ------- | ------------------------------------------------------------ | -------- | ------------- |
| `audio_url` | string | URL of the audio file to extend. | Yes | N/A |
| `prompt` | string | Prompt for guiding the extension. | No | N/A |
| `duration` | integer | Duration to extend in seconds. | No | 30 |
| `side` | string | Which side to extend: `left` or `right`. | No | right |
| `styleOfMusic` | string | Musical style to guide the extension. | No | N/A |
| `inferStep` | integer | Number of inference steps (higher = better quality, slower). | No | N/A |
| `guidanceScale` | float | Guidance scale for prompt adherence (1.0-15.0). | No | N/A |
| `omegaScale` | float | Omega scale for audio quality refinement. | No | N/A |
| `retakeVariance` | float | Variance for regeneration attempts. | No | N/A |
| `refAudioStrength` | float | Reference audio influence strength (0.0-1.0). | No | N/A |
| `manualSeeds` | array | Manual seeds for reproducible outputs. | No | N/A |
### **Example Request**
```json theme={null}
{
"audio_url": "https://storage.soundverse.ai/.../original_music.mp3",
"prompt": "Add a climactic orchestral section",
"duration": 30,
"side": "right",
"styleOfMusic": "orchestral",
"guidanceScale": 7.5
}
```
### **Code Examples**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v5/extend/music/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audio_url": "https://storage.soundverse.ai/.../original_music.mp3",
"prompt": "Add a climactic orchestral section",
"duration": 30,
"side": "right",
"styleOfMusic": "orchestral",
"guidanceScale": 7.5
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v5/extend/music/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
audio_url: "https://storage.soundverse.ai/.../original_music.mp3",
prompt: "Add a climactic orchestral section",
duration: 30,
side: "right",
styleOfMusic: "orchestral",
guidanceScale: 7.5,
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v5/extend/music/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://storage.soundverse.ai/.../original_music.mp3",
"prompt": "Add a climactic orchestral section",
"duration": 30,
"side": "right",
"styleOfMusic": "orchestral",
"guidanceScale": 7.5
}'
```
### **Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"message_id": "...",
"album_art": "https://storage.soundverse.ai/soundverse-album-art/...album_art.png",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../.../extended_music.mp3",
"song_name": "Extended Music Track",
"licenses": {
"licenses": "Royalty Free"
}
}
],
"ai_reply": "Your music has been extended successfully."
}
```
### **Possible Errors**
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Invalid Prompt:**
```json theme={null}
{
"detail": "Invalid or empty prompt provided"
}
```
**NSFW Content Detected:**
```json theme={null}
{
"success": false,
"message": "NSFW words detected. Please try again with different lyrics."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Extend Music - v6
Source: https://help.soundverse.ai/enterprise-api/generate/ai-music-extend/extend-music-v6
Extend existing music tracks by adding more content to either side of the track.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Extend AI Music (v6)**
* The API supports only synchronous responses
### **Endpoint**
* POST `/v6/extend/music`
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| ------------------ | ------- | ------------------------------------------------------------ | -------- | ------------- |
| `audio_url` | string | URL of the audio file to extend. | Yes | N/A |
| `prompt` | string | Prompt for guiding the extension. | No | N/A |
| `duration` | integer | Duration to extend in seconds. | No | 30 |
| `side` | string | Which side to extend: `left` or `right`. | No | right |
| `styleOfMusic` | string | Musical style to guide the extension. | No | N/A |
| `inferStep` | integer | Number of inference steps (higher = better quality, slower). | No | N/A |
| `guidanceScale` | float | Guidance scale for prompt adherence (1.0-15.0). | No | N/A |
| `omegaScale` | float | Omega scale for audio quality refinement. | No | N/A |
| `retakeVariance` | float | Variance for regeneration attempts. | No | N/A |
| `refAudioStrength` | float | Reference audio influence strength (0.0-1.0). | No | N/A |
| `manualSeeds` | array | Manual seeds for reproducible outputs. | No | N/A |
### **Example Request**
```json theme={null}
{
"audio_url": "https://storage.soundverse.ai/.../original_music.mp3",
"prompt": "Add a climactic orchestral section",
"duration": 30,
"side": "right",
"styleOfMusic": "orchestral",
"guidanceScale": 7.5
}
```
### **Code Examples**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v6/extend/music/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audio_url": "https://storage.soundverse.ai/.../original_music.mp3",
"prompt": "Add a climactic orchestral section",
"duration": 30,
"side": "right",
"styleOfMusic": "orchestral",
"guidanceScale": 7.5
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v6/extend/music/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
audio_url: "https://storage.soundverse.ai/.../original_music.mp3",
prompt: "Add a climactic orchestral section",
duration: 30,
side: "right",
styleOfMusic: "orchestral",
guidanceScale: 7.5,
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v6/extend/music/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://storage.soundverse.ai/.../original_music.mp3",
"prompt": "Add a climactic orchestral section",
"duration": 30,
"side": "right",
"styleOfMusic": "orchestral",
"guidanceScale": 7.5
}'
```
### **Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"message_id": "...",
"album_art": "https://storage.soundverse.ai/soundverse-album-art/...album_art.png",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../.../extended_music.mp3",
"song_name": "Extended Music Track",
"licenses": {
"licenses": "Royalty Free"
}
}
],
"ai_reply": "Your music has been extended successfully."
}
```
### **Possible Errors**
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Invalid Prompt:**
```json theme={null}
{
"detail": "Invalid or empty prompt provided"
}
```
**NSFW Content Detected:**
```json theme={null}
{
"success": false,
"message": "NSFW words detected. Please try again with different lyrics."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Extend Song - v5
Source: https://help.soundverse.ai/enterprise-api/generate/ai-music-extend/extend-song-v5
Extend existing songs by adding more content to either side of the track.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Extend AI Song (v5)**
* The API supports both [streaming](../ai-song-gen/ai-song-gen-v5#streaming-response) and synchronous responses
### **Endpoints**
* POST `/v5/extend/song` **- streaming**
* POST `/v5/extend/song/sync` **- synchronous**
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| ----------- | ------- | ----------------------------------------------------- | -------- | ------------- |
| `audio_url` | string | URL of the audio file to extend | Yes | N/A |
| `lyrics` | string | Lyrics to guide the extension style and mood. | Yes | N/A |
| `prompt` | string | Prompt to guide the extension style and mood. | No | N/A |
| `extend_at` | integer | Position (in ms) to extend the song at \[8000,420000] | Yes | N/A |
### **Example Request**
```json theme={null}
{
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}
```
### **Code Examples - Streaming**
```python 🐍 Python theme={null}
import requests
import json
url = "https://api.soundverse.ai/v5/extend/song"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}
response = requests.post(url, json=payload, headers=headers, stream=True)
# Process streaming response
for line in response.iter_lines():
if line:
text = line.decode('utf-8')
if text.startswith('data: '):
data = json.loads(text[6:])
print(data)
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v5/extend/song";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
audio_url: "https://storage.soundverse.ai/.../original_song.mp3",
lyrics: "These are the song lyrics to guide the extension",
};
const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
lines.forEach(line => {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
});
}
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v5/extend/song" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type": "application/json" \
-d '{
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}' --no-buffer
```
### **Code Examples - Synchronous**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v5/extend/song/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v5/extend/song/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
audio_url: "https://storage.soundverse.ai/.../original_song.mp3",
lyrics: "These are the song lyrics to guide the extension",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v5/extend/song/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type": "application/json" \
-d '{
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}'
```
### **Streaming Response**
#### **Fields**
> 🛈 The fields below are used in the chunks sent by SSE during the streaming process.
| Parameter | Type | Description |
| --------------------- | --------- | ----------------------------------------------------------- |
| **`isComplete`** | `bool` | Indicates if the streaming response is complete. |
| **`status`** | `string` | Current status of the extension process. |
| **`chunkIndex`** | `integer` | Index of the current chunk in the streaming sequence. |
| **`message_id`** | `string` | Unique identifier for the extension request. |
| **`stream_url`** | `string` | URL to access the generated audio stream when ready. |
| **`version`** | `integer` | Version of the generated content. |
| **`album_art`** | `string` | URL of the album art associated with the generated content. |
| **`song_name`** | `string` | Name of the generated track. |
| **`progress`** | `integer` | Progress percentage of the generation process. `0-100` |
| **`streaming_ready`** | `bool` | Indicates if audio is ready for streaming. |
| **`version`** | `integer` | Version number of the generated audio. |
| **`audio_url`** | `string` | URL of the generated audio file. |
| **`error`** | `string` | Error message if any issues occurred during processing. |
| **`operation`** | `string` | Type of operation being performed (e.g., "extend\_song"). |
* please check [Streaming Responses](../ai-song-gen/ai-song-gen-v5#streaming-response) for more details
### **Synchronous Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"message_id": "...",
"album_art": "https://storage.soundverse.ai/soundverse-album-art/...album_art.png",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../.../extended_song_v1.mp3",
"song_name": "Extended Song",
"licenses": {
"licenses": "Royalty Free"
}
},
{
"audio_url": "https://storage.soundverse.ai/x-one/.../.../extended_song_v2.mp3",
"song_name": "Extended Song",
"licenses": {
"licenses": "Royalty Free"
}
}
],
"ai_reply": "Your song has been extended successfully."
}
```
### **Possible Errors**
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Invalid Prompt:**
```json theme={null}
{
"detail": "Invalid or empty prompt provided"
}
```
**NSFW Content Detected:**
```json theme={null}
{
"success": false,
"message": "NSFW words detected. Please try again with different lyrics."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Extend Song - v6
Source: https://help.soundverse.ai/enterprise-api/generate/ai-music-extend/extend-song-v6
Extend existing songs by adding more content to either side of the track.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Extend AI Song (v6)**
* The API supports both [streaming](../ai-song-gen/ai-song-gen-v5#streaming-response) and synchronous responses
### **Endpoints**
* POST `/v6/extend/song` **- streaming**
* POST `/v6/extend/song/sync` **- synchronous**
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| ----------- | ------- | ----------------------------------------------------- | -------- | ------------- |
| `audio_url` | string | URL of the audio file to extend | Yes | N/A |
| `lyrics` | string | Lyrics to guide the extension style and mood. | Yes | N/A |
| `prompt` | string | Prompt to guide the extension style and mood. | No | N/A |
| `extend_at` | integer | Position (in ms) to extend the song at \[8000,420000] | Yes | N/A |
### **Example Request**
```json theme={null}
{
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}
```
### **Code Examples - Streaming**
```python 🐍 Python theme={null}
import requests
import json
url = "https://api.soundverse.ai/v6/extend/song"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}
response = requests.post(url, json=payload, headers=headers, stream=True)
# Process streaming response
for line in response.iter_lines():
if line:
text = line.decode('utf-8')
if text.startswith('data: '):
data = json.loads(text[6:])
print(data)
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v6/extend/song";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
audio_url: "https://storage.soundverse.ai/.../original_song.mp3",
lyrics: "These are the song lyrics to guide the extension",
};
const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
lines.forEach(line => {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
});
}
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v6/extend/song" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type": "application/json" \
-d '{
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}' --no-buffer
```
### **Code Examples - Synchronous**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v6/extend/song/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v6/extend/song/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
audio_url: "https://storage.soundverse.ai/.../original_song.mp3",
lyrics: "These are the song lyrics to guide the extension",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v6/extend/song/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type": "application/json" \
-d '{
"audio_url": "https://storage.soundverse.ai/.../original_song.mp3",
"lyrics": "These are the song lyrics to guide the extension",
}'
```
### **Streaming Response**
#### **Fields**
> 🛈 The fields below are used in the chunks sent by SSE during the streaming process.
| Parameter | Type | Description |
| --------------------- | --------- | ----------------------------------------------------------- |
| **`isComplete`** | `bool` | Indicates if the streaming response is complete. |
| **`status`** | `string` | Current status of the extension process. |
| **`chunkIndex`** | `integer` | Index of the current chunk in the streaming sequence. |
| **`message_id`** | `string` | Unique identifier for the extension request. |
| **`stream_url`** | `string` | URL to access the generated audio stream when ready. |
| **`version`** | `integer` | Version of the generated content. |
| **`album_art`** | `string` | URL of the album art associated with the generated content. |
| **`song_name`** | `string` | Name of the generated track. |
| **`progress`** | `integer` | Progress percentage of the generation process. `0-100` |
| **`streaming_ready`** | `bool` | Indicates if audio is ready for streaming. |
| **`version`** | `integer` | Version number of the generated audio. |
| **`audio_url`** | `string` | URL of the generated audio file. |
| **`error`** | `string` | Error message if any issues occurred during processing. |
| **`operation`** | `string` | Type of operation being performed (e.g., "extend\_song"). |
* please check [Streaming Responses](../ai-song-gen/ai-song-gen-v6#streaming-response) for more details
### **Synchronous Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"message_id": "...",
"album_art": "https://storage.soundverse.ai/soundverse-album-art/...album_art.png",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../.../extended_song_v1.mp3",
"song_name": "Extended Song",
"licenses": {
"licenses": "Royalty Free"
}
},
{
"audio_url": "https://storage.soundverse.ai/x-one/.../.../extended_song_v2.mp3",
"song_name": "Extended Song",
"licenses": {
"licenses": "Royalty Free"
}
}
],
"ai_reply": "Your song has been extended successfully."
}
```
### **Possible Errors**
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Invalid Prompt:**
```json theme={null}
{
"detail": "Invalid or empty prompt provided"
}
```
**NSFW Content Detected:**
```json theme={null}
{
"success": false,
"message": "NSFW words detected. Please try again with different lyrics."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Generate AI Music - v5
Source: https://help.soundverse.ai/enterprise-api/generate/ai-music-gen/ai-music-gen-v5
Generate complete AI instrumental music with advanced AI models.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Generate Instrumental Music (v5)**
* The API supports both [streaming](../ai-song-gen/ai-song-gen-v5#streaming-response) and synchronous responses
### **Endpoints**
* POST `/v5/generate/music` **- streaming**
* POST `/v5/generate/music/sync` **- synchronous**
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| --------- | ------ | ----------------------------------------------------- | -------- | ------------- |
| `prompt` | string | Text prompt describing the desired music. | Yes | N/A |
| `style` | string | Musical style or genre (e.g., jazz, classical, rock). | No | N/A |
### **Example Request**
```json theme={null}
{
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}
```
### **Code Examples - Streaming**
```python 🐍 Python theme={null}
import requests
import json
url = "https://api.soundverse.ai/v5/generate/music"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
# Process streaming response
for line in response.iter_lines():
if line:
text = line.decode('utf-8')
if text.startswith('data: '):
data = json.loads(text[6:])
print(data)
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v5/generate/music";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "upbeat jazz music with saxophone",
style: "jazz",
};
const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
lines.forEach(line => {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
});
}
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v5/generate/music" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}' --no-buffer
```
### **Code Examples - Synchronous**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v5/generate/music/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v5/generate/music/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "upbeat jazz music with saxophone",
style: "jazz",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v5/generate/music/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}'
```
### **Streaming Response**
#### **Fields**
> 🛈 The fields below are used in the chunks sent by SSE during the streaming process.
| Parameter | Type | Description |
| --------------------- | --------- | ----------------------------------------------------------- |
| **`isComplete`** | `bool` | Indicates if the streaming response is complete. |
| **`status`** | `string` | Current status of the extension process. |
| **`chunkIndex`** | `integer` | Index of the current chunk in the streaming sequence. |
| **`message_id`** | `string` | Unique identifier for the extension request. |
| **`stream_url`** | `string` | URL to access the generated audio stream when ready. |
| **`version`** | `integer` | Version of the generated content. |
| **`album_art`** | `string` | URL of the album art associated with the generated content. |
| **`song_name`** | `string` | Name of the generated track. |
| **`progress`** | `integer` | Progress percentage of the generation process. `0-100` |
| **`streaming_ready`** | `bool` | Indicates if audio is ready for streaming. |
| **`version`** | `integer` | Version number of the generated audio. |
| **`audio_url`** | `string` | URL of the generated audio file. |
| **`error`** | `string` | Error message if any issues occurred during processing. |
| **`operation`** | `string` | Type of operation being performed (e.g., "extend\_song"). |
* please check [Streaming Responses](../ai-song-gen/ai-song-gen-v5#streaming-response) for more details
### **Synchronous Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"message_id": "...",
"album_art": "https://storage.soundverse.ai/x-one/.../userData/album-arts/album_art_1766599034.webp",
"song_name": "Midnight Drizzle Beats",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v1.mp3",
"song_name": "Midnight Drizzle Beats",
},
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v2.mp3",
"song_name": "Midnight Drizzle Beats",
}
]
}
```
### **Possible Errors**
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Invalid Prompt:**
```json theme={null}
{
"detail": "Invalid or empty prompt provided"
}
```
**NSFW Content Detected:**
```json theme={null}
{
"success": false,
"message": "NSFW words detected. Please try again with different lyrics."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Generate AI Music - v6
Source: https://help.soundverse.ai/enterprise-api/generate/ai-music-gen/ai-music-gen-v6
Generate complete AI instrumental music with advanced AI models.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Generate Instrumental Music (v6)**
* The API supports both [streaming](../ai-song-gen/ai-song-gen-v5#streaming-response) and synchronous responses
### **Endpoints**
* POST `/v6/generate/music` **- streaming**
* POST `/v6/generate/music/sync` **- synchronous**
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| --------- | ------ | ----------------------------------------------------- | -------- | ------------- |
| `prompt` | string | Text prompt describing the desired music. | Yes | N/A |
| `style` | string | Musical style or genre (e.g., jazz, classical, rock). | No | N/A |
### **Example Request**
```json theme={null}
{
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}
```
### **Code Examples - Streaming**
```python 🐍 Python theme={null}
import requests
import json
url = "https://api.soundverse.ai/v6/generate/music"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
# Process streaming response
for line in response.iter_lines():
if line:
text = line.decode('utf-8')
if text.startswith('data: '):
data = json.loads(text[6:])
print(data)
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v6/generate/music";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "upbeat jazz music with saxophone",
style: "jazz",
};
const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
lines.forEach(line => {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
});
}
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v6/generate/music" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}' --no-buffer
```
### **Code Examples - Synchronous**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v6/generate/music/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v6/generate/music/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "upbeat jazz music with saxophone",
style: "jazz",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v6/generate/music/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "upbeat jazz music with saxophone",
"style": "jazz"
}'
```
### **Streaming Response**
#### **Fields**
> 🛈 The fields below are used in the chunks sent by SSE during the streaming process.
| Parameter | Type | Description |
| --------------------- | --------- | ----------------------------------------------------------- |
| **`isComplete`** | `bool` | Indicates if the streaming response is complete. |
| **`status`** | `string` | Current status of the extension process. |
| **`chunkIndex`** | `integer` | Index of the current chunk in the streaming sequence. |
| **`message_id`** | `string` | Unique identifier for the extension request. |
| **`stream_url`** | `string` | URL to access the generated audio stream when ready. |
| **`version`** | `integer` | Version of the generated content. |
| **`album_art`** | `string` | URL of the album art associated with the generated content. |
| **`song_name`** | `string` | Name of the generated track. |
| **`progress`** | `integer` | Progress percentage of the generation process. `0-100` |
| **`streaming_ready`** | `bool` | Indicates if audio is ready for streaming. |
| **`version`** | `integer` | Version number of the generated audio. |
| **`audio_url`** | `string` | URL of the generated audio file. |
| **`error`** | `string` | Error message if any issues occurred during processing. |
| **`operation`** | `string` | Type of operation being performed (e.g., "extend\_song"). |
* please check [Streaming Responses](../ai-song-gen/ai-song-gen-v6#streaming-response) for more details
### **Synchronous Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"message_id": "...",
"album_art": "https://storage.soundverse.ai/x-one/.../userData/album-arts/album_art_1766599034.webp",
"song_name": "Midnight Drizzle Beats",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v1.mp3",
"song_name": "Midnight Drizzle Beats",
},
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v2.mp3",
"song_name": "Midnight Drizzle Beats",
}
]
}
```
### **Possible Errors**
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Invalid Prompt:**
```json theme={null}
{
"detail": "Invalid or empty prompt provided"
}
```
**NSFW Content Detected:**
```json theme={null}
{
"success": false,
"message": "NSFW words detected. Please try again with different lyrics."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# AI Remix - v7
Source: https://help.soundverse.ai/enterprise-api/generate/ai-remix/ai-remix-v7
Remix an existing song into a new style or genre using AI.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **AI Remix (v7)**
* The API supports streaming responses only.
* Provide an existing song as a reference URL and a style prompt to generate a remixed version.
### **Endpoint**
* POST `/v7/generate/remix` **- streaming**
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| -------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------- | ----------- | ------------- |
| `song_reference_url` | string | Publicly accessible URL of the source audio file to remix (max 10 MB, 10–350 s). | Yes | N/A |
| `prompt` | string | Style or genre prompt for the remix (e.g. `"jazz remix with horns"`). At least one of `prompt` or `lyrics` is required. | Conditional | N/A |
| `lyrics` | string | New lyrics for the remixed track. Falls back to `prompt` if omitted. At least one of `prompt` or `lyrics` is required. | Conditional | N/A |
| `parameters` | object | Additional generation parameters passed through to the model. | No | `{}` |
### **Example Request**
```json theme={null}
{
"song_reference_url": "https://storage.soundverse.ai/.../original_song.mp3",
"prompt": "upbeat jazz remix with brass horns"
}
```
### **Code Examples**
```python 🐍 Python theme={null}
import requests
import json
url = "https://api.soundverse.ai/v7/generate/remix"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"song_reference_url": "https://storage.soundverse.ai/.../original_song.mp3",
"prompt": "upbeat jazz remix with brass horns"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
for line in response.iter_lines():
if line:
text = line.decode('utf-8')
if text.startswith('data: '):
data = json.loads(text[6:])
print(data)
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v7/generate/remix";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
song_reference_url: "https://storage.soundverse.ai/.../original_song.mp3",
prompt: "upbeat jazz remix with brass horns",
};
const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
lines.forEach(line => {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
});
}
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v7/generate/remix" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"song_reference_url": "https://storage.soundverse.ai/.../original_song.mp3",
"prompt": "upbeat jazz remix with brass horns"
}' --no-buffer
```
### **Streaming Response**
#### **Fields**
> 🛈 The fields below are used in the chunks sent by SSE during the streaming process.
| Parameter | Type | Description |
| --------------------- | --------- | ----------------------------------------------------------- |
| **`isComplete`** | `bool` | Indicates if the streaming response is complete. |
| **`status`** | `string` | Current status of the remix process. |
| **`chunkIndex`** | `integer` | Index of the current chunk in the streaming sequence. |
| **`message_id`** | `string` | Unique identifier for the remix request. |
| **`stream_url`** | `string` | URL to access the generated audio stream when ready. |
| **`version`** | `integer` | Version of the generated content. |
| **`album_art`** | `string` | URL of the album art associated with the generated content. |
| **`song_name`** | `string` | Name of the generated track. |
| **`progress`** | `integer` | Progress percentage of the generation process (`0–100`). |
| **`streaming_ready`** | `bool` | Indicates if audio is ready for streaming. |
| **`audio_url`** | `string` | URL of the final generated audio file. |
| **`error`** | `string` | Error message if any issues occurred during processing. |
| **`operation`** | `string` | Type of operation being performed (`"remix_song"`). |
#### **Stages of Streaming Response**
##### **Validating**
sent immediately after the request is received and validated
```json theme={null}
data: {"isComplete": false, "status": "validating", "chunkIndex": 0}
```
***
##### **Queued**
request has been accepted and is waiting to be processed
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "queued", "album_art": "https://storage.soundverse.ai/...", "song_name": "Remix Title", "chunkIndex": 1}
```
> `message_id` can be used to track the request using the [/status/generation/](/api_documentation.mdx#-generation-status-endpoints) endpoint
***
##### **Starting / Initializing**
the remix job is being prepared
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "starting", "chunkIndex": 2}
data: {"message_id": "...", "isComplete": false, "status": "initializing", "chunkIndex": 3}
```
***
##### **Uploading**
the reference audio is being uploaded to the model
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "uploading", "chunkIndex": 4}
```
***
##### **Streaming (with progress)**
remix is generating; `progress` increments from `0` to `100`
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "streaming", "progress": 0, "chunkIndex": 5}
data: {"message_id": "...", "isComplete": false, "status": "streaming", "progress": 50, "chunkIndex": 6}
data: {"message_id": "...", "isComplete": false, "status": "streaming", "progress": 100, "stream_url": "https://api.soundverse.ai/...", "streaming_ready": true, "version": 1, "chunkIndex": 7}
```
> **Note:** `progress` may hold at `90` for several minutes while the model finalizes and uploads the output audio. This is expected. The SSE connection remains open and active during this time. The stream will resume with a `completed` chunk and `audio_url` once the file is ready.
***
##### **Completed**
remix is finished and the final audio is available
```json theme={null}
data: {"message_id": "...", "isComplete": true, "status": "completed", "audio_url": "https://storage.soundverse.ai/...", "album_art": "https://storage.soundverse.ai/...", "song_name": "Remix Title", "progress": 100, "chunkIndex": 8}
```
***
### **Possible Errors**
**Missing prompt and lyrics:**
```json theme={null}
{
"detail": "Either prompt or lyrics must be provided"
}
```
**Reference audio too large (> 10 MB):**
```json theme={null}
{
"success": false,
"message": "Reference audio error: File too large: 12657318 bytes (max: 10485760)"
}
```
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Generate AI Singing - v2
Source: https://help.soundverse.ai/enterprise-api/generate/ai-singing-gen/ai-singing-gen-v2
Generate AI singing from lyrics with optional style and audio reference.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## Generate AI Singing from Lyrics
* This endpoint generates **AI singing** from provided **lyrics** using AI models.
***
#### **Core Parameters**
> The parameters below define the request body for this API.
| Parameter | Type | Required? | Description |
| ------------------ | -------- | ----------- | --------------------------------------------------------------- |
| **`lyrics`** | `string` | ✅ Required | The lyrics to be sung by the AI-generated singing. |
| **`styleOfMusic`** | `string` | ⚠️ Optional | Preferred style. Select one from supported styles listed below. |
| **`audioUrl`** | `string` | ⚠️ Optional | URL to a reference audio file for musical influence. |
> The audio URL must contain only singing vocals without background music. If `audioUrl` is provided, `styleOfMusic` will be ignored.
#### **Supported Music Styles**
The `styleOfMusic` parameter can be one of the following values:
* Pop(Female)
* Pop(Male)
* Rap
* Hiphop
* Vocal Chops
* Hyperpop (Female)
* Meow Meow Cat
* Rock
* Kawaii
* Hard Rock
* Metal
* Vocoder
* ASMR Singing
* Choir
* Orchestral Choir
* Gregorian Chant
* Ancient Chant
* Spoken Word
* Voicemail (Male)
* Voicemail (Female)
* Cute Kkey
* Ghost Whispering
* Group People Whispering
* Mongolian Throat Singing
***
#### Request Body
```json theme={null}
{
"lyrics": "string",
"styleOfMusic": "string",
"audioUrl": "string"
}
```
#### Code Samples
```python theme={null}
import requests
url = "https://api.soundverse.ai/v2/generate/ai-singing-gen"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"lyrics": "Verse 1: Walking down the street, feeling the beat...",
"styleOfMusic": "Pop",
"audioUrl": "optional"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```sh theme={null}
curl -X POST "https://api.soundverse.ai/v2/generate/ai-singing-gen" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"lyrics": "Verse 1: Walking down the street, feeling the beat...",
"styleOfMusic": "Pop",
"audioUrl": "optional"
}'
```
```javascript theme={null}
const url = "https://api.soundverse.ai/v2/generate/ai-singing-gen";
const headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
};
const payload = {
lyrics: "Verse 1: Walking down the street, feeling the beat...",
styleOfMusic: "Pop",
audioUrl: "optional"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```
#### Response
```sh theme={null}
{
"messageId": "string",
"prompt": "string",
"albumArt": "string",
"aiReply": "string",
"audioData": [
{
"audioUrl": "string",
"songName": "string",
"licenses": {
"licenses": "string"
}
}
]
}
```
```sh theme={null}
{
"detail": "Invalid response from generation service"
}
```
```sh theme={null}
{
"detail": "Generation failed or timed out after polling."
}
```
#### Response Fields
| Field | Type | Description |
| ----------------- | -------- | -------------------------------------------------- |
| **`messageId`** | `string` | Unique identifier for the generation request. |
| **`prompt`** | `string` | The processed prompt used for generation. |
| **`albumArt`** | `string` | URL to the generated album artwork. |
| **`aiReply`** | `string` | AI-generated message about the creation. |
| **`audioData`** | `array` | Array containing the generated audio file(s). |
| └─ **`audioUrl`** | `string` | Direct URL to download/stream the generated audio. |
| └─ **`songName`** | `string` | Name/title of the generated song. |
| └─ **`licenses`** | `object` | Licensing information for the generated content. |
#### Sample Output
```
{
"messageId": "68f28481ce60695f903644b8",
"prompt": "La la la, singing in the rain, feeling happy and free",
"albumArt": "https://storage.soundverse.ai/soundverse-album-art/681babcdc9b9a92b09132ff5/681babcdc9b9a92b09132ff5/20251017180149_00000_album_cover_art_for_La_la_la_singing_in_the_rain_feeling_happy_and_free.png",
"aiReply": "The digital canvas has come alive with your audio masterpiece. It beckons you to listen, explore, and be inspired.",
"audioData": [
{
"audioUrl": "https://storage.soundverse.ai/x-one/681babcdc9b9a92b09132ff5/681babcdc9b9a92b09132ff5/tmpsyokfwlm.mp3",
"songName": "Raindrop Serenade: Melodies of Joyful Liberation",
"licenses": {
"licenses": "Royalty-Free"
}
}
]
}
```
#### Possible Errors :
* If Rate Limits have been passed for User.
```
{
"success": False,
"message": "Rate limits have been passed for the user.",
}
```
* If NSFW words are detected
```
{
"success": False,
"message": "NSFW words detected. Please try again with different lyrics.",
}
```
* If Artist name is detected
```
{
"success": False,
"message": "Artist name detected. Please try again with different lyrics.",
}
```
# Generate AI Song - v5
Source: https://help.soundverse.ai/enterprise-api/generate/ai-song-gen/ai-song-gen-v5
Generate complete AI songs with lyrics and audio using advanced AI models.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Generate Song (v5)**
* The API supports both [streaming](../ai-song-gen/ai-song-gen-v5#streaming-response) and synchronous responses
### **Endpoints**
* POST `/v5/generate/song` **- streaming**
* POST `/v5/generate/song/sync` **- synchronous**
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| ------------------ | ------ | ---------------------------------------------------------- | -------- | ------------- |
| `prompt` | string | Text prompt describing the desired song. | Yes | N/A |
| `lyrics` | string | Lyrics for the song (generated if not provided). | No | N/A |
| `reference_url` | string | URL of reference audio to guide the generation (optional). | No | N/A |
| `instrumental_url` | string | URL of instrumental audio to incorporate (optional). | No | N/A |
| `vocal_url` | string | URL of vocal audio to incorporate (optional). | No | N/A |
| `melody_url` | string | URL of melody audio to guide the generation (optional). | No | N/A |
### **Example Request**
```json theme={null}
{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
```
### **Code Examples - Streaming**
```python 🐍 Python theme={null}
import requests
import json
url = "https://api.soundverse.ai/v5/generate/song"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
# Process streaming response
for line in response.iter_lines():
if line:
text = line.decode('utf-8')
if text.startswith('data: '):
data = json.loads(text[6:])
print(data)
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v5/generate/song";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "A cheerful pop song about friendship and adventure.",
lyrics: "Through every road we roam, together we are home",
};
const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
lines.forEach(line => {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
});
}
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v5/generate/song" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}' --no-buffer
```
### **Code Examples - Synchronous**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v5/generate/song/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v5/generate/song/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "A cheerful pop song about friendship and adventure.",
lyrics: "Through every road we roam, together we are home",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v5/generate/song/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}'
```
### **Streaming Response**
#### **Fields**
> 🛈 The fields below are used in the chunks sent by SSE during the streaming process.
| Parameter | Type | Description |
| --------------------- | --------- | ----------------------------------------------------------- |
| **`isComplete`** | `bool` | Indicates if the streaming response is complete. |
| **`status`** | `string` | Current status of the extension process. |
| **`chunkIndex`** | `integer` | Index of the current chunk in the streaming sequence. |
| **`message_id`** | `string` | Unique identifier for the extension request. |
| **`stream_url`** | `string` | URL to access the generated audio stream when ready. |
| **`version`** | `integer` | Version of the generated content. |
| **`album_art`** | `string` | URL of the album art associated with the generated content. |
| **`song_name`** | `string` | Name of the generated track. |
| **`progress`** | `integer` | Progress percentage of the generation process. `0-100` |
| **`streaming_ready`** | `bool` | Indicates if audio is ready for streaming. |
| **`version`** | `integer` | Version number of the generated audio. |
| **`audio_url`** | `string` | URL of the generated audio file. |
| **`error`** | `string` | Error message if any issues occurred during processing. |
| **`operation`** | `string` | Type of operation being performed (e.g., "extend\_song"). |
#### **Stages of Streaming Response**
##### **Initialization**
sent immediately after the request is received
```json theme={null}
data: {"isComplete": false, "status": "initializing", "chunkIndex": 0}
```
fields sent:
`isComplete`, `status`, `chunkIndex`
***
##### **Validation**
validates the request and bills the user
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "validated", "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title", "chunkIndex": 1}
```
> message\_id can be used to track the request using the [/status/generation/](/api_documentation.mdx#-generation-status-endpoints) endpoint
fields sent:
`message_id`, `isComplete`, `status`, `album_art`, `song_name`, `chunkIndex`
***
##### **Streaming**
begins generating the content and streams updates
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "streaming", "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title", "chunkIndex": 2}
```
fields sent:
`message_id`, `isComplete`, `status`, `album_art`, `song_name`, `chunkIndex`
***
##### **Processing & Running**
provides progress updates during generation
```json theme={null}
data: {"message_id": "...", "isComplete": false, "chunkIndex": 3, "status": "processing", "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title"}
data: {"message_id": "...", "isComplete": false, "chunkIndex": 4, "status": "running", "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title", "progress": 2}
```
fields sent:
`message_id`, `isComplete`, `chunkIndex`, `status`, `album_art`, `song_name`, `progress`
***
##### **Streaming Ready**
indicates that the stream url is ready and can be used for playback
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "streaming", "chunkIndex": 8, "stream_url": "https://api.soundverse.ai/...", "version": 1, "streaming_ready": true, "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title"}
```
fields sent:
`message_id`, `isComplete`, `status`, `chunkIndex`, `stream_url`, `version`, `streaming_ready`, `album_art`, `song_name`
> 🛈 Note: Two versions of the generated content are created per request (version 1 and version 2).
***
##### **Completed Generation**
indicates that the generation is complete
```json theme={null}
data: {"message_id": "...", "isComplete": false, "chunkIndex": 10, "status": "completed", "album_art": "https://storage.soundverse.ai/...", "audio_url": "https://storage.soundverse.ai/...", "song_name": "Song Title", "progress": 100}
```
fields sent:
`message_id`, `isComplete`, `chunkIndex`, `status`, `album_art`, `song_name`, `progress`, `audio_url`
***
##### **Uploading**
indicates that the generated content is being uploaded for further processing
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "uploading", "version": 1, "chunkIndex": 11}
```
fields sent:
`message_id`, `isComplete`, `status`, `version`, `chunkIndex`
***
##### **Final Completed Response**
provides the final details of the generated content including lyrics sections
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "completed", "version": 1, "lyrics_sections": [...], "chunkIndex": 12}
```
fields sent:
`message_id`, `isComplete`, `status`, `version`, `lyrics_sections`, `chunkIndex`
***
### **Synchronous Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"message_id": "...",
"album_art": "https://storage.soundverse.ai/x-one/.../userData/album-arts/album_art_1766599034.webp",
"song_name": "Midnight Drizzle Beats",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v1.mp3",
"song_name": "Midnight Drizzle Beats",
},
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v2.mp3",
"song_name": "Midnight Drizzle Beats",
}
]
}
```
### **Possible Errors**
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Invalid Prompt:**
```json theme={null}
{
"detail": "Invalid or empty prompt provided"
}
```
**NSFW Content Detected:**
```json theme={null}
{
"success": false,
"message": "NSFW words detected. Please try again with different lyrics."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Generate AI Song - v6
Source: https://help.soundverse.ai/enterprise-api/generate/ai-song-gen/ai-song-gen-v6
Generate complete AI songs with lyrics and audio using advanced AI models.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Generate Song (v6)**
* The API supports both [streaming](../ai-song-gen/ai-song-gen-v5#streaming-response) and synchronous responses
### **Endpoints**
* POST `/v6/generate/song` **- streaming**
* POST `/v6/generate/song/sync` **- synchronous**
***
### **Request Parameters**
| Parameter | Type | Description | Required | Default Value |
| ------------------ | ------ | ---------------------------------------------------------- | -------- | ------------- |
| `prompt` | string | Text prompt describing the desired song. | Yes | N/A |
| `lyrics` | string | Lyrics for the song (generated if not provided). | No | N/A |
| `reference_url` | string | URL of reference audio to guide the generation (optional). | No | N/A |
| `instrumental_url` | string | URL of instrumental audio to incorporate (optional). | No | N/A |
| `vocal_url` | string | URL of vocal audio to incorporate (optional). | No | N/A |
| `melody_url` | string | URL of melody audio to guide the generation (optional). | No | N/A |
### **Example Request**
```json theme={null}
{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
```
### **Code Examples - Streaming**
```python 🐍 Python theme={null}
import requests
import json
url = "https://api.soundverse.ai/v6/generate/song"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
# Process streaming response
for line in response.iter_lines():
if line:
text = line.decode('utf-8')
if text.startswith('data: '):
data = json.loads(text[6:])
print(data)
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v6/generate/song";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "A cheerful pop song about friendship and adventure.",
lyrics: "Through every road we roam, together we are home",
};
const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
lines.forEach(line => {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
});
}
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v6/generate/song" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}' --no-buffer
```
### **Code Examples - Synchronous**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v6/generate/song/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v6/generate/song/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "A cheerful pop song about friendship and adventure.",
lyrics: "Through every road we roam, together we are home",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v6/generate/song/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}'
```
### **Streaming Response**
#### **Fields**
> 🛈 The fields below are used in the chunks sent by SSE during the streaming process.
| Parameter | Type | Description |
| --------------------- | --------- | ----------------------------------------------------------- |
| **`isComplete`** | `bool` | Indicates if the streaming response is complete. |
| **`status`** | `string` | Current status of the extension process. |
| **`chunkIndex`** | `integer` | Index of the current chunk in the streaming sequence. |
| **`message_id`** | `string` | Unique identifier for the extension request. |
| **`stream_url`** | `string` | URL to access the generated audio stream when ready. |
| **`version`** | `integer` | Version of the generated content. |
| **`album_art`** | `string` | URL of the album art associated with the generated content. |
| **`song_name`** | `string` | Name of the generated track. |
| **`progress`** | `integer` | Progress percentage of the generation process. `0-100` |
| **`streaming_ready`** | `bool` | Indicates if audio is ready for streaming. |
| **`version`** | `integer` | Version number of the generated audio. |
| **`audio_url`** | `string` | URL of the generated audio file. |
| **`error`** | `string` | Error message if any issues occurred during processing. |
| **`operation`** | `string` | Type of operation being performed (e.g., "extend\_song"). |
#### **Stages of Streaming Response**
##### **Initialization**
sent immediately after the request is received
```json theme={null}
data: {"isComplete": false, "status": "initializing", "chunkIndex": 0}
```
fields sent:
`isComplete`, `status`, `chunkIndex`
***
##### **Validation**
validates the request and bills the user
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "validated", "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title", "chunkIndex": 1}
```
> message\_id can be used to track the request using the [/status/generation/](/api_documentation.mdx#-generation-status-endpoints) endpoint
fields sent:
`message_id`, `isComplete`, `status`, `album_art`, `song_name`, `chunkIndex`
***
##### **Streaming**
begins generating the content and streams updates
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "streaming", "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title", "chunkIndex": 2}
```
fields sent:
`message_id`, `isComplete`, `status`, `album_art`, `song_name`, `chunkIndex`
***
##### **Processing & Running**
provides progress updates during generation
```json theme={null}
data: {"message_id": "...", "isComplete": false, "chunkIndex": 3, "status": "processing", "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title"}
data: {"message_id": "...", "isComplete": false, "chunkIndex": 4, "status": "running", "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title", "progress": 2}
```
fields sent:
`message_id`, `isComplete`, `chunkIndex`, `status`, `album_art`, `song_name`, `progress`
***
##### **Streaming Ready**
indicates that the stream url is ready and can be used for playback
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "streaming", "chunkIndex": 8, "stream_url": "https://api.soundverse.ai/...", "version": 1, "streaming_ready": true, "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title"}
```
fields sent:
`message_id`, `isComplete`, `status`, `chunkIndex`, `stream_url`, `version`, `streaming_ready`, `album_art`, `song_name`
> 🛈 Note: Two versions of the generated content are created per request (version 1 and version 2).
***
##### **Completed Generation**
indicates that the generation is complete
```json theme={null}
data: {"message_id": "...", "isComplete": false, "chunkIndex": 10, "status": "completed", "album_art": "https://storage.soundverse.ai/...", "audio_url": "https://storage.soundverse.ai/...", "song_name": "Song Title", "progress": 100}
```
fields sent:
`message_id`, `isComplete`, `chunkIndex`, `status`, `album_art`, `song_name`, `progress`, `audio_url`
***
##### **Uploading**
indicates that the generated content is being uploaded for further processing
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "uploading", "version": 1, "chunkIndex": 11}
```
fields sent:
`message_id`, `isComplete`, `status`, `version`, `chunkIndex`
***
##### **Final Completed Response**
provides the final details of the generated content including lyrics sections
```json theme={null}
data: {"message_id": "...", "isComplete": false, "status": "completed", "version": 1, "lyrics_sections": [...], "chunkIndex": 12}
```
fields sent:
`message_id`, `isComplete`, `status`, `version`, `lyrics_sections`, `chunkIndex`
***
### **Synchronous Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"message_id": "...",
"album_art": "https://storage.soundverse.ai/x-one/.../userData/album-arts/album_art_1766599034.webp",
"song_name": "Midnight Drizzle Beats",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v1.mp3",
"song_name": "Midnight Drizzle Beats",
},
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v2.mp3",
"song_name": "Midnight Drizzle Beats",
}
]
}
```
### **Possible Errors**
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Invalid Prompt:**
```json theme={null}
{
"detail": "Invalid or empty prompt provided"
}
```
**NSFW Content Detected:**
```json theme={null}
{
"success": false,
"message": "NSFW words detected. Please try again with different lyrics."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Generate AI Song - v7
Source: https://help.soundverse.ai/enterprise-api/generate/ai-song-gen/ai-song-gen-v7
Generate complete AI songs with lyrics and audio using the latest AI models.
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Generate Song (v7)**
* The API supports both streaming and synchronous responses.
* Every streaming response begins with a `job_created` event containing a `job_id`, allowing you to safely disconnect and poll [`/v7/status`](/api_documentation.mdx#check-status-v5status) for the result.
### **Endpoints**
* POST `/v7/generate/song` **- streaming**
* POST `/v7/generate/song/sync` **- synchronous**
***
### **Request Parameters**
> At least one of `prompt` **or** an audio URL (`reference_url`, `instrumental_url`, `vocal_url`, `melody_url`) must be provided.
| Parameter | Type | Description | Required | Constraints |
| ------------------ | ------ | --------------------------------------------------------------------- | ----------- | -------------- |
| `prompt` | string | Text prompt describing the desired song. | Conditional | Max 1024 chars |
| `lyrics` | string | Lyrics for the song. Generated automatically if not provided. | No | — |
| `reference_url` | string | URL of reference audio to guide the style of the generation. | Conditional | Max 10 MB |
| `instrumental_url` | string | URL of instrumental audio to incorporate into the song. | Conditional | Max 10 MB |
| `vocal_url` | string | URL of vocal audio to incorporate into the song. | Conditional | Max 10 MB |
| `melody_url` | string | URL of melody audio to guide the melodic direction of the generation. | Conditional | Max 10 MB |
### **Example Request**
```json theme={null}
{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
```
### **Code Examples - Streaming**
```python 🐍 Python theme={null}
import requests
import json
url = "https://api.soundverse.ai/v7/generate/song"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
for line in response.iter_lines():
if line:
text = line.decode('utf-8')
if text.startswith('data: '):
data = json.loads(text[6:])
print(data)
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v7/generate/song";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "A cheerful pop song about friendship and adventure.",
lyrics: "Through every road we roam, together we are home",
};
const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
lines.forEach(line => {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
});
}
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v7/generate/song" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}' --no-buffer
```
### **Code Examples - Synchronous**
```python 🐍 Python theme={null}
import requests
url = "https://api.soundverse.ai/v7/generate/song/sync"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```javascript ⚡ JavaScript theme={null}
const url = "https://api.soundverse.ai/v7/generate/song/sync";
const headers = {
Authorization: "Bearer your_api_key_here",
"Content-Type": "application/json",
};
const payload = {
prompt: "A cheerful pop song about friendship and adventure.",
lyrics: "Through every road we roam, together we are home",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
```
```bash 💻 cURL theme={null}
curl -X POST "https://api.soundverse.ai/v7/generate/song/sync" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cheerful pop song about friendship and adventure.",
"lyrics": "Through every road we roam, together we are home"
}'
```
### **Streaming Response**
#### **Fields**
> 🛈 The fields below are used in the chunks sent by SSE during the streaming process. Not all fields appear in every chunk — see the stage breakdown below.
| Parameter | Type | Description |
| --------------------- | --------- | ---------------------------------------------------------------------------------------- |
| **`type`** | `string` | Event type. `"job_created"` on the first chunk only. |
| **`job_id`** | `string` | Persistent job identifier. Use this to poll `/v7/status` if you disconnect. |
| **`message_id`** | `string` | Unique identifier for the generation request. |
| **`isComplete`** | `bool` | `true` only on the final chunk of the stream. |
| **`status`** | `string` | Current status. One of: `validated`, `streaming`, `uploading`, `completed`, `failed`. |
| **`chunkIndex`** | `integer` | Index of the current chunk in the streaming sequence. |
| **`operation`** | `string` | Operation type. `"song_generate"` (prompt only) or `"song_with_reference"` (audio URLs). |
| **`content`** | `string` | Human-readable description of the current stage. |
| **`album_art`** | `string` | URL of the generated album art. |
| **`song_name`** | `string` | Name of the generated track. |
| **`version`** | `integer` | Version number of the audio output (`1` or `2`). |
| **`task_id`** | `string` | Internal task identifier for the generation job. |
| **`stream_url`** | `string` | Proxy URL for previewing audio before the final upload is complete. |
| **`streaming_ready`** | `bool` | `true` when the preview stream URL is ready for playback. |
| **`audio_url`** | `string` | Final URL of the uploaded audio file. |
| **`audio_id`** | `string` | Database ID of the generated audio asset. |
| **`audio_ready`** | `bool` | `true` when the final audio file is available for download. |
| **`duration`** | `float` | Duration of the generated audio in seconds. |
| **`bpm`** | `integer` | Beats per minute of the generated track. |
| **`lyrics_sections`** | `array` | Structured lyrics broken into labelled sections with timestamps. |
| **`tokens`** | `integer` | Tokens consumed by this chunk. |
| **`totalTokens`** | `integer` | Total tokens consumed for the request so far. |
| **`total_versions`** | `integer` | Total number of audio versions generated. Sent in the final completed chunk. |
| **`error`** | `bool` | `true` if this chunk represents an error. |
| **`detail`** | `string` | Error detail message when `error` is `true`. |
#### **Stages of Streaming Response**
##### **Job Created**
always the very first chunk; guarantees `job_id` is available before any processing begins
```json theme={null}
data: {"type": "job_created", "job_id": "...", "message_id": "...", "status": "processing", "isComplete": false, "chunkIndex": 0}
```
> Save `job_id` immediately — if your connection drops, you can resume tracking via [`/v7/status`](/api_documentation.mdx#check-status-v5status).
fields sent: `type`, `job_id`, `message_id`, `status`, `isComplete`, `chunkIndex`
***
##### **Validated**
request has been validated and billing authorised; song name and album art are assigned
```json theme={null}
data: {"message_id": "...", "status": "validated", "isComplete": false, "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title", "operation": "song_generate", "content": "Request validated", "chunkIndex": 1}
```
fields sent: `message_id`, `status`, `isComplete`, `album_art`, `song_name`, `operation`, `content`, `chunkIndex`
***
##### **Streaming**
audio generation is in progress; sent once per version when the preview stream becomes available
```json theme={null}
data: {"message_id": "...", "status": "streaming", "isComplete": false, "version": 1, "task_id": "...", "stream_url": "https://api.soundverse.ai/...", "streaming_ready": true, "content": "Streaming audio...", "chunkIndex": 2}
```
fields sent: `message_id`, `status`, `isComplete`, `version`, `task_id`, `stream_url`, `streaming_ready`, `content`, `chunkIndex`
> 🛈 Two versions are generated per request (`version: 1` and `version: 2`). A separate streaming chunk is sent for each version.
***
##### **Uploading**
generated audio is being uploaded to permanent storage
```json theme={null}
data: {"message_id": "...", "status": "uploading", "isComplete": false, "version": 1, "content": "Uploading audio...", "chunkIndex": 3}
```
fields sent: `message_id`, `status`, `isComplete`, `version`, `content`, `chunkIndex`
***
##### **Completed (per version)**
final audio file is ready; includes the permanent URL and metadata for that version
```json theme={null}
data: {"message_id": "...", "status": "completed", "isComplete": false, "version": 1, "audio_url": "https://storage.soundverse.ai/...", "audio_id": "...", "audio_ready": true, "duration": 60.0, "bpm": 120, "lyrics_sections": [...], "tokens": 100, "totalTokens": 200, "content": "Audio ready", "chunkIndex": 4}
```
fields sent: `message_id`, `status`, `isComplete`, `version`, `audio_url`, `audio_id`, `audio_ready`, `duration`, `bpm`, `lyrics_sections`, `tokens`, `totalTokens`, `content`, `chunkIndex`
***
##### **Completed (final)**
stream termination; confirms all versions are done
```json theme={null}
data: {"message_id": "...", "status": "completed", "isComplete": true, "operation": "song_generate", "total_versions": 2, "album_art": "https://storage.soundverse.ai/...", "song_name": "Song Title", "content": "Generation complete", "chunkIndex": 5}
```
fields sent: `message_id`, `status`, `isComplete`, `operation`, `total_versions`, `album_art`, `song_name`, `content`, `chunkIndex`
***
### **Synchronous Response**
#### **Sample Synchronous Output**
```json theme={null}
{
"job_id": "...",
"message_id": "...",
"album_art": "https://storage.soundverse.ai/x-one/.../userData/album-arts/album_art_1766599034.webp",
"audio_data": [
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/song_title_v1.mp3",
"song_name": "Song Title"
},
{
"audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/song_title_v2.mp3",
"song_name": "Song Title"
}
]
}
```
### **Possible Errors**
**Missing prompt and audio URL:**
```json theme={null}
{
"detail": "Either prompt or at least one of reference_url, instrumental_url, vocal_url, or melody_url must be provided"
}
```
**Prompt too long (> 1024 characters):**
```json theme={null}
{
"detail": "Prompt exceeds maximum length of 1024 characters"
}
```
**Audio file too large (> 10 MB):**
```json theme={null}
{
"success": false,
"message": "Reference audio file error: File too large"
}
```
**Rate Limit Exceeded:**
```json theme={null}
{
"success": false,
"message": "Rate limits have been passed for the user."
}
```
**Insufficient Balance:**
```json theme={null}
{
"success": false,
"message": "Insufficient balance for this operation."
}
```
**Service Unavailable:**
```json theme={null}
{
"success": false,
"message": "Service temporarily unavailable. Please try again in a moment.",
"error": "Database connection pool exhausted"
}
```
# Recognize Song - v5
Source: https://help.soundverse.ai/enterprise-api/generate/ai-song-recog/ai-song-recog-v5
Identify a song from an audio URL, uploaded file, or raw audio bytes using .
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
## **Recognize Song (v5)**
### **Endpoint**
* GET `/v5/recognize`
### **Behavior & Priority**
The endpoint accepts **one** of the following inputs (priority order):
1. `file` (multipart upload)
2. `audio_url` (query string)
3. raw audio bytes in the request body
If none are provided, the API returns a `400` error.
***
### **Request Parameters**
| Parameter | Type | Location | Description | Required | Default |
| ----------- | ------ | ------------------- | ------------------------------------ | -------- | ------- |
| `audio_url` | string | query | Remote audio file URL | No | N/A |
| `file` | file | multipart/form-data | Audio file upload | No | N/A |
| (raw body) | bytes | body | Raw audio bytes (e.g., `audio/mpeg`) | No | N/A |
> 🛈 For `audio_url`, the server downloads up to 25 MB and may wait up to 120 seconds for slow sources.
***
### **Response**
**Shape**
```json theme={null}
{
"recognized": true,
"data": {
"artist": "ROMA",
"title": "POTETO CHIP",
"album_art": "https://api.soundverse.ai/blob/...",
"album_name": "POTETO CHIP - Single",
"label": "Doodoo Records",
"released": "2025",
"albumadamid": "1846981767",
"isrc": "QT3FE2571493"
}
}
```
**Fields**
| Field | Type | Description |
| ------------ | ------------------ | ---------------------------------------- |
| `recognized` | bool | `true` if a match was found |
| `data` | `Response` \| null | Recognized track data (null if no match) |
**`Response`**
| Field | Type | Description |
| ------------- | -------------- | ------------- |
| `artist` | string \| null | Artist name |
| `title` | string \| null | Track title |
| `album_art` | string \| null | Album art URL |
| `album_name` | string \| null | Album name |
| `label` | string \| null | Label name |
| `released` | string \| null | Release year |
| `albumadamid` | string \| null | album ID |
| `isrc` | string \| null | ISRC code |
***
### **Example Requests**
```python 🐍 Python (audio_url) theme={null}
import requests
url = "https://api.soundverse.ai/v5/recognize"
headers = {"Authorization": "Bearer your_api_key_here"}
params = {"audio_url": "https://storage.soundverse.ai/.../audio.mp3"}
response = requests.get(url, headers=headers, params=params)
print(response.json())
```
```python 🐍 Python (file upload) theme={null}
import requests
url = "https://api.soundverse.ai/v5/recognize"
headers = {"Authorization": "Bearer your_api_key_here"}
files = {"file": ("audio.mp3", open("audio.mp3", "rb"), "audio/mpeg")}
response = requests.get(url, headers=headers, files=files)
print(response.json())
```
```javascript ⚡ JavaScript (audio_url) theme={null}
const url = new URL("https://api.soundverse.ai/v5/recognize");
url.searchParams.set("audio_url", "https://storage.soundverse.ai/.../audio.mp3");
const response = await fetch(url, {
method: "GET",
headers: { Authorization: "Bearer your_api_key_here" },
});
console.log(await response.json());
```
```javascript ⚡ JavaScript (file upload) theme={null}
const form = new FormData();
form.append("file", fileInput.files[0]);
const response = await fetch("https://api.soundverse.ai/v5/recognize", {
method: "GET",
headers: { Authorization: "Bearer your_api_key_here" },
body: form,
});
console.log(await response.json());
```
```bash 💻 cURL (audio_url) theme={null}
curl -G "https://api.soundverse.ai/v5/recognize" \
-H "Authorization: Bearer your_api_key_here" \
--data-urlencode "audio_url=https://storage.soundverse.ai/.../audio.mp3"
```
```bash 💻 cURL (file upload) theme={null}
curl -X GET "https://api.soundverse.ai/v5/recognize" \
-H "Authorization: Bearer your_api_key_here" \
-F "file=@audio.mp3;type=audio/mpeg"
```
```bash 💻 cURL (raw bytes) theme={null}
curl -X GET "https://api.soundverse.ai/v5/recognize" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: audio/mpeg" \
--data-binary "@audio.mp3"
```
***
### **No Match Example**
```json theme={null}
{
"recognized": false,
"data": null
}
```
***
### **Possible Errors**
**Missing Input (400)**
```json theme={null}
{
"detail": "Provide audio_url, file, or raw body bytes"
}
```
**Client Disconnected (499)**
```json theme={null}
{
"detail": "Client disconnected"
}
```
**Server Error (500)**
```json theme={null}
{
"detail": "Unexpected error message"
}
```
# Stem Separation API - v1
Source: https://help.soundverse.ai/enterprise-api/generate/ai-stem-separation/stem-separation
Soundverse's Enterprise API has moved to **apiv2.soundverse.ai** — new self-serve account setup, API keys, and billing are managed at **platform.soundverse.ai**. This page documents the legacy `api.soundverse.ai` API.
This endpoint allows users to **separate audio stems** from a provided track using AI.
***
#### Stem Separation API Overview
> The Stem Separation API by Soundverse allows you to extract specific parts (or "stems") of a song such as:
* Vocals
* Instruments
* All individual stems (vocals, drums, bass, etc.)
> This is useful for remixing, karaoke creation, music analysis, or background score extraction.
***
#### **Core Parameters**
> 🛈 The parameters below define the request body for this API.
| Parameter | Type | Required? | Description |
| -------------- | -------- | ---------- | ---------------------------- |
| **`audioUrl`** | `string` | ✅ Required | URL to the input audio file. |
***
#### **Request Body**
```
Request body:
{
"audioUrl": "string"
}
```
***
#### Code Samples
* **Python code sample**
```python theme={null}
import requests
url = "https://api.soundverse.ai/v1/generate/stem-separation/vocals"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audioUrl": "string"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```python theme={null}
import requests
url = "https://api.soundverse.ai/v1/generate/stem-separation/instruments"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audioUrl": "string"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
```python theme={null}
import requests
url = "https://api.soundverse.ai/v1/generate/stem-separation/all-stems"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
payload = {
"audioUrl": "string"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
```
* **cURL**
```sh theme={null}
curl -X POST "https://api.soundverse.ai/v1/generate/stem-separation/vocals" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"audioUrl": "string"
}'
```
```sh theme={null}
curl -X POST "https://api.soundverse.ai/v1/generate/stem-separation/instruments" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"audioUrl": "string"
}'
```
```sh theme={null}
curl -X POST "https://api.soundverse.ai/v1/generate/stem-separation/all-stems" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"audioUrl": "string"
}'
```
#### Response
```sh theme={null}
[
{
"audioName": "vocals",
"audioUrl": "str"
}
]
```
```sh theme={null}
[
{
"audioName": "Guitar",
"audioUrl": "str"
},
{
"audioName": "Other",
"audioUrl": "str"
},
{
"audioName": "Drums",
"audioUrl": "str"
},
{
"audioName": "Bass",
"audioUrl": "str"
},
{
"audioName": "Piano",
"audioUrl": "str",
}
]
```
```sh theme={null}
[
{
"audioName": "vocals",
"audioUrl": "str"
},
{
"audioName": "Guitar",
"audioUrl": "str"
},
{
"audioName": "Other",
"audioUrl": "str"
},
{
"audioName": "Drums",
"audioUrl": "str"
},
{
"audioName": "Bass",
"audioUrl": "str"
},
{
"audioName": "Piano",
"audioUrl": "str",
}
]
```
***
#### Possible Errors
* If NSFW words are detected
```
{
"success": False,
"message": "NSFW words detected. Please try again with a different prompt.",
}
```
* If Artist name is detected
```
{
"success": False,
"message": "Artist name detected. Please try again with a different prompt.",
}
```
* Generation Fail Error
```
{
"Detail": "str"
}
```
***
# Comprehensive Search
Source: https://help.soundverse.ai/enterprise-api/trace/comprehensive-search
Queue a Comprehensive Search similarity search using baseline similarity alignments (Track, Light Stem, and Motif).
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Comprehensive Search Endpoints**
Comprehensive Search executes a fixed comparison profile composed of three distinct similarity alignment metrics:
1. **Track-level alignment**
2. **Light-stem alignment** (Vocals and Accompaniment separation)
3. **Motif alignment** (Micro-melodic motif detection on Vocals and Accompaniment/Other stems)
These endpoints return a `job_id` immediately. You must poll `GET /trace/v1/comprehensive1/jobs/{job_id}` to retrieve results.
Two routing variants are available depending on the similarity model used:
* POST `/trace/v1/comprehensive1/type1` (Legacy)
* POST `/trace/v1/comprehensive1/type2` (New Efficient)
### **Request Body Fields**
| Field | Type | Required For | Description |
| :----------------------- | :------ | :----------- | :------------------------------------------ |
| `search_type` | string | ✅ all | "1:1", "1:n", or "m:n". |
| `limit` | int | | Max matches to return. |
| `verbose_output` | boolean | | Detailed frame-by-frame similarities. |
| `query_url` | string | 1:1, 1:n | blob\_name of the query track. |
| `candidate_url` | string | 1:1 | blob\_name of the candidate track. |
| `candidate_dataset_name` | string | 1:n, m:n | Dataset name to search against. |
| `query_dataset_name` | string | m:n | The query dataset name (for bulk matching). |
***
### **Examples**
```json 1:1 Search theme={null}
{
"search_type": "1:1",
"query_url": "dataset/987f6543-e21b-12d3-a456-426614174000_query.wav",
"candidate_url": "dataset/123e4567-e89b-12d3-a456-426614174000_candidate.wav"
}
```
```json 1:N Search theme={null}
{
"search_type": "1:n",
"query_url": "dataset/987f6543-e21b-12d3-a456-426614174000_query.wav",
"candidate_dataset_name": "my-reference-catalog",
"limit": 3
}
```
```json M:N Search theme={null}
{
"search_type": "m:n",
"query_dataset_name": "incoming-batch-01",
"candidate_dataset_name": "reference-catalog",
"limit": 3
}
```
***
### **Response**
**Status 202 Accepted**
```json theme={null}
{
"success": true,
"data": {
"job_id": "search_job_f5g6h7j8-k9l0-1a2b-3c4d-5e6f7g8h9i0j",
"status": "pending",
"usecase_id": "comprehensive1",
"search_type": "1:1",
"n": 1,
"m": 1,
"cost_usd": 0.15
}
}
```
# Comprehensive Search Status
Source: https://help.soundverse.ai/enterprise-api/trace/comprehensive-search-status
Poll the status and retrieve structured alignment results of a Comprehensive Search search.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Get Comprehensive Search Status**
Check the status and fetch results for a Comprehensive Search similarity search job. This endpoint is **completely free** to poll and does not deduct balance.
* GET `/trace/v1/comprehensive1/jobs/{job_id}`
### **Path Parameters**
| Parameter | Type | Required | Description |
| :-------- | :----- | :------- | :--------------------------------------------------------------- |
| `job_id` | string | ✅ | Unique job ID returned from a Comprehensive Search POST request. |
***
### **Response Examples**
```json Completed 1:N Response theme={null}
{
"success": true,
"data": {
"job_id": "comprehensive_job_uuid",
"status": "completed",
"search_type": "1:n",
"error": null,
"results": {
"status": "success",
"timestamp": "2026-06-19 22:45:00",
"search_type": "1:n",
"results": [
{
"query_audio_id": "dataset/query_song_1.wav",
"matches": [
{
"id": "dataset/candidate_song_1.wav",
"score": 0.804,
"percentage": 80.4,
"payload": {
"filename": "candidate_song_1.wav",
"dataset_id": "dataset-uuid",
"metric": "max_then_mean"
},
"full_audio_latent_scores": {
"max": 0.837,
"max_then_mean": 0.804,
"hungarian_mean": 0.705,
"matched_windows": [
{
"query_index": 7,
"candidate_index": 4,
"similarity_score": 0.786,
"query_audio_timestamps": [[62.3], [70.3]],
"candidate_audio_timestamps": [[62.5], [70.5]]
}
]
},
"vocal_latent_scores": {
"max": 0.555,
"max_then_mean": 0.489,
"hungarian_mean": 0.340
},
"motif_matches": {
"vocals_stem": {
"total_matches": 9,
"matches": [
{
"similarity_score": 0.638,
"query": { "motif_audio_timestamps": [141.4, 152.5] },
"candidate": { "motif_audio_timestamps": [88.8, 97.4] }
}
]
}
}
}
]
}
],
"summary": {
"full_audio_max_then_mean": 0.505,
"vocal_max": 0.935,
"motif_matches_other_count": 313,
"motif_matches_vocals_count": 2706
}
}
}
}
```
```json Completed M:N Response theme={null}
{
"success": true,
"data": {
"job_id": "comprehensive_job_uuid",
"status": "completed",
"search_type": "m:n",
"error": null,
"results": {
"status": "success",
"timestamp": "2026-06-19 22:45:00",
"search_type": "m:n",
"results": [
{
"query_audio_id": "dataset/incoming_track_1.wav",
"matches": [
{
"id": "dataset/catalog_reference_99.wav",
"score": 0.804,
"percentage": 80.4,
"payload": {
"filename": "original_mix_99.wav",
"dataset_id": "ref-uuid",
"metric": "max_then_mean"
},
"full_audio_latent_scores": {
"max": 0.837,
"max_then_mean": 0.804,
"hungarian_mean": 0.705,
"matched_windows": [
{
"query_index": 7,
"candidate_index": 4,
"similarity_score": 0.786,
"query_audio_timestamps": [[62.3], [70.3]],
"candidate_audio_timestamps": [[62.5], [70.5]]
}
]
},
"vocal_latent_scores": {
"max": 0.555,
"max_then_mean": 0.489,
"hungarian_mean": 0.340
},
"motif_matches": {
"vocals_stem": {
"total_matches": 9,
"matches": [
{
"similarity_score": 0.638,
"query": { "motif_audio_timestamps": [141.4, 152.5] },
"candidate": { "motif_audio_timestamps": [88.8, 97.4] }
}
]
}
}
}
]
},
{
"query_audio_id": "dataset/incoming_track_2.wav",
"matches": [
{
"id": "dataset/catalog_reference_99.wav",
"score": 0.804,
"percentage": 80.4,
"payload": {
"filename": "original_mix_99.wav",
"dataset_id": "ref-uuid",
"metric": "max_then_mean"
},
"full_audio_latent_scores": {
"max": 0.837,
"max_then_mean": 0.804,
"hungarian_mean": 0.705,
"matched_windows": [
{
"query_index": 7,
"candidate_index": 4,
"similarity_score": 0.786,
"query_audio_timestamps": [[62.3], [70.3]],
"candidate_audio_timestamps": [[62.5], [70.5]]
}
]
},
"vocal_latent_scores": {
"max": 0.555,
"max_then_mean": 0.489,
"hungarian_mean": 0.340
},
"motif_matches": {
"vocals_stem": {
"total_matches": 9,
"matches": [
{
"similarity_score": 0.638,
"query": { "motif_audio_timestamps": [141.4, 152.5] },
"candidate": { "motif_audio_timestamps": [88.8, 97.4] }
}
]
}
}
}
]
}
],
"summary": {
"full_audio_max_then_mean": 0.505,
"vocal_max": 0.935,
"motif_matches_other_count": 313,
"motif_matches_vocals_count": 2706
}
}
}
}
```
***
### **Job States**
* `pending`: Job is queued and waiting for an available worker thread on the GPU pool.
* `processing`: Job is active, running stem extraction, audio encoding, and sequence alignments.
* `completed`: Job completed successfully. All metric breakdowns, ranked lists, and summaries are available.
* `failed`: An error occurred during processing or alignment. Look in the `error` field of the payload for diagnostic details.
# Datasets
Source: https://help.soundverse.ai/enterprise-api/trace/datasets
Create, view, and list datasets for similarity indexing.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Create Dataset**
Create a named dataset to organize your candidate tracks.
* POST `/trace/v1/dataset`
### **Request Body**
| Field | Type | Required | Description |
| :------------ | :----- | :------- | :----------------------------------- |
| `name` | string | ✅ | Unique name for the dataset |
| `description` | string | | Optional description for the dataset |
```json Request Body Example theme={null}
{
"name": "my-reference-catalog",
"description": "Our main candidate lookup library"
}
```
### **Response**
**Status 201 Created**
```json theme={null}
{
"dataset_id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"user_id": "user_12345",
"name": "my-reference-catalog",
"description": "Our main candidate lookup library",
"created_at": "2026-06-19T12:00:00Z",
"ingested_tasks": [],
"encoder_types": []
}
```
***
## **List Datasets**
List all datasets owned by the authenticated API key user.
* GET `/trace/v1/dataset`
### **Response**
**Status 200 OK**
```json theme={null}
[
{
"dataset_id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"user_id": "user_12345",
"name": "my-reference-catalog",
"description": "Our main candidate lookup library",
"created_at": "2026-06-19T12:00:00Z",
"ingested_tasks": [
"full_audio_latent",
"light_stem"
],
"encoder_types": [
"type1"
]
}
]
```
***
## **Get Dataset Details**
Retrieve details for a specific dataset using its unique ID.
* GET `/trace/v1/dataset/{dataset_id}`
### **Response**
**Status 200 OK**
```json theme={null}
{
"dataset_id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"user_id": "user_12345",
"name": "my-reference-catalog",
"description": "Our main candidate lookup library",
"created_at": "2026-06-19T12:00:00Z",
"ingested_tasks": [
"full_audio_latent",
"light_stem"
],
"encoder_types": [
"type1"
]
}
```
***
## **Limits & Validation Errors**
To prevent processing failures, datasets enforce the following system limits:
* **File Sizes**: Max 100 MB per file.
* **Track Duration**: Max 300 seconds (5 minutes) per track.
* **File Formats**: `.mp3`, `.wav`, `.flac`, `.m4a` files only.
* **Max Number of Files**: Max 10 blobs per `/trace/v1/ingest/type*` request.
* **Max Search Matrix (M×N)**: Max 100,000 comparison pairs per search job.
### **Common Error Scenarios**
* `400 Bad Request`: Returned if a batch exceeds 10 files, the audio duration is longer than 5 minutes, or the file format is unsupported.
* `413 Payload Too Large`: Returned during upload if a file exceeds 100 MB.
* `404 Not Found`: Returned if the requested `dataset_name` does not exist in the database.
# Ingest Audio
Source: https://help.soundverse.ai/enterprise-api/trace/ingest
Queue preprocessing for one or more uploaded audio blobs into a dataset.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Ingest Audio**
Preprocess one or more uploaded raw audio blobs to compute acoustic features, split stems, extract motifs, and index them into your target dataset. This operation is idempotent.
* POST `/trace/v1/ingest/type1` (Forces the legacy model)
* POST `/trace/v1/ingest/type2` (Forces the new efficient model)
### **Request Body Fields**
| Field | Type | Required | Default | Description |
| :------------- | :-------- | :------- | :---------------------- | :------------------------------------------------ |
| `dataset_name` | string | ✅ | None | Name of your target dataset. |
| `audio_blobs` | string\[] | ✅ | None | Array of `blob_name` values. Max: 10 per request. |
| `tasks` | string\[] | | `["full_audio_latent"]` | List of features to compute. |
| `webhook_url` | string | | | URL for completion callbacks. |
#### **Valid `tasks` Options:**
* `full_audio_latent`: Encodes full audio sequence latents.
* `stem_vocals`: Splits vocals stem.
* `stem_bass`: Splits bass stem.
* `stem_drums`: Splits drums stem.
* `stem_other`: Splits accompaniment/other stem.
* `light_stem`: Splits 2 stems (vocals + accompaniment).
* `motif`: Computes melody contours / motif chroma.
* `section`: Runs structural section boundary segmentation.
***
### **Ingestion In-App Pricing**
| Ingestion Profile | Enterprise Price |
| :----------------------------------------------- | :--------------------------------------------------- |
| **Track Only** *(Full Audio Latents)* | **\$0.0300** |
| **Comprehensive Search Profile (New Efficient)** | **$0.0352** (3-min song) // **$0.0513** (5-min song) |
| **Comprehensive Search Profile (Legacy)** | **$0.0388** (3-min song) // **$0.1554** (5-min song) |
| **Heaviest Custom Ingest** | **\$0.1628** (5-min song) |
***
### **Request Example**
```json theme={null}
{
"dataset_name": "my-reference-catalog",
"audio_blobs": [
"dataset/123e4567-e89b-12d3-a456-426614174000_song_candidate_1.wav"
],
"tasks": [
"full_audio_latent",
"light_stem",
"motif"
],
"webhook_url": "https://my-service.com/webhooks/trace"
}
```
### **Response**
**Status 202 Accepted**
```json theme={null}
{
"success": true,
"data": {
"job_id": "ingest_job_7e8f9a0b-c1d2-3e4f-5a6b-7c8d9e0f1a2b",
"cost_usd": 0.0513
}
}
```
# Ingestion Status
Source: https://help.soundverse.ai/enterprise-api/trace/ingest-status
Poll progress and verify completions of audio preprocessing.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Get Ingestion Status**
Check the preprocessing and vector-indexing status of your audio uploads. This endpoint is **completely free** and does not deduct balance.
* GET `/trace/v1/ingest/{job_id}`
### **Path Parameters**
| Parameter | Type | Required | Description |
| :-------- | :----- | :------- | :--------------------------------------------------------- |
| `job_id` | string | ✅ | Unique job ID returned from `POST /trace/v1/ingest/type*`. |
### **Response**
**Status 200 OK**
```json theme={null}
{
"success": true,
"data": {
"job_id": "ingest_job_7e8f9a0b-c1d2-3e4f-5a6b-7c8d9e0f1a2b",
"status": "completed",
"tasks_requested": ["full_audio_latent", "light_stem", "motif"],
"artifacts": [
{
"audio_id": "song_candidate_1.wav",
"artifact_type": "full_audio_latent",
"status": "complete"
}
]
}
}
```
***
### **Job Status Values**
* `pending`: Audio files are queued and waiting to load onto the GPU worker.
* `running`: Preprocessing (stem splitting and audio latent encoding) is currently active.
* `completed`: Audio features have been successfully computed and indexed. Candidates are now searchable.
* `failed`: Processing failed. Refer to the `error` field for diagnosis.
# Library
Source: https://help.soundverse.ai/enterprise-api/trace/library
List all uploaded raw audio files in your library.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Get Library**
List all audio tracks uploaded to your library.
* GET `/trace/v1/library`
### **Query Parameters**
None
### **Response**
**Status 200 OK**
```json theme={null}
[
{
"id": 45,
"user_id": "user_12345",
"filename": "song_candidate_1.wav",
"blob_name": "dataset/123e4567-e89b-12d3-a456-426614174000_song_candidate_1.wav",
"file_size": 25165824,
"duration_seconds": 180.0,
"mime_type": "audio/wav",
"created_at": "2026-06-19T12:05:00Z"
}
]
```
# Overview
Source: https://help.soundverse.ai/enterprise-api/trace/overview
Understand how Soundverse Trace works before calling the API.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## What is Trace?
Soundverse Trace is an audio similarity engine built for large-scale music identification, copyright detection, and catalog matching. It takes audio files, extracts deep acoustic fingerprints from them, and lets you run fast, accurate similarity comparisons across millions of tracks.
Unlike simple audio fingerprinting (which requires an exact or near-exact match), Trace finds musically similar content even when pitch, tempo, arrangement, or production style has changed. It operates across several levels of musical detail, from the full mix down to individual stems and melodic motifs.
***
## How It Works
Trace processes audio in two stages: **Ingestion** and **Search**.
### Stage 1: Ingestion
Before you can search, every track must be preprocessed and indexed. During ingestion, Trace:
1. **Encodes** the full audio into a sequence of latent vectors using a deep neural model.
2. **Separates stems**: splitting the track into vocals, bass, drums, and accompaniment using our source-separation models.
3. **Fingerprints vocals**: extracting vocal-specific identity vectors for precise vocal-level matching.
4. **Extracts motifs**: short melodic contours (chroma-based) that capture repeating melodic patterns.
5. **Detects sections**: structural boundaries like intro, verse, chorus.
6. **Indexes and stores everything** securely in our high-performance vector index and cloud storage for fast retrieval.
Ingestion is a one-time cost per track. Once a track is ingested into a dataset, it can be searched against indefinitely.
### Stage 2: Search
A search compares one or more query tracks against an indexed dataset. You choose the **search depth** which controls what acoustic features are compared:
| Depth | What It Compares |
| :------------- | :----------------------------------------- |
| `track` | Full audio latent sequence |
| `light_stem` | Full audio + vocal stem latents |
| `stem` | Full audio + all 4 individual stem latents |
| `motif` | Short melodic contour matching |
| `section` | Structural section-level alignment |
| `stem_section` | Stems compared at the section level |
Results are returned as normalized similarity scores mapped to a range of 0 to 1 (with 0 indicating no similarity and 1 indicating a perfect match).
***
## Comprehensive Search
Comprehensive Search is a fixed, pre-tuned search profile that runs three types of comparisons simultaneously:
1. **Track-level alignment** on the full audio latent sequence
2. **Light Stem alignment** on separated vocals and accompaniment
3. **Motif alignment** on melodic contours extracted from vocals and accompaniment
It is designed for use cases requiring high-confidence similarity detection, such as copyright screening, where a single metric is not sufficient. All three metrics are run and returned together so you can make an informed decision based on multiple signals.
***
## Key Definitions
**Stems**: Individual instrument/vocal components separated from the full mix. Stem-level comparison catches similarity that is masked in the full mix.
**Motif**: A short repeating melodic fragment, captured as a chroma contour. Motif matching detects melodic plagiarism even when the instrumentation or key has changed.
**Dataset**: A named collection of ingested tracks. All search queries run against a dataset. You manage datasets via the Datasets API.
***
## Workflow: Step by Step
```
1. Create a dataset
POST /trace/v1/dataset
2. Upload your audio files
POST /trace/v1/upload (one file at a time, returns blob_name)
3. Ingest the uploaded files into your dataset
POST /trace/v1/ingest/type1 (up to 10 files per request, legacy model)
POST /trace/v1/ingest/type2 (up to 10 files per request, new efficient model)
GET /trace/v1/ingest/{job_id} (poll until complete)
4. Run a similarity search
POST /trace/v1/search/type1 (similarity search with legacy model)
POST /trace/v1/search/type2 (similarity search with new efficient model)
POST /trace/v1/comprehensive1/type1 (Comprehensive Search: Legacy)
POST /trace/v1/comprehensive1/type2 (Comprehensive Search: New Efficient)
5. Poll for results
GET /trace/v1/jobs/{job_id} (general search results)
GET /trace/v1/comprehensive1/jobs/{job_id} (Comprehensive Search results)
```
***
## What to Expect from the APIs
* **Ingestion and search are asynchronous.** Every `POST` returns a `job_id` immediately. You must poll the corresponding `GET` endpoint to retrieve results.
* **Upload is free.** The `POST /trace/v1/upload` endpoint does not deduct from your balance.
* **Polling is free.** Status check endpoints (`GET .../jobs/{job_id}` and `GET .../comprehensive1/jobs/{job_id}`) do not deduct balance.
* **Costs are dynamic.** Ingestion cost is calculated based on track duration and tasks requested. Search cost is based on the number of comparison pairs (N × M).
* **Idempotent ingestion.** Re-ingesting a file that already exists in a dataset is automatically skipped. You are not charged.
* **Rate limits apply per API request**, not per track. Each ingest request can include up to 10 audio files.
***
## Frequently Asked Questions (FAQ)
### What makes Trace different from standard audio fingerprinting (like Shazam)?
Standard audio fingerprinting is designed to find exact or near-exact matches of a specific recording (same audio file, same mastering). Trace uses deep neural models to extract semantic embeddings (latents). This allows it to identify matches even if the tempo is changed, the pitch is shifted, a new instrument is used, or the song is re-arranged.
### When should I use `type1` vs. `type2` models?
* **`type1` (Legacy):** Legacy model.
* **`type2` (New Efficient):** New efficient model.
*Note: You must ingest your datasets using the corresponding model (`/ingest/type1` or `/ingest/type2`) before searching with that model.*
### Why are ingestion and search asynchronous?
Processing audio files and computing detailed similarity comparisons are complex computational tasks. To handle requests reliably and efficiently without blocking connection threads, these operations run in the background. They return a `job_id` instantly, allowing you to poll for completion.
### Can I search an audio file directly without creating a dataset?
Yes! A **1:1 Search** allows you to compare a query audio file directly against a candidate audio file by providing their uploaded blob names. However, for **1:N** or **M:N** searches, you must first ingest the candidate files into a dataset. This pre-computes and indexes their features, making future searches near-instantaneous.
### How is billing calculated?
* **Upload, listing, and polling status** are completely free.
* **Ingestion** is billed dynamically based on the audio duration and the specific tasks requested (e.g. track-only vs. full stems).
* **Search** is billed based on the number of comparison pairs (cardinality). For example, a 1:N search is billed for 1 query track × N candidate tracks.
### Is my audio stored permanently?
The audio files uploaded and their processing artifacts are saved, but will be automatically removed after 30 days.
# Search Similarity
Source: https://help.soundverse.ai/enterprise-api/trace/search
Queue a Trace similarity search job to find matches in your catalog.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Search Similarity**
Execute a similarity search between a query audio track and your candidate dataset using either the legacy (`type1`) or new efficient (`type2`) model. These endpoints return a `job_id` immediately. You must poll `GET /trace/v1/jobs/{job_id}` to retrieve results.
* POST `/trace/v1/search/type1` (Legacy)
* POST `/trace/v1/search/type2` (New Efficient)
### **Request Body Fields**
| Field | Type | Required For | Description |
| :----------------------- | :-------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------ |
| `search_type` | string | ✅ all | "1:1", "1:n", or "m:n". |
| `depth` | string | | Search resolution: "track", "stem", "light\_stem", "section", "stem\_section", or "motif". Defaults to "track". |
| `stem_types` | string\[] | | Stems to compare if depth is "stem" or "stem\_section". Defaults to `["vocals"]`. Allowed values: `vocals`, `bass`, `drums`, `other`. |
| `limit` | int | | Max number of matches to return (for 1:n or m:n). |
| `query_url` | string | 1:1, 1:n | blob\_name of the query track. |
| `candidate_url` | string | 1:1 | blob\_name of the candidate track. |
| `candidate_dataset_name` | string | 1:n, m:n | Dataset name to search against. |
| `query_dataset_name` | string | m:n | The query dataset name (for bulk matching). |
***
## **Search Topologies: 1:1, 1:N, and M:N**
### **1. Single-Pair Search (1:1)**
Compares one query track directly against one candidate track.
* **Required Fields**: `search_type: "1:1"`, `query_url`, `candidate_url`, `depth`.
### **2. One-to-Many Search (1:N)**
Compares one query track against an entire dataset of candidate tracks.
* **Required Fields**: `search_type: "1:n"`, `query_url`, `candidate_dataset_name`, `depth`.
### **3. Bulk Matrix Search (M:N)**
Think of an M:N search as a comparison grid. Instead of triggering multiple individual 1:N search jobs one-by-one for a folder of new submissions, an M:N search lets you package a batch of query tracks (M) and evaluate them against your reference catalog dataset (N) in one single operation.
For example, if you have 3 new tracks and want to check them against a catalog of 500 reference tracks, the system runs all 1,500 comparisons in a single pass.
* **Why Use It?**
* **Network Efficiency**: Reduces overhead by sending 1 consolidated API request.
* **Grouped Results**: The response maps matches directly to each query track in a structured array.
* **How to Use It:**
1. Create a temporary query dataset (e.g., `incoming-batch-01`).
2. Upload and Ingest your M query tracks into `incoming-batch-01`.
3. POST a search to `/trace/v1/search/type1` (legacy model) or `/trace/v1/search/type2` (new efficient model) with `search_type: "m:n"`, setting `query_dataset_name` to your query dataset and `candidate_dataset_name` to your candidate library.
***
### **Examples**
```json 1:1 Search theme={null}
{
"search_type": "1:1",
"query_url": "dataset/987f6543-e21b-12d3-a456-426614174000_query.wav",
"candidate_url": "dataset/123e4567-e89b-12d3-a456-426614174000_candidate.wav",
"depth": "track"
}
```
```json 1:N Search theme={null}
{
"search_type": "1:n",
"query_url": "dataset/987f6543-e21b-12d3-a456-426614174000_query.wav",
"candidate_dataset_name": "my-reference-catalog",
"depth": "track",
"limit": 5
}
```
```json M:N Search theme={null}
{
"search_type": "m:n",
"query_dataset_name": "my-query-catalog",
"candidate_dataset_name": "my-reference-catalog",
"depth": "track"
}
```
***
### **Response**
**Status 202 Accepted**
```json theme={null}
{
"success": true,
"data": {
"job_id": "search_job_a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"status": "pending",
"search_type": "1:n",
"depth": "track",
"n": 1,
"m": 120,
"cost_usd": 0.045
}
}
```
# Search Job Status
Source: https://help.soundverse.ai/enterprise-api/trace/search-status
Poll the status and retrieve results of a similarity search job.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Get Search Status**
Check the execution state of a similarity search query and retrieve matches. This endpoint is **completely free** to poll and does not deduct balance.
* GET `/trace/v1/jobs/{job_id}`
### **Path Parameters**
| Parameter | Type | Required | Description |
| :-------- | :----- | :------- | :--------------------------------------------------------- |
| `job_id` | string | ✅ | Unique job ID returned from `POST /trace/v1/search/type*`. |
### **Response**
**Status 200 OK (Completed 1:N Search)**
```json theme={null}
{
"success": true,
"data": {
"job_id": "search_job_d8e9f0a1-b2c3-4d5e-6f7a-8b9c0d1e2f3a",
"status": "completed",
"search_type": "1:n",
"error": null,
"results": {
"status": "success",
"timestamp": "2026-06-19 22:45:00",
"search_type": "1:n",
"depth": "track",
"candidate_dataset_id": "ref-dataset-uuid",
"matches": [
{
"id": "dataset/candidate_song_1.wav",
"score": 0.892,
"percentage": 89.2,
"payload": {
"filename": "dataset/candidate_song_1.wav",
"dataset_id": "ref-dataset-uuid",
"metric": "pairwise_chunk_cosine"
},
"full_audio_latent_scores": {
"max": 0.912,
"max_then_mean": 0.892,
"hungarian_mean": 0.795,
"matched_windows": [
{
"query_index": 5,
"candidate_index": 8,
"similarity_score": 0.892,
"query_audio_timestamps": [[44.5], [52.5]],
"candidate_audio_timestamps": [[125.1], [133.1]]
}
]
},
"summary": {
"full_audio_hungarian_mean": 0.795,
"full_audio_max_then_mean": 0.892,
"full_audio_max": 0.912
}
},
{
"id": "dataset/candidate_song_2.wav",
"score": 0.745,
"percentage": 74.5,
"payload": {
"filename": "dataset/candidate_song_2.wav",
"dataset_id": "ref-dataset-uuid",
"metric": "pairwise_chunk_cosine"
},
"full_audio_latent_scores": {
"max": 0.785,
"max_then_mean": 0.745,
"hungarian_mean": 0.680,
"matched_windows": []
},
"summary": {
"full_audio_hungarian_mean": 0.680,
"full_audio_max_then_mean": 0.745,
"full_audio_max": 0.785
}
}
],
"full_audio_latent_scores": {
"best_song_by_max_per_query_then_avg": [
{
"song_id": "dataset/candidate_song_1.wav",
"max_then_mean_score": 0.892,
"hungarian_mean_score": 0.795,
"max_score": 0.912
},
{
"song_id": "dataset/candidate_song_2.wav",
"max_then_mean_score": 0.745,
"hungarian_mean_score": 0.680,
"max_score": 0.785
}
]
},
"summary": {
"full_audio_max_then_mean": 0.892
}
}
}
}
```
**Status 200 OK (Completed M:N Search)**
```json theme={null}
{
"success": true,
"data": {
"job_id": "search_job_a1b2c3d4",
"status": "completed",
"search_type": "m:n",
"error": null,
"results": {
"search_type": "m:n",
"depth": "track",
"metric": "pairwise_chunk_cosine",
"query_dataset_id": "query-dataset-uuid",
"candidate_dataset_id": "ref-dataset-uuid",
"results": [
{
"query_audio_id": "dataset/incoming_track_1.wav",
"matches": [
{
"id": "dataset/catalog_reference_99.wav",
"score": 0.892,
"percentage": 89.2,
"payload": {
"filename": "dataset/catalog_reference_99.wav",
"dataset_id": "ref-dataset-uuid",
"metric": "pairwise_chunk_cosine"
},
"full_audio_latent_scores": {
"max": 0.912,
"max_then_mean": 0.892,
"hungarian_mean": 0.795,
"matched_windows": [
{
"query_index": 5,
"candidate_index": 8,
"similarity_score": 0.892,
"query_audio_timestamps": [[44.5], [52.5]],
"candidate_audio_timestamps": [[125.1], [133.1]]
}
]
},
"summary": {
"full_audio_hungarian_mean": 0.795,
"full_audio_max_then_mean": 0.892,
"full_audio_max": 0.912
}
}
]
},
{
"query_audio_id": "dataset/incoming_track_2.wav",
"matches": []
}
]
}
}
}
```
***
### **Job States**
* `pending`: Job is queued and waiting for an available worker thread on the VM.
* `processing`: Job is currently executing time-series alignment math.
* `completed`: Job completed successfully. Scored matches are returned in the `results` object.
* `failed`: An error occurred during matching. Details are available in the `error` field.
# Upload Audio
Source: https://help.soundverse.ai/enterprise-api/trace/upload
Upload a raw audio file to cloud storage before ingestion or search.
Soundverse's Enterprise API platform has moved to **apiv2.soundverse.ai**, with self-serve account setup, API keys, and billing now managed at **platform.soundverse.ai**. Check the current docs there for the latest endpoints and auth.
## **Upload File**
Upload a raw audio track (e.g. WAV, MP3, FLAC, M4A) to secure cloud storage. This endpoint is **completely free** and does not deduct from your plan balance.
The returned `blob_name` must be used as the identifier in ingest and search requests.
* POST `/trace/v1/upload`
### **Request Headers**
```http theme={null}
Content-Type: multipart/form-data
```
### **Request Body**
| Field | Type | Required | Description |
| :----- | :--- | :------- | :------------------------------------------------------- |
| `file` | file | ✅ | The raw audio file to upload. Max file size: **100 MB**. |
### **Response**
**Status 200 OK**
```json theme={null}
{
"success": true,
"message": "Upload successful",
"data": {
"blob_name": "dataset/123e4567-e89b-12d3-a456-426614174000_song_candidate_1.wav"
}
}
```
***
### **Error Responses**
**Payload Too Large (413)**
Returned if the uploaded file exceeds the **100 MB** limit.
```json theme={null}
{
"success": false,
"message": "Upload file size exceeds the maximum limit of 100 MB."
}
```
**Unsupported Format (400)**
Returned if the file format is not supported (only `.mp3`, `.wav`, `.flac`, `.m4a` are allowed).
```json theme={null}
{
"success": false,
"message": "Unsupported audio format. Use .mp3, .wav, .flac, or .m4a"
}
```
# Explore
Source: https://help.soundverse.ai/explore/explore
We’re thrilled to unveil the new Explore section in Soundverse! Discover and listen to prompts crafted by fellow users, and show your support by liking your favourites. This feature allows you to uncover fresh ideas and promote the work of talented creators. Simply navigate to the Explore tab on the right. Upon finding a prompt that piques your interest, click to listen and express your appreciation by liking it. Additionally, the Featured tab under the Explore section showcases top picks picked up by the algorithm.
Simply navigate to [https://www.soundverse.ai/explore](https://www.soundverse.ai/explore) to try Explore.
If you want to keep your prompts private, simply turn on "private prompts" options within 'project settings'.
# My Library
Source: https://help.soundverse.ai/explore/my-library
## Liked Clips
You will find my library option on the left side of the studio, it has your liked clips and collections so far. It is your personal audio library section provided by Soundverse wherein you can find your liked audios from the projects that you have created in the Soundverse studio and collections in a click!
Liked clips: These are the generated audios that you have liked in the studio. Sometimes you may regenerate the audio to get the desired results and save it for future use or to bookmark it you can press the heart/like button beside the play button of the audio to get it saved in liked clips in my library.
## Collections
Users can now create Collections by adding generated audio to them. They can personalise the collections by giving a specific name to them, writing a description about the collection and setting a display picture for the same. Collections have a lot more benefits such as you can share them with your friends/teammates or use them as a mood board of audio.
You can even download the collection from the menu available when you click options of the collections card and can even buy a license for it. Collections can also help you locate your audio faster and make sure that you never lose them. Organize and share your audios with 'Collections' and make your audio generation process easy and smooth with Soundverse.
When you open the collection you have just created, you will find more controls for the collections by clicking the options present in the top right corner of the collection.
You will have options such as:
* Share- Users can share the collection with their friends, teammates etc. by clicking on the share button.
* Privacy- Users can decide to keep their collection public or private, just click on the option you want and it's done. When it’s set to private-the ones who receive it won’t see it.
* Edit- You can edit the collection from here, change the name, modify the description or change the profile picture.
* Delete- You can even delete the collection in a single click.
* Download- Soundverse provides you the liberty to download the entire collection in a single click. The collection will be downloaded in the form of a zip file.
* Buy License- Users can now buy a license for their collection and use it further.
# Billing and payment
Source: https://help.soundverse.ai/faqs/billing-and-payment
There are multiple tiers including a free plan. You can choose between Creator, Pro or Enterprise Tiers based on your requirement and usecase. To know more about the pricing policy, visit [https://www.soundverse.ai/pricing](https://www.soundverse.ai/pricing).
* Tokens renew every month.
* As part of subscription, you'll get additional tokens added on top of remaining tokens every month. For e.g. if you had 1,200 tokens left- next month you'll have 2,600 + 1,200 tokens = 3,800 Tokens under Pro Tier.
* For AppSumo users, your tokens will refresh to 1000 or 2600 tokens depending on Tier.
Simply navigate to "Manage Your Plan" under Profile Settings. Click on "Top Up Tokens" and slide to the number of tokens you'd want and click on "Buy Now". [https://www.soundverse.ai/myaccount?index=2](https://www.soundverse.ai/myaccount?index=2)
It could be a technical error, so in that case, reach out at [support@soundverse.ai](mailto:support@soundverse.ai) for further help. You can even fill the feedback form for us to get back to you.
Simply navigate to "Manage Your Plan" under Profile Settings. Press Cancel and you'll taken to cancellation process.
You can always cancel the subscription at any point you want by following the steps mentioned. We'd also be happy to help you with the refund process.
Make sure to reach out to us within 48 hours of this incident.
No, you just have to pay the remaining amount i.e. the difference amount of existing plan and the plan you are upgrading to.
We do not offer any student or educator discount as of now. We'd love to do it in the future.
If you are an enterprise we can customize the plan for you. However, if you would like your school or institute to use our platform, then write to us to discuss further and get a deal.
# Content and Generation
Source: https://help.soundverse.ai/faqs/content-and-generation
With Soundverse, you can create music which has a blend of human creativity and AI assistance. It has many other features apart from music creation such as stem separation, music extension and even an AI powered assistant.
Soundverse is designed to be user-friendly, and beginners can get started with it relatively easily. However, there are advanced features for experienced users, making it suitable for musicians and content creators of all skill levels.
Yes, Soundverse offers a Free tier with 100 tokens, allowing users to explore its capabilities before subscribing to a paid plan.
There are two ways to generate audios in Soundverse. Either you select a duration in advance and generate, or you can "Extend" the existing clip. Each extend actions, makes the clip 45 seconds longer. So if you extend a 60 second clip, it becomes 105 seconds long. If you Extend 350 seconds long clip, it becomes 395 seconds. It's infinite!
Default durations that Soundverse supports currently are 15, 30 seconds, 1 minute, 3 minutes and 5 minutes. However you can make them infinite long by using Extend AI Magic Tool.
Here's how many tokens are used per lenth:
15 seconds = 15 tokens,
30 seconds = 30 tokens,
1 minute = 60 tokens,
3 minutes = 180 tokens and
5 minutes = 300 tokens
Soundverse's commitment to innovation, versatility, and its strong focus on shaping the music industry through AI technology sets it apart from other platforms. Its wide range of functionalities and user-friendly interface make it a top choice for creators in the music industry.
To get started with Soundverse, visit our website at [https://www.soundverse.ai/](https://www.soundverse.ai/) and sign up for a free.
You can check out various social media handles of Soundverse on Instagram, facebook, Linkedin and Twitter for snippets.
You can check the help centre here: [https://help.soundverse.ai/introduction](https://help.soundverse.ai/introduction)
You can also check our blog regularly here: [https://www.soundverse.ai/blog](https://www.soundverse.ai/blog)
You can also check a walkthrough video here: [https://www.youtube.com/watch?v=1MbH38r-onY](https://www.youtube.com/watch?v=1MbH38r-onY)
It is very easy and super quick to generate music on Soundverse. You just have to type in the prompt in your mind and it will generate the audio for it in a flash! You can even select the duration of audio.
Yes, Soundverse allows for customization, that is what the Arrangement view is for! You can tune the generated audio to match your specific requirement and arrange the generated audios to find that perfect tune.
A "token" refers to a unit of credit used within Soundverse to access various tools and functionalities. Each AI Magic Tool requires a certain number of tokens to be used for a defined duration or purpose. For example, using the "Text to Music" tool for 15 second costs 15 tokens, while using it for 1 minute costs 60 tokens. Similarly, other services like "Stem Separation" or "Stem Export" have fixed token costs irrespective of duration. Essentially, tokens are a way to quantify and charge for the usage of services within this system.
Tokens are the Soundverse Studio as you can create audio only with the redemption of your tokens.
| Tool | Duration | Tokens |
| --------------- | ---------- | ------ |
| Text to Music | 1 second | 1 |
| | 15 seconds | 15 |
| | 30 seconds | 30 |
| | 1 minute | 60 |
| | 3 minutes | 180 |
| | 5 minutes | 300 |
| Stem Separation | | 5 |
| Stem Export | | 1 |
| Extend | 45 seconds | 45 |
| Message | | 1 |
# Licensing Model
Source: https://help.soundverse.ai/faqs/licensing-model
In Free Trial, you can use Soundverse for Non Commercial usage. You can't monetise your creations.
In Creator Subscription Tier, usage will be Royalty Free.
You can use the audio generated by Soundverse on platforms such as:
* YouTube
* Vimeo
* YouTube Music (For Podcasts)
* Podcasts
* Audiobooks
* Twitch
* On Spotify/ Apple Music only as part of Podcasts (Not Music)
* Facebook Streams, Ads, Videos
* Online Platforms such as TikTok, Instagram, YouTube Shorts etc.
* Events as a background track (Not to be performed)
* Online Classes
* Advertisements
* Client Videos
* You are allowed to use it if client video is for internal use, such as presentation, wedding videos.
* You are allowed to use it if client video is going to be distributed to YouTube, Twitch, Vimeo or any other online Video Platform.
* With Custom License of Full Ownership, usage is allowed for outputs that land on TV/ Movies
* Website
* Metaverse
* Anywhere as long as music itself doesn’t become the final output.
In Pro Subscription Tier, usage will be Royalty Free + Sample Usage.
You can use the audio generated by Soundverse on platforms such as:
* YouTube
* Vimeo
* YouTube Music
* Podcasts
* Audiobooks
* Twitch
* Spotify
* Apple Music
* Amazon Music and other DSPs
* Facebook Streams, Ads, Videos
* Online Platforms such as TikTok, Instagram, YouTube Shorts etc.
* Events as a background track (Not to be performed)
* Online Classes
* Advertisements
* Client Videos
* You are allowed to use it if client video is for internal use, such as presentation, wedding videos.
* You are allowed to use it if client video is going to be distributed to YouTube, Twitch, Vimeo or any other online Video Platform.
* With Custom License of Full Ownership, usage is allowed for outputs that land on TV/ Movies
* Website
* Metaverse
No. There should always be some human added content along with the generated music. Your final composition can't have 100% of Soundverse generated content.
Royalty-free music allows you to incorporate it into your content without recurring royalty payments to the artists or rights holders each time it's played. However, this doesn't necessarily cover public performance rights, so there may still be royalty fees when you release it on digital platforms.
All the subscription tiers.
All the subscription tiers. You don't have to buy a Custom License.
In Pro subscription tier, Yes.
In Creator tier, you might want to buy the Custom License to clear the Sample Usage.
No. Human involvement and a right license is required.
Custom License gives you more control if you want to monetize the clip, project content or collections, and redistribute them. Unlike Royalty Free usage, here music can be the final active output and not passive (For e.g. added to YouTube or any other video).
There are two categories of licenses in Soundverse:
* Sample Usage License.
* Full Ownership License.
* Samples User License- Under this agreement, the users can distribute samples generated by Soundverse as part of a creation. Users with Pro Subscription (Tier 2) have this license by default.
* This will cover usage of License in your own creations as long as Sample doesn't become the final product.
* You can use this sample in your own creations. You're allowed to distribute it to Spotify/ Apple Music, as long as this sample usage doesn't make 100% of your final track.
* By distribution here, we mean you can distribute sample that's part of your creation. Sample alone can't be resold or you can't make Sample Packs and Sell them in a different stores. Those activities are not permitted.
* Full Ownership License- Under this license, users will own the audio that is generated. Users can reproduce, perform and re-distribute the sample. The charges for this depends on the subscription tier. We've broken down the charges in the next question.
It depends on the subscription tier.
For Free Users:
* You can't buy a license until you're subscribed.
* Free users can use the content for non-commercial usage.
For Pro Subscriber:
* Pro subscription tier users have Royalty Free + Sample Usage License to use Soundverse generated sample as part of their content. No extra license is needed.
* Pro subscription tier users can buy full ownership of the generated content through Full Ownership Custom License through "Buy Custom License".
For Creator Subscriber:
* Every audio generated is Royalty Free.
* Users can buy Sample Usage License + Full Ownership License through "Buy Custom License"
With Tier 2, you're allowed to distribute music to DSPs with human accompaniment.
Human accompaniment could mean, adding vocals to the top, adding recording of a real instrument, changing the arrangement, editing samples etc.
It doesn't necessary mean human vocals with full blown singing throughout the track. Even chopping of sample, or layering another sample, adding a section, adding an acappella, adding an audio effect (such as reverb, echo, distortion etc.), one shot sample, pitch change, recording another instrument on top- all of these count as human accompaniment. So yes, with a bit of "human" change - you can distribute it.
Our recommendation would be to add as much human creativity as possible to protect it. While we allow the distribution of Soundverse generated content with human accompaniment, rules for DSPs may defer company to company.
Most likely it’ll be taken down in a short time as we monitor content usage on platforms such as Spotify, Apple Music. Our systems are capable of detecting the usage of Soundverse’s AI generated content.
It's worth knowing that Pro Tier covers Sample Usage; and Enterprise Tier covers Sample Usage + Full Ownership.
* Here’s how [Spotify detects copyrighted content](https://podcasters.spotify.com/CopyrightResources/#:~:text=If%20we%20think%20a%20piece,or%20find%20an%20alternative%20solution.).
* Once the copyrighted content is detected on Spotify, [it’s reported by our team here](https://support.spotify.com/us/report-content/).
* Once the copyrighted content is detected on Apple Music, [it’s reported by our team here](https://www.apple.com/legal/contact/copyright-infringement.html)
* Once the copyrighted content is detected on Amazon, [it’s reported by our team here](https://www.amazon.com/report/infringement).
* Similarly, music can be easily removed from any platform.
* Once you’ve bought a custom license, we’ll make sure that your usage is not flagged by our team.
Music rights are generally split into several categories:
Synchronization rights: The right to add the track to a video or moving image.
Mechanical rights: The right to make copies of the audiovisual production including the track.
Public performance rights: The right to make the audiovisual production, including the track, available to the public.
If you have the Sample Usage License, then yes.
Royalties are the sums being paid to songwriters, producers, performing artists and musicians when their music is being played.
If you’ve bought the custom license, then yes. You have all the rights to perform or redistribute.
Enterprise Tier is best suited for Marketing Agencies, Studios, Start Ups, Advertising Studios, Creator Companies or SMEs who have high token requirements and need all the licenses.
Simply write to [sales@soundverse.ai](mailto:sales@soundverse.ai) and our sales team would happily assist you.
It covers all the usage licenses, specially it gives you the full rights to the content usage. Whether you want to make a copy of the generated content and sell it, or simply play it at Times Square for this amazing advertisement that you've created - it's all covered. (Just let us know if you do such a fantastic thing because we love to know how beautifully Soundverse is being used.)
It totally depends on the use-case and your token requirements. We can customize a plan for you from 4,000 tokens to 10 million tokens - just let us know!)
Simply write to [sales@soundverse.ai](mailto:sales@soundverse.ai) and our sales team would happily assist you.
# Managing your Account
Source: https://help.soundverse.ai/faqs/managing-your-account
Go to [https://www.soundverse.ai/pricing](https://www.soundverse.ai/pricing), you will find both monthly and annual pricing options. We have four plans available - Free, Creator, Pro and Enterprise/ Custom. You can check out the features of each and every plan and get it for yourself. You can avail 20% discount if you choose annual plans.
You can simply go to Manage your plan option under profile options and it clearly shows available tokens and current plan.
You can simply go to Manage your plan option under profile options and Upgrade/ Cancel your plan from there.
# Introduction
Source: https://help.soundverse.ai/introduction
The Ultimate AI Assistant for Content and Music creators.
## What is Soundverse?
Soundverse is an AI Assistant for Content and Music Creators that makes it easy to create music using conversational interface and AI magic tools
With the help of Soundverse Assistant and AI magic tools, our users get an unfair advantage over other creators to create content easily and quickly.
## What is Soundverse Assistant?
Soundverse Assistant is your ultimate music companion. You simply speak to the assistant to get your stuff done. The more you speak to it, the more it starts understanding you and your goals. Simply put, they help convert your creative dreams into tangible music/audio.
## What are AI Magic Tools?
Use AI Magic Tools such as Text to Music, Lyrics Writing or Stem Separation to realize your content dreams quicker.
## Get Started
Find solutions to your inquiries about Soundverse here.
Unlock your creativity using Soundverse's powerful creation tools.
Manage your Soundverse account settings and preferences.
Discover new features and hidden gems within Soundverse.