#[non_exhaustive]pub struct Tone {Show 24 fields
pub id: ToneId,
pub user_id: UserId,
pub user: Option<EmbeddedUser>,
pub title: String,
pub description: Option<String>,
pub gear: Option<Gear>,
pub format: Option<Format>,
pub license: Option<License>,
pub sizes: Vec<Size>,
pub images: Vec<String>,
pub links: Vec<String>,
pub makes: Vec<Make>,
pub tags: Vec<Tag>,
pub is_public: Option<bool>,
pub created_at: Option<String>,
pub updated_at: Option<String>,
pub url: String,
pub models_count: u64,
pub favorites_count: u64,
pub downloads_count: u64,
pub a1_models_count: u64,
pub a2_models_count: u64,
pub irs_count: u64,
pub custom_models_count: u64,
}Expand description
A community capture project: one piece of gear, captured once, published under a title and licence.
A tone is not itself downloadable — it owns one or more Models, which are. Fetch
them with Client::models.
§Two shapes, one type
Search results and tone detail return different payloads, and this struct covers
both. sizes, license, links and
is_public appear only in detail — in a tone that came from
Client::tones they are empty or None, not absent from the server’s records. Call
Client::tone when you need them.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.id: ToneIdStable identifier, used by Client::tone and
Client::models.
user_id: UserIdThe creator’s account id.
user: Option<EmbeddedUser>The creator, embedded. Present in both search results and detail.
title: StringThe creator’s title for the tone, e.g. “Mesa Boogie Badlander 100W EL34”.
description: Option<String>The creator’s write-up: rig details, capture chain, how it’s meant to be used.
gear: Option<Gear>What kind of thing was captured — amp, pedal, cabinet.
Distinct from format, which is how the capture is encoded.
format: Option<Format>The file format its models are published in, e.g. NAM or an impulse response.
license: Option<License>Reuse terms the creator published under. Detail only — None in search results.
Check this before redistributing a downloaded model or shipping it with an app.
sizes: Vec<Size>The distinct size classes across this tone’s models. Detail only — empty in search results.
images: Vec<String>Creator-uploaded photographs of the rig.
links: Vec<String>Related URLs the creator added, typically demo videos. Detail only — empty in search results.
makes: Vec<Make>The real-world gear captured. May list several for a full rig.
Creator-applied labels.
is_public: Option<bool>Whether the tone is publicly listed. Detail only — None in search results.
created_at: Option<String>When the tone was published, as the API’s raw timestamp string.
Left unparsed deliberately: a transport crate should not pick a date library for you. Parse with whichever you already depend on.
updated_at: Option<String>When the tone was last edited, as the API’s raw timestamp string.
url: StringThe tone’s page on tone3000.com — the link to show a user.
models_count: u64How many models the tone has — but the API means two different things by this depending on where the tone came from.
From Client::tones (search) it is the total across every
architecture. From Client::tone (detail) it is the
architecture-1 count alone. Measured on three tones:
| Tone | via search | via detail | a1 / a2 |
|---|---|---|---|
| 19 | 6 | 3 | 3 / 3 |
| 51949 | 6 | 3 | 3 / 3 |
| 6298 | 223 | 112 | 112 / 111 |
So a list screen built from search results can promise 223 models while the detail
screen shows 112. To count reliably, add up the per-architecture fields yourself;
to list them, see Client::models.
favorites_count: u64How many users have favourited this tone.
downloads_count: u64How many times its models have been downloaded.
a1_models_count: u64Models trained on architecture version 1.
a2_models_count: u64Models trained on architecture version 2.
irs_count: u64Impulse responses, as opposed to neural captures.
custom_models_count: u64Models using a user-supplied architecture rather than a standard one.