Skip to content
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

Doesn't work with madmom==0.16.1 for some reason #3

Open
enn-nafnlaus opened this issue Apr 5, 2023 · 2 comments
Open

Doesn't work with madmom==0.16.1 for some reason #3

enn-nafnlaus opened this issue Apr 5, 2023 · 2 comments

Comments

@enn-nafnlaus
Copy link

Madmom==0.16.1 installs successfully on my systems (Fedora 31 and Fedora 36). But for some reason, mixingbear is refusing to use it, requiring the very narrow range of "madmom<0.15.2,>=0.15.1". But that version of madmom is buggy and won't install on any Fedora system, at least between Fedora 31 and Fedora 36:

madmom/ml/nn/layers.c:17142:25: warning: '_PyUnicode_get_wstr_length' is deprecated [-Wdeprecated-declarations]
17142 | (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
| ^
In file included from /usr/include/python3.10/unicodeobject.h:1046,
from /usr/include/python3.10/Python.h:83,
from madmom/ml/nn/layers.c:15:
/usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here
446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject op) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
madmom/ml/nn/layers.c: In function '__Pyx_PyCFunction_FastCall':
madmom/ml/nn/layers.c:17426:13: error: too many arguments to function '(PyObject * ()(PyObject , PyObject * const, Py_ssize_t))meth'
17426 | return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
madmom/ml/nn/layers.c: In function '__Pyx__ExceptionSave':
madmom/ml/nn/layers.c:18807:21: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_type'; did you mean 'curexc_type'?
18807 | *type = tstate->exc_type;
| ^~~~~~~~
| curexc_type
madmom/ml/nn/layers.c:18808:22: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_value'; did you mean 'curexc_value'?
18808 | *value = tstate->exc_value;
| ^~~~~~~~~
| curexc_value
madmom/ml/nn/layers.c:18809:19: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
18809 | *tb = tstate->exc_traceback;
| ^~~~~~~~~~~~~
| curexc_traceback
madmom/ml/nn/layers.c: In function '__Pyx__ExceptionReset':
madmom/ml/nn/layers.c:18816:24: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_type'; did you mean 'curexc_type'?
18816 | tmp_type = tstate->exc_type;
| ^~~~~~~~
| curexc_type
madmom/ml/nn/layers.c:18817:25: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_value'; did you mean 'curexc_value'?
18817 | tmp_value = tstate->exc_value;
| ^~~~~~~~~
| curexc_value
madmom/ml/nn/layers.c:18818:22: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
18818 | tmp_tb = tstate->exc_traceback;
| ^~~~~~~~~~~~~
| curexc_traceback
madmom/ml/nn/layers.c:18819:13: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_type'; did you mean 'curexc_type'?
18819 | tstate->exc_type = type;
| ^~~~~~~~
| curexc_type
madmom/ml/nn/layers.c:18820:13: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_value'; did you mean 'curexc_value'?
18820 | tstate->exc_value = value;
| ^~~~~~~~~
| curexc_value
madmom/ml/nn/layers.c:18821:13: error: 'PyThreadState' {aka 'struct _ts'} has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
18821 | tstate->exc_traceback = tb;
| ^~~~~~~~~~~~~
| curexc_traceback

.. etc. Which in turn prevents mixingbear from installing.

Could you please allow more modern, aka bugfixed, versions of madmom to be used?

@enn-nafnlaus
Copy link
Author

enn-nafnlaus commented Apr 5, 2023

And while I'm here, any comments on whether Mixingbear would be appropriate for my use case in general? :) I'm using Riffusion to generate ~5-second riffs, but the higher I increase the denoising scale (aka the higher the quality), the more it'll drift from the beat I'm trying to force them to. So I was thinking about:

  1. Shortening the target beat to a bit under 5s, to ensure that I get a full riff within the sample size even with high denoising scale (aka, high quality); then
  2. Using Mixingbear to append a beat-aligned copy of the riff onto the end of itself; then
  3. Looking at the length of the concatenated file to calculate how offset the riff was (aka how long it was vs. what I was trying for); then
  4. Stretching the riff to precisely one target beat using this information.

Do you think this would work?

@enn-nafnlaus
Copy link
Author

ED: So, I managed to get it installed by installing it with nodeps, and it works just fine with madmom==0.16.1. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant