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

Linux support #33

Open
dromer opened this issue May 14, 2023 · 44 comments
Open

Linux support #33

dromer opened this issue May 14, 2023 · 44 comments
Labels
enhancement New feature or request

Comments

@dromer
Copy link

dromer commented May 14, 2023

Duh.

@DamRsn DamRsn added the enhancement New feature or request label May 21, 2023
@DamRsn
Copy link
Owner

DamRsn commented May 21, 2023

Contributions are welcome 🙂

The building process should be very similar to OSx.

@gnac
Copy link

gnac commented Jul 24, 2023

I've made some steps to build this (and the /libonnxruntime-neuralnote dependency) in Linux.
At the moment, I've got NeuralNote compiling but it fails in the linker stage. I'll push what I have to my NeuralNote and onnxruntime lib forks. But in short, I'm currently stuck on the following error:

[100%] Built target NeuralNote_Standalone
/usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: libBasicPitchCNN.a(BasicPitchCNN.cpp.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status

@gnac
Copy link

gnac commented Jul 25, 2023

I've created a (pull request](#44) that is dependent on a prebuilt onnxruntime library. It isn't building (linking errors) yet, but I figured its a place to start a discussion.
FWIW, I also have a pending pull request on the libonnx project which adds support for building the linux archive. You will probably need to pull this project to build an archive to test the linux build of this pull request.

@RustoMCSpit
Copy link

just tried running this on wine with yabridge on bitwig, it kinda works but the gui has a weird rendering issues which causes huge delay / latency

@dromer
Copy link
Author

dromer commented Jul 29, 2023

@RustoMCSpit but we have the source-code, so no need for wine.

Thnx for the work @gnac not sure if I'll be able to get your stuff tested, but looking forward to see it working!

@RustoMCSpit
Copy link

@RustoMCSpit but we have the source-code, so no need for wine.

Thnx for the work @gnac not sure if I'll be able to get your stuff tested, but looking forward to see it working!

no need for wine until it actually is supported you mean right?

@dromer
Copy link
Author

dromer commented Jul 29, 2023

@RustoMCSpit sure, if it works for you and you can play with the software that's great.

@RustoMCSpit
Copy link

@RustoMCSpit sure, if it works for you and you can play with the software that's great.

ehhh, 'works' but barely, very bugged

@RustoMCSpit
Copy link

yeah after a few days the app is pretty unbareable to work with through WINE, if the devs want to see it through they could collect crash reports they get and see whats going on

@dromer
Copy link
Author

dromer commented Jul 31, 2023

@RustoMCSpit if you want to go that route please open a separate ticket so we don't mix up topics.

I think it would make more sense to build the program for Linux then to try and debug wine issues.

@thelabcat
Copy link

Lemme know if this goes anywhere! RN it is only usable in a VM for me ;-(

@RustoMCSpit
Copy link

just to update, program still really weird on WINE after new update

@dromer
Copy link
Author

dromer commented Sep 16, 2023

@RustoMCSpit please open a separate topic on WINE, this request is about actual Linux builds and NOT any WINE work
around.

Lets not dilute either topic by cramming it into the same ticket.

@polygon
Copy link

polygon commented Oct 28, 2023

@gnac Did you get any further with this? I've also managed to build my own version of onnxruntime and actually got NeuralNote to compile. But right now it segfaults when starting. I've so far traced this back to this line of code (juce_XmlElement.cpp):

static const String juce_xmltextContentAttributeName ("text");

For some reason, this static variable is not initialized correctly and the pointer inside the string (to the actual text data) is a Null pointer so it crashes when it's being used (in this case, to parse the Linux fontconfig). Might just be a small issue with some JUCE settings required on Linux, I'm sifting through the things, but it's a pretty strange error.

@polygon
Copy link

polygon commented Oct 28, 2023

To me, this looks like a case of "static initialization fiasco". In NeuralNote/Lib/Components/UIDefines.h there are pointers to fonts declared like so:

// Fonts
const juce::Typeface::Ptr MONTSERRAT_BOLD =
    juce::Typeface::createSystemTypefaceFor(BinaryData::MontserratBold_ttf, BinaryData::MontserratBold_ttfSize);

const juce::Typeface::Ptr MONTSERRAT_SEMIBOLD =
    juce::Typeface::createSystemTypefaceFor(BinaryData::MontserratSemiBold_ttf, BinaryData::MontserratSemiBold_ttfSize);

const juce::Typeface::Ptr MONTSERRAT_REGULAR =
    juce::Typeface::createSystemTypefaceFor(BinaryData::MontserratRegular_ttf, BinaryData::MontserratRegular_ttfSize);

Under Linux, this triggers (unless JUCE_FONT_PATH is set) a font lookup that involves parsing /etc/fonts/fonts.conf using the XML parser. The XML parser has the static string initialization mentioned above. In my compiled variant, this static string has not been initialized when the createSystemTypefaceFor calls are being made. I guess this works for Windows and Mac because loading fonts there does not involve the XML parser. Still, this could be considered unsound (at least on Linux). I will try to work around this.

Setting JUCE_FONT_PATH seems to solve the problem and makes the program start. Seems to work well so far. I'm not sure why JUCE insists on parsing the fontconfig since this plugin only loads fonts from its local resources. But it's probably a simple patch to fix this (or just set JUCE_FONT_PATH environment to literally anything).

So in summary, it's working in Linux for me, note detection etc. is working as expected. Unfortunately, I cannot seem to get MIDI out of the plugin. I can start the dragging, but neither dropping it into my DAW (Bitwig), nor into the file browser seems to be doing anything.

@gnac
Copy link

gnac commented Oct 28, 2023

@polygon you've gotten further than I have. How did you resolve the linker issue?

@polygon
Copy link

polygon commented Oct 29, 2023

I don't remember running into this linker issue to be honest. I've uploaded my current state here: https://github.com/polygon/NeuralNote/tree/linux

I re-factored the UIDefines.h code into a singleton provider to work around the initialization order issues. Setting JUCE_FONT_PATH would solve the issue for running the program standalone but not when used as a plugin. With the refactoring, I also got things working in Bitwig.

I'm not currently using build.sh but just run CMake directly like so:

cmake -B build -DCMAKE_BUILD_TYPE="Release"
cmake --build build -j

This expects to have a Linux built libonnxruntime-neuralnote in place as well, similarly unpacked as described in the build.sh. I've also got this done, but it's still quite hacky and I'm in the process of writing scripts for all of this. So you can poke around if you want, but it's still all a bit hacky and I'm working on consolidating everything.

@CodesoundR
Copy link

I don't remember running into this linker issue to be honest. I've uploaded my current state here: https://github.com/polygon/NeuralNote/tree/linux

I re-factored the UIDefines.h code into a singleton provider to work around the initialization order issues. Setting JUCE_FONT_PATH would solve the issue for running the program standalone but not when used as a plugin. With the refactoring, I also got things working in Bitwig.

I'm not currently using build.sh but just run CMake directly like so:

cmake -B build -DCMAKE_BUILD_TYPE="Release"
cmake --build build -j

This expects to have a Linux built libonnxruntime-neuralnote in place as well, similarly unpacked as described in the build.sh. I've also got this done, but it's still quite hacky and I'm in the process of writing scripts for all of this. So you can poke around if you want, but it's still all a bit hacky and I'm working on consolidating everything.

Hi, and thanks so much for porting this beautiful project in Linux (I'm under Mint).
I ask you if you have any news on the script you proposed. I'm having a hard time figuring out how to install this softare...
thanks again!!!

@Ken-Andre
Copy link

I don't remember running into this linker issue to be honest. I've uploaded my current state here: https://github.com/polygon/NeuralNote/tree/linux
I re-factored the UIDefines.h code into a singleton provider to work around the initialization order issues. Setting JUCE_FONT_PATH would solve the issue for running the program standalone but not when used as a plugin. With the refactoring, I also got things working in Bitwig.
I'm not currently using build.sh but just run CMake directly like so:

cmake -B build -DCMAKE_BUILD_TYPE="Release"
cmake --build build -j

This expects to have a Linux built libonnxruntime-neuralnote in place as well, similarly unpacked as described in the build.sh. I've also got this done, but it's still quite hacky and I'm in the process of writing scripts for all of this. So you can poke around if you want, but it's still all a bit hacky and I'm working on consolidating everything.

Hi, and thanks so much for porting this beautiful project in Linux (I'm under Mint). I ask you if you have any news on the script you proposed. I'm having a hard time figuring out how to install this softare... thanks again!!!

Yes it will be really great.
Think that they had already started working on it.

@CodesoundR
Copy link

Yes it will be really great.
Think that they had already started working on it.

Thanks ..... I'm waiting.... ;-)

@polygon
Copy link

polygon commented Mar 12, 2024

I drove this a bit further and opened Pull Requests in both project components:

#85
tiborvass/libonnxruntime-neuralnote#2

However, communication quickly died down (or didn't happen), so I assumed that the maintainers were not interested in this. I finished the packaging for the Linux distribution of my choice (NixOS) and carried on. I'll give a short rundown on how to build this yourself, though. You will need to use my forks of libonnxruntime-neuralnote and NeuralNote. For both, you want the "Linux" branch.

I will link my Nix build recipes, since they are also a good indicator on the dependencies that you will need. You can ignore a lot of the CMake download links replacement, that is a Nix/NixOS peculiarity (no internet access during builds).

libonnxruntime-neuralnote (Nix-recipe)

Once you installed everything unter buildInputs, you just run the instructions under buildPhase . This should yield you a libonnxruntime-neuralnote.tar.gz which you will need in the next step.

NeuralNote (Nix-recipe)

Again, make sure you have all the tools and dependencies installed. Now, run all the steps under postPatch in the root-folder of the repo (in line 83, reference the tar.gz file from the build above). This also patches a Drag&Drop bug in JUCE. You then just run CMake like above and this should give you the final binary / plugin.

Hopefully this gets you started. Let me know if you get stuck anywhere.

@thelabcat
Copy link

Thanks for doing this.

@CodesoundR
Copy link

I drove this a bit further and opened Pull Requests in both project components:

#85 tiborvass/libonnxruntime-neuralnote#2

However, communication quickly died down (or didn't happen), so I assumed that the maintainers were not interested in this. I finished the packaging for the Linux distribution of my choice (NixOS) and carried on. I'll give a short rundown on how to build this yourself, though. You will need to use my forks of libonnxruntime-neuralnote and NeuralNote. For both, you want the "Linux" branch.

I will link my Nix build recipes, since they are also a good indicator on the dependencies that you will need. You can ignore a lot of the CMake download links replacement, that is a Nix/NixOS peculiarity (no internet access during builds).

libonnxruntime-neuralnote (Nix-recipe)

Once you installed everything unter buildInputs, you just run the instructions under buildPhase . This should yield you a libonnxruntime-neuralnote.tar.gz which you will need in the next step.

NeuralNote (Nix-recipe)

Again, make sure you have all the tools and dependencies installed. Now, run all the steps under postPatch in the root-folder of the repo (in line 83, reference the tar.gz file from the build above). This also patches a Drag&Drop bug in JUCE. You then just run CMake like above and this should give you the final binary / plugin.

Hopefully this gets you started. Let me know if you get stuck anywhere.

hello and thank you for your interest. But I don't understand how to install it on my Mint system....

@Ken-Andre
Copy link

Ken-Andre commented Mar 21, 2024 via email

@polygon
Copy link

polygon commented Mar 27, 2024

hello and thank you for your interest. But I don't understand how to install it on my Mint system....

These instructions are to build the project, distribution for specific Linux systems comes later. I'm very sorry, but I don't have the time to build and maintain packages for a Linux distribution I am not using myself. If you find someone who knows how to package for Ubuntu/Mint and is interested, I'm happy to assist getting things started.

@CodesoundR
Copy link

CodesoundR commented Mar 29, 2024

hello and thank you for your interest. But I don't understand how to install it on my Mint system....

These instructions are to build the project, distribution for specific Linux systems comes later. I'm very sorry, but I don't have the time to build and maintain packages for a Linux distribution I am not using myself. If you find someone who knows how to package for Ubuntu/Mint and is interested, I'm happy to assist getting things started.

Hi,
I wanted to thank you anyway for what you did. I try to see in the various formums if there is someone who can help us for this porting.... bye

EDIT: BUT TO DATE I HAVE NOT BEEN ABLE TO FIND ANYONE :-(

@karimdjemai
Copy link

karimdjemai commented Oct 2, 2024

Hi,
thank you so much for your work @polygon,
I got it to build on archlinux but when I run it, I get the following error:

./build/NeuralNote_artefacts/Release/Standalone/NeuralNote
terminate called after throwing an instance of 'Ort::Exception'
what(): inference_session.cc:1020 LoadOrtModelWithLoader The ORT format model version [6] is not supported in this build 1.14.1. This build doesn't support ORT format models older than version 5. See: https://github.com/microsoft/onnxruntime/blob/rel-1.14.0/docs/ORT_Format_Update_in_1.13.md
[1] 71338 IOT instruction (core dumped) build/NeuralNote_artefacts/Release/Standalone/NeuralNote

which is particularily odd, since the newst ORT model version is 5 according to https://onnxruntime.ai/docs/performance/model-optimizations/ort-format-models.html

I did run the convert-onnx-to-ort stuff before building the onnxruntime and cp-ing the tar, but my guess is now that something went wrong in that step.
However I did not find a solution and have no idea on where to look further.
Does anybody have an idea on how to debug this?
Thanks in advance!

@DamRsn
Copy link
Owner

DamRsn commented Oct 2, 2024

@karimdjemai I encountered a similar error message on Windows recently when working with onnxruntime. The issue was that my executable was linking with the onnxruntime dynamic library available in my system dynamic library directory. Maybe the same is happening for you on Linux.

So check that you successfully get a static lib for onnxruntime and that you link with it and not with some other version available on your system.

@karimdjemai
Copy link

Hi @DamRsn,
thanks for your reply!

I checked the dynamic library links of the executable, and onnxruntime was not there. The onnxruntimelib.a file sits in the right location as well.

But you might still be onto something, as I could not find a log proving the linking of the static lib in the build output. This might be normal, though.
I did not find any other way to verify that the static lib file was linked correctly, do you have any idea?

I am very grateful for further ideas on where to look to get it running in general, thanks in advance!

@karimdjemai
Copy link

I finally got it working, so if anyone encounters my problem, here is how I solved it:
In general I followed these steps outlined by @polygon

I drove this a bit further and opened Pull Requests in both project components:

#85 tiborvass/libonnxruntime-neuralnote#2

However, communication quickly died down (or didn't happen), so I assumed that the maintainers were not interested in this. I finished the packaging for the Linux distribution of my choice (NixOS) and carried on. I'll give a short rundown on how to build this yourself, though. You will need to use my forks of libonnxruntime-neuralnote and NeuralNote. For both, you want the "Linux" branch.

I will link my Nix build recipes, since they are also a good indicator on the dependencies that you will need. You can ignore a lot of the CMake download links replacement, that is a Nix/NixOS peculiarity (no internet access during builds).

libonnxruntime-neuralnote (Nix-recipe)

Once you installed everything unter buildInputs, you just run the instructions under buildPhase . This should yield you a libonnxruntime-neuralnote.tar.gz which you will need in the next step.

NeuralNote (Nix-recipe)

Again, make sure you have all the tools and dependencies installed. Now, run all the steps under postPatch in the root-folder of the repo (in line 83, reference the tar.gz file from the build above). This also patches a Drag&Drop bug in JUCE. You then just run CMake like above and this should give you the final binary / plugin.

Hopefully this gets you started. Let me know if you get stuck anywhere.

BUT when building libonnxruntime-neuralnote, you need to install the requirements.txt into the venv. Here it is important to use the correct python package version of onnxruntime (its 1.14.1) and not the newest. For that I had to downgrade python to below 3.11, so that the onnxruntime package is available.

@DamRsn Thanks for your help, without your comment I wouldn't have suspected that my build of libonnxruntime-neuralnote was faulty, also thanks for building this incredible plugin in general. It is super cool!

@CodesoundR
Copy link

I hope to see soon an official version of this software for Linux because it is difficult for me to build it.... :-(
anyway, thank you for all.....

@DamRsn
Copy link
Owner

DamRsn commented Jan 11, 2025

It took some time but it's finally here! I just released NeuralNote v1.1.0, it includes Standalone and VST3 for Linux!

Let me know if it works as expected. If so, I'll close this issue.

@gnac
Copy link

gnac commented Jan 12, 2025

This is really great, thank you.
One question. I downloaded the pre-built vst and standalone, and was able to transcode an audio segment.
However, When I try to drag the midi file somewhere, eg file explorer or DAW it doesn't appear to do anything.
image
I'll try compiling locally to see if behavior changes.

@DamRsn
Copy link
Owner

DamRsn commented Jan 12, 2025

Hey @gnac , thanks for reporting this.

What's your Linux distro and what DAW are you using? Is it both on Standalone and VST3?
It was working on my end (I'm on Ubuntu and used Reaper). I'll double check tomorrow.

If you're able to compile NeuralNote, testing with a debugger to see what happens when you try to drag would be great. You could put breakpoints in MidiFileDrag.cpp.

@gnac
Copy link

gnac commented Jan 13, 2025

I use Manjaro (Arch deriviative) with KDE/Plasma and Bitwig. I see the same behavior in standalone and VST.
I also tested the VST in Carla.
Its probably worth noting that the drag and drop does not work on the audio load file either, but if you click on audio load file, you can navigate to the desired file.

@gnac
Copy link

gnac commented Jan 13, 2025

I tried to build master and v1.1.0, but I got cp: cannot stat '../libonnxruntime-neuralnote/onnxruntime-v1.14.1-neuralnote.0-linux-x86_64.tar.gz': No such file or directory when running build.sh
so I'm trying to build libonx locally ATM.

@gnac
Copy link

gnac commented Jan 13, 2025

Instructions for building on Manjaro/Arch.

(Updated with fix for std::setw/setfill test errors)

Arch Dependencies (install with pacman): gcc pyenv

Build libonnxruntime

pyenv shell 3.10.14 # specific to Arch, need to be run on each new console.
python3 -m venv venv # from readme
source ./venv/bin/activate # need to be run on each new console after running "pyenv shell 3.10.14" from above.
pip install -r requirements.txt  # one time requirement for this venv.
  • Follow instructions for building libonx, eg python3 -m venv venv etc ./release.sh v1.14.1-neuralnote.0
  • The first attempt will likely fail on the test activation file.
/home/dwh/AudioTools/src/libonnxruntime-neuralnote-1.14.1-neuralnote.2/onnxruntime/onnxruntime/test/mlas/unittest/test_activation.cpp:71:21: error: ‘setw’ is not a member of ‘std’
   71 |             << std::setw(8) << std::setfill('0') <<std::hex << Buffer[i].u << ", expecting:"

Add #include <iomanip> to the top of onnxruntime/onnxruntime/test/mlas/unittest/test_activation.cpp so we dont get these errors on lines 61-97. Note that this has fixed in the current main branch of onnxruntime.

Then, to avoid the release script deleting and re-cloning the onx repo because we've modified it, comment out lines 33-36 in release.sh

# if test -n "$(git -C ./onnxruntime status --porcelain)"; then
# 	rm -rf onnxruntime
# 	clone
# fi

Then, at line 49 in release.sh, add mkdir -p "./$dir" before line 49
so that the following cp line succeeds. eg lines 48-54 should now look like this:

(
	mkdir -p "./$dir"
	cp -rf include "./$dir/include"
	cp model.with_runtime_opt.ort "./$dir/"
	tar -czf "onnxruntime-${version}-${os}-${arch}.tar.gz" "$dir"
	rm -rf "./$dir/include" "./$dir/model.with_runtime_opt.ort"
)

Rerun ./release.sh v1.14.1-neuralnote.0
Now, you should have a onnxruntime-v1.14.1-neuralnote.0-linux-x86_64.tar.gz file in the libonnxruntime-neuralnote directory that NeuralNote needs.
Note that this builds ./onnxruntime/build/Linux/MinSizeRel/libonnxruntime.so while NeuralNote looks for a static library, eg libonnxruntime.a. The .so file is not added to the tar regardless.

Build NeuralNote

Clone the NeuralNote repo to the parent of the onnxruntime folder.
git clone --recurse-submodules --shallow-submodules https://github.com/DamRsn/NeuralNote
enter the repo and checkout the linux compatible version.
cd NeuralNote && git checkout v1.1.0
Then build NeuralNote per the readme.
./build.sh
However, at this point on my system, I get the following:

[ 81%] Built target NeuralNote
make[2]: *** No rule to make target '/home/dwh/AudioTools/src/NeuralNote/ThirdParty/onnxruntime/lib/libonnxruntime.a', needed by 'NeuralNote_artefacts/Release/VST3/NeuralNote.vst3/Contents/x86_64-linux/NeuralNote.so'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[2]: *** No rule to make target '/home/dwh/AudioTools/src/NeuralNote/ThirdParty/onnxruntime/lib/libonnxruntime.a', needed by 'NeuralNote_artefacts/Release/Standalone/NeuralNote'.  Stop.

@polygon
Copy link

polygon commented Jan 13, 2025

Glad this went well after all, many thanks for the porting effort. Regarding

However, When I try to drag the midi file somewhere, eg file explorer or DAW it doesn't appear to do anything.

I had this issue as well. I was debugging this for a while and noticed that canDrop in ThirdParty/JUCE/modules/juce_gui_basics/native/juce_DragAndDrop_linux.cpp became false as soon as I left the NeuralNote window with my mouse while dragging. It was quite absurd actually, I dragged the MIDI clips to my DAW (Bitwig Studio) and I could see the notes in the preview while hovering the clip. But as soon as I released the mouse button, the clip was gone.

I remember the Drag & Drop stuff to be quite complicated so I just ended up changing this function:

    void handleExternalDragButtonReleaseEvent()
    {
        if (dragging)
            X11Symbols::getInstance()->xUngrabPointer (getDisplay(), CurrentTime);

        if (canDrop)
        {
            sendExternalDragAndDropDrop();
        }
        else
        {
            sendExternalDragAndDropLeave();
            externalResetDragAndDrop();
        }
    }

Changed if (canDrop) to if (1) and Drag & Drop started working for me. Not sure if that is the way to do things but it seemed the simplest at the time.

@gnac
Copy link

gnac commented Jan 14, 2025

I was debugging this for a while

What permutations did you have to go through to get this to build? I recognize I'm on a slightly different platform, but the build step for linux seem broken or at least incomplete in their current form.
I finally was able to get a static libonnxruntime.a built, and then I had to force it into a tarball to be used by the NeuralNote build, which finally allowed me to build. Just wondering if you had to go through the same process.

@gnac
Copy link

gnac commented Jan 14, 2025

Updates:
I was finally able to get NeuralNote to build locally. Most issues had to do with generating the dependent libonnxruntime as a static library and then add it to the required tar ball.
No other major news except that I was able to drag the midi file into VSCode and it actually tried to open it, of course being binary, it didn't know what to do with it.
I also got Reaper and tried to drag it into there. It shows me that it want to accept it, but I get an error that it could not import 1 of 1 items:
image

@gnac
Copy link

gnac commented Jan 14, 2025

update 2: I just made a pull request to the libonnxruntime-neuralnote repo to automatically create and package the libonnxruntime.a file needed by NeuralNote into the onnxruntime-v1.14.1-neuralnote.0-linux-x86_64.tar.gz tar ball.
Now that I've got a working NeuralNote build, I can do some testing/debugging.

@DamRsn
Copy link
Owner

DamRsn commented Jan 15, 2025

update 2: I just made a pull request to the libonnxruntime-neuralnote repo to automatically create and package the libonnxruntime.a file needed by NeuralNote into the onnxruntime-v1.14.1-neuralnote.0-linux-x86_64.tar.gz tar ball. Now that I've got a working NeuralNote build, I can do some testing/debugging.

How is this PR different from this one? That's the on I used to build on Linux and I think I will merge it soon.

Concerning the drag and drop, is it solved? If not, I don't want to modify JUCE for this. What we could do instead is to add a button to export the midi file. It would opens a filechooser to select where to save the transcription.

@gnac
Copy link

gnac commented Jan 15, 2025

I think having a filechooser to save the midi file is a reasonable workaround for now.

I hadn't seen the other pull request prior so it looks like the static library creation is the effectively the same with a some additional sub libraries added to the final. One minor difference is that the make-archive.sh file currently builds the archive using git commands, whereas the polygon request also build a tar ball in the build-linux script.

@David-Else
Copy link

David-Else commented Feb 17, 2025

Concerning the drag and drop, is it solved? If not, I don't want to modify JUCE for this. What we could do instead is to add a button to export the midi file. It would opens a filechooser to select where to save the transcription.

Hi, I am getting the same problem in Reaper on Linux, please add the export midi button soon, I would love to use this software :)

Image

There is some talk that the standalone version drag and drop works better here: https://linuxmusicians.com/viewtopic.php?t=26632&sid=896ce3ee3602cfa9a4356ef9ecf52f32&start=15

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

No branches or pull requests

10 participants