-
Notifications
You must be signed in to change notification settings - Fork 150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE] Metadata schema #176
Comments
|
"final_esr" - The final esr of the model at the end of training. |
Could we include an image of the orginal amp in the model's metadata? |
Not sure if this would make it easy for people to "steal" other peoples work and put new/fake metadata on other peoples models but.... It would be nice if there was a way to write metadata onto the already created .nam files. So the last few months of contributions can have the same search features as any new stuff that comes out once this is implemented. |
Essential: a metadata format "version". |
"gear_type" could also be "preamp" and "other". |
Is there precedence for holding this as metadata in a file? |
I intend that to a a proper part of the model (not just metadata) when non-48k is supported in the trainer (see #13) |
I'm not keen on that for now, since I'm basically using the JSON file format for the moment 🙂 |
I wouldn't be against it. I don't think this makes it meaningfully harder to "steal" anyone's models; it's mainly to help facilitate building displays, databases, and such. |
On of the only things that matters from the ToneHunt perspective of parsing the is that it remains valid JSON. Other than that, a strategy to make sure there is versioning in place that will help us parse updates (various versions) to the .nam file spec as it progresses. We'll track our work in our own issue when it's ready tonehunt-org/tonehunt#161 |
I'm interested in the hash, but not convinced that it does its job. Why couldn't I just rewrite the hash with my own? (Infosec isn't my area of expertise.) |
I won't commit to that (hence why I renamed the extension to .nam instead of .json), but if it does become incompatible w/ the JSON spec, I'll give you tools to load the model 👍🏻 (Using Python, in this repo; C++, in NeuralAmpModelerCore). And I'll publish a spec for the file format.
The plan is to handle this with the main model version, which I've fixed to the repo version (current
🎉 |
Thanks @sdatkinson. We're running a JS only app. We might be able to do some C++ parsing, but I'm sure we can whip something up quickly to parse whichever format you end up using. Do what's best for NAM. We'll follow. |
I like the current set you have going on there, I think it's important not to go too over board. I think option two for the gear modelled is good. Make people be concise. "Manufacturer", "Model", "Channel" Maybe for character you have two fields: I can't think of any other fields I would like to see. Maybe "Direct" vs "Speaker" I my opinion any other details can be described by a user as they share the file. I'm not really a details person though, I don't really care about the settings on the amp, the mic used, the specific pre amp or load box etc. |
Hi everybody, |
@sdatkinson In short:
I'm happy to discuss this further with you. My take on this - as with the licensing question in the other issue - is ensuring that Free Software creators don't get ripped off of their works, and not allowing proprietary commercial interests an unfair advantage by ripping these people off. |
I think it would be REALLY amazing to have dBu reference level of the model's as metadata. The plugin could then have a preference where you set the headroom of your DI input, and the plugin can internally adjust so that the gain is matched exactly as intended for the model. This is important because we are all using different interfaces and DI boxes, and also using different reamp boxes. So if someone is recording DI's with lots of headroom, and sets their reamp box for unity gain for that, and then someone else who is using a different interface will have the same level of accuracy without any guessing or additional steps. It would be very simple - the model has its own reference level as meta data, and the users sets their input reference level in the plugin (which is hopefully saved so once its set you leave it). Whenever you change models, the gain will automatically correct if there is a difference between the users input level and the level the model was captured at. |
This Issue is for defining and implementing a schema for metadata.
"display_name"
(str
) What the model name might be displayed as (instead of the file name!)"loudness"
(float
, <= 0.0) The output (in dB) of a model, given a nominal signal. (Implemented in Define metadata, store loudness #137)"gear_type"
(enum
):"amp"
,"pedal"
,"amp_pedal"
."with_cab"
(bool
)"compression"
(float
, between 0.0 and 1.0) a quantification of how much compression the model imparts on a signal. Compression of 0.0 means that the response is linear in the input; 1.0 means that an infinitesimal input signal would cause the model to output a signal at its max loudness (example:y = a * sign(x)
)"character"
(enum
):"clean"
,"crunch"
,"hi_gain"
"tags"
: alist
ofstr
s"modeled_by"
: (str
) the name of the person who made the model"date"
:{"year": int, "month": int, "day": int}
when the model was exported to a .nam file (e.g. determined during.export()
."instrument"
: (enum
)"bass"
,"guitar"
,"other"
what instrument the model is intended to be used with. (wrt"other"
, there have been instances of e.g. modeling amps intended for harmonicas!)"misc"
: (str
) Anything else?"standard_architecture"
(enum
)"standard"
,"lite"
,"feather"
(if the architecture matches one of the architectures I've made easy to pick), orNone
."esr_val1"
: (float
orNone
) The final ESR, if the model was validated on the validation set from thev1_1_1.wav
file (If you used different training data, then the ESR wouldn't be "apples to apples". There's also the possibility of validation set leakage...). So long as the validation st stays the same, this can continue to be reported. This woudl be retired for e.g."esr_val2"
if a future standard training signal changed the validation set.I'd like for there to be metadata about the gear being modeled, but I'm not sure what the most reasonable way to do this is.
Option "1":
"gear_modeled"
: (str
) Just write it outOption "2": "make" and "model" (and "year"?)
Option "n":
"gear_modeled"
: a full-on graph where each node is an element of the signal chain. (Yikes...can you imagine?)Seeking suggestions and feedback, esp. about how to represent the gear being modeled.
Edits:
"standard_architecture"
,"esr_val1"
The text was updated successfully, but these errors were encountered: