Comments (7)
I think we don't have this already because pitch contour namespace semantics assume a dense (instantaneous) sampling, which assumes a frame rate. The midi namespaces are intervalic, so we would have to assume a sampling rate to make this work, and I want all automatic conversions to be parameter-free.
from jams.
I was able to convert 'pitch_midi' annotations to 'pitch_contour' though, and the conversion 'pitch_contour' is not 'dense'. See picture:
Right now I'm saving all my note annotations in 'pitch_midi' namespace even though it's deprecated, only because 'pitch_midi' can be converted to 'pitch_contour' and 'note_midi' can't
from jams.
Hrm. This seems like a bug then -- maybe held over from when we revamped the pitch namespaces. Maybe this conversion should be removed.
@rabitt @justinsalamon what do yall think?
from jams.
If it counts for anything at all: personally I'm for these conversions, because they facilitate eval
between note_midi
type annotations and dense annotations like pitch_contour
.
Right now all my reference annotations are namespace = 'pitch_midi'
and I have pitch_contour
estimation... It would be really nice if jams.eval
can work on these sort of evaluations without too much work on my part.
from jams.
@tomxi one of the fun things about the jams library is that you can extend it / monkey-patch it to do that sort of thing at run-time. If you have a non-standard conversion that you want to automate syntactically, you can just write it and register it using the decortator in nsconvert
, and it doesn't need to live in the jams library. (See for example) I've done this sort of thing before for custom tag namespaces, and it's not too hard to do.
That might be a reasonable compromise if we can't work out a lossless or assumption-free converter that would make sense to include in the main library.
from jams.
That sounds like a pretty good solution going forward for my use-case. Thanks for the tip @bmcfee :)
from jams.
I think we can call this one resolved.
from jams.
Related Issues (20)
- jam.validate() is True, but jam.save(path) crashes. Bug? HOT 2
- Support Decimal format/Quantization HOT 4
- notebook rendering does not work in jupyterlab HOT 3
- sed_eval bindings? HOT 6
- sortedcontainers updates
- display(meta=False) by default? HOT 2
- support jsonschema >= 3.0 HOT 3
- load jams mapping error? HOT 5
- More than one curator? HOT 13
- on possible (minor) tweaks to Annotation.to_samples HOT 6
- jams.load does not seem to work with one of your example files HOT 3
- support pytest 4.0
- `jams.Annotation.trim()` doesn't include events with 0 duration that's on the trim boundary HOT 4
- __get_dtype fails when type is list
- Global observations: avoid time/duration HOT 8
- tag_medleydb_instruments points to a 404 error HOT 3
- Next generation jams HOT 6
- display.events labels and lines are misaligned HOT 1
- Install fails on Python 3.12: `imp` Module Missing HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jams.