Comments (3)
Happy to see that the bar-synced features are getting traction! Currently, the easiest way to implement this on MSAF is to add a completely new set of features here: https://pythonhosted.org/msaf/features.html#
Basically, we would need:
est_barsync
ann_barsync
This way, the user could pass timestamp of the annotated downbeats (ann
) and MSAF could also provide an algorithm to estimate them (est
).
That being said, when I wrote this part of MSAF (around 9 years ago!), computing features was an expensive process. Nowadays, features are typically computed on the fly (since it's so cheap), which saves a lot of disk space (MSAF's feature json files can be quite big).
So... what I would suggest is to remove the temporary storage of features and just compute them on the fly (ie, get rid of those temporary JSON files). This way, we don't need to include these new types of features on the JSON files, and backwards compatibility in future MSAF releases would be much easier. And playing around with different custom features should be much easier.
This would be a major refactor of MSAF, but I think it would be totally worth it.
What do you folks think? @carlthome and/or @ax-le are you up for the challenge? :D
from msaf.
Hi @urinieto and Happy New Year!
Firstly, while it would be interesting to implement barwise synchronized features, the features coined "Barwise TF matrix" mentioned in my first message necessitate a bit more work because they consist of computing a fixed number of samples (defined by a parameter) per bar. In other terms, while barwise synchronized features contain 1
sample per bar, Barwise TF matrices contain n
samples per bar (typically 96). This would need additional modifications, to cope with bar discrepancies during the song (right now, this is handled via oversampling the spectrogram and selecting regularly spaced samples in each bar, it may be debated).
Secondly, I could be down for refactoring code, but not right now! ;) Maybe it can wait as this does not seem urgent, but maybe someone would be available sooner (@carlthome ?).
from msaf.
Oh gotcha, I understand. Yeah, I think this begs even further for a potential refactoring of the way MSAF takes care of the features. I would actually love to do that.. but likely not gonna happen after ISMIR 2024 organization 😅 (unless @carlthome is up for the challenge!)
from msaf.
Related Issues (20)
- Installed with pip to Python 3.6, however, elicits "DLL Load Failed" error HOT 1
- TypeError: 'float' object cannot be interpreted as an integer HOT 3
- Feature Tonnetz can't be calculated properly HOT 3
- . HOT 1
- ImportError: cannot import name 'factorial' from 'scipy.misc' HOT 3
- compiler clang error while installing package on M1 mac HOT 4
- ImportError: numpy.core.multiarray failed to import HOT 3
- ImportError: cannot import name 'factorial' from 'scipy.misc' HOT 4
- msaf.exceptions.NoAudioFileError: Couldn't find audio file inside Docker container HOT 9
- Frames to time takes 1 positional argument but 3 were given HOT 2
- Remove "yield" from tests for PyTest
- Rename default branch to `main` HOT 1
- MSAF error: Computation of the features is needed for current parameters but no audio file was found. HOT 7
- Adding a new MSA algorithm in MSAF HOT 11
- qestin
- question about label id and effect on Chinese songs HOT 1
- Setting the default feature in msaf/__init__.py to a different feature than PCP still results in the computation of PCP.
- Uses of this library in production settings? HOT 3
- ImportError: cannot import name 'inf' from 'scipy' 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 msaf.