muse for windows

MusE is a MIDI/Audio sequencer with recording and editing capabilities, aiming to be a complete multitrack virtual studio for Linux. http://muse-sequencer.org/

Moderators: khz, MattKingUSA, spamatica

aquilarubra
Established Member
Posts: 48
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Postby aquilarubra » Tue Jan 22, 2019 10:41 am

spamatica wrote:I can duplicate the link error, no clue yet what the problem is though. Confusing.


I am trying to get some help in stackoverflow:
https://stackoverflow.com/questions/543 ... able-class

They ask that I provide a minimal example, extracting the code of QtTimer. I am not that proficient with C++. I started re-learning it, just now, after over 20 years I was not using it. Can you help, so that we can get some more advise?

spamatica
Established Member
Posts: 193
Joined: Mon Feb 08, 2010 10:38 am

Re: muse for windows

Postby spamatica » Thu Jan 31, 2019 6:36 pm

Hey,
very sorry for not responding... My time is not really organized around muse anymore :/

Though I actually managed to find the reason for the error \o/

The InnerTimer class exists to have an object of QObject type, which the qtbasictimer requires as timer recipient.
But to have InnerTimer correctly inherit from QObject it must pass through some Qt voodoo.
In this case it means that the following lines needs to be copied from the CMakeLists.txt in platform_independence.

Code: Select all

QT5_WRAP_CPP (driver_mocs
      qttimer.h
    )


and

Code: Select all

       ${driver_mocs}

in add_library

Hope this helps!

spamatica
Established Member
Posts: 193
Joined: Mon Feb 08, 2010 10:38 am

Re: muse for windows

Postby spamatica » Thu Jan 31, 2019 6:43 pm

Also, as you are nearing the end of the first phase I would suggest you create a github account (if you do not have one already) and push your branch into the git repository for that account and make it public.
This is the first step towards making a pull request. In the short term it is a way for sharing your code base with us so more people can try it and possibly help improve it.

aquilarubra
Established Member
Posts: 48
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Postby aquilarubra » Wed Feb 06, 2019 6:31 pm

Great man! It compiled. I already have muse3.exe. Now, next issue :lol: Last .dlls.

Code: Select all

[ 96%] Linking CXX shared library deicsonze.dll
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text+0x13575): undefined reference to `Awl::AbstractSlider::setMinLogValue(double)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text+0x13589): undefined reference to `Awl::AbstractSlider::setMaxLogValue(double)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text$_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog[_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog]+0xd84f): undefined reference to `Awl::FloatEntry::FloatEntry(QWidget*, bool)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text$_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog[_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog]+0xdc15): undefined reference to `Awl::FloatEntry::FloatEntry(QWidget*, bool)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text$_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog[_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog]+0xe1eb): undefined reference to `Awl::FloatEntry::FloatEntry(QWidget*, bool)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text$_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog[_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog]+0xe7c5): undefined reference to `Awl::FloatEntry::FloatEntry(QWidget*, bool)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text$_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog[_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog]+0xeb3c): undefined reference to `Awl::FloatEntry::FloatEntry(QWidget*, bool)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text$_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog[_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog]+0x15c37): undefined reference to `Awl::VolKnob::VolKnob(QWidget*)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzegui.obj):deicsonzegui.cpp:(.text$_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog[_ZN19Ui_DeicsOnzeGuiBase7setupUiEP7QDialog]+0x15f28): undefined reference to `Awl::VolKnob::VolKnob(QWidget*)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzeplugin.obj):deicsonzeplugin.cpp:(.text+0x1728): undefined reference to `Awl::CheckBox::CheckBox(QWidget*)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzeplugin.obj):deicsonzeplugin.cpp:(.text+0x1972): undefined reference to `Awl::FloatEntry::FloatEntry(QWidget*, bool)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzeplugin.obj):deicsonzeplugin.cpp:(.text+0x198a): undefined reference to `Awl::FloatEntry::setMinLogValue(double)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzeplugin.obj):deicsonzeplugin.cpp:(.text+0x1996): undefined reference to `Awl::FloatEntry::setMaxLogValue(double)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzeplugin.obj):deicsonzeplugin.cpp:(.text+0x19f0): undefined reference to `Awl::Slider::Slider(QWidget*)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzeplugin.obj):deicsonzeplugin.cpp:(.text+0x1a0f): undefined reference to `Awl::AbstractSlider::setMinLogValue(double)'
CMakeFiles\deicsonze.dir/objects.a(deicsonzeplugin.obj):deicsonzeplugin.cpp:(.text+0x1a1b): undefined reference to `Awl::AbstractSlider::setMaxLogValue(double)'
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [synti\deicsonze\CMakeFiles\deicsonze.dir\build.make:227: synti/deicsonze/deicsonze.dll] Error 1
mingw32-make[1]: *** [CMakeFiles/Makefile2:2631: synti/deicsonze/CMakeFiles/deicsonze.dir/all] Error 2
mingw32-make: *** [Makefile:151: all] Error 2

spamatica
Established Member
Posts: 193
Joined: Mon Feb 08, 2010 10:38 am

Re: muse for windows

Postby spamatica » Wed Feb 06, 2019 8:07 pm

Alright, cool.

Unless you have a clear idea on how to link Awl correctly I think you might aswell ignore deicsonze for the moment. It's a synth plugin and MusE will run fine without it.
This goes for all the synths, they are optional for the core application.
What happens if you try to run the exe? Probably some missing dlls, and maybe some paths that are messed up if you get further.

aquilarubra
Established Member
Posts: 48
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Postby aquilarubra » Fri Feb 15, 2019 8:53 am

In the true, I would like to fix the cmake to include the missing library. It will serve for issues with other libraries in the future.

I tried to launch the exe, indeed, but I need to organize all the files in a package first, because it was obviously not finding all the dlls.

aquilarubra
Established Member
Posts: 48
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Postby aquilarubra » Fri Feb 15, 2019 11:06 am

Tried now. Launching the application gives this:

Code: Select all

E:\msys64\usr\src\aaa>muse3.exe
creating new config...
  FAILED!
creating new qt config...
  FAILED!
Config File </.config/MusE/MusE.cfg>
qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

aquilarubra
Established Member
Posts: 48
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Postby aquilarubra » Fri Feb 15, 2019 2:06 pm

I think I solved the QT issue. There is quite a mess with paths, as it seems MusE expects them in precise locations. I also found that I must launch jack before.

So far, I had progress. It seems it can load everything, but then it won't open (probably crashed somewhere).

Code: Select all

E:\msys64\usr\src\aaa>muse3.exe
Config File </.config/MusE/MusE.cfg>
configuration: unknown tag <dummyAudioBufSize> at line 21
configuration: unknown tag <dummyAudioSampleRate> at line 22
LOCALE en_US
open projectfile: No error
Denormal protection enabled.
Select audio device from configuration : 0
User JackAudio backend - backend selected through configuration
Using Jack
Initializing Native VST support. Using VESTIGE compatibility implementation.


Now, any idea? Maybe it is time I start learning how to bring everything to git and maybe ask for merging my changes (which are good anyway for compatibility).

artofmusic
Established Member
Posts: 64
Joined: Mon Mar 17, 2014 8:01 pm

Re: muse for windows

Postby artofmusic » Fri Feb 15, 2019 2:24 pm

Time for a branch called muse-windows, did you use cmake, mingw, and qt sdks? What is your dependency list? Can we build reproducible builds on Linux for windows for faster testing?

aquilarubra
Established Member
Posts: 48
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Postby aquilarubra » Fri Feb 15, 2019 4:30 pm

I would prefer to get the changes in master instead of branching. I kept everything as is, only added defines for windows. Only 2 files needed to be modified and I could not put a define.

I used mingw64 on Windows, with default mingw qt. I prepared a cmake variant for windows. I'll need to make a dependency list. I had to compile a few mingw packages myself, such as jack.
I think it is possible to cross compile from Linux, I did that for Ardour too. But there are still things to figure out, and I'm not sure it's a good idea to go the cross compiling route. There are issues with cmake on windows... such as paths, which need manual intervention to fix. I think this won't happen on Linux. That's why I would go the hardest route first, and when things work I would cross compile also.

aquilarubra
Established Member
Posts: 48
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Postby aquilarubra » Sat Feb 16, 2019 4:41 pm

I cloned git and I am updating it with all my changes. I saw that much code changed in the last month.

Unfortunately, I stumbled in muse/waveedit/wavecanvas.cpp, which was using QProcess. Now it was changed to use fork().

So my compilation stops there now and I could not verify it to the end. Can somebody please update it with QProcess again? Care should be taken to avoid adding *nix specific code if a Windows port has to be made. I opened an issue in git also.

Here is my port: https://github.com/aquilarubra/muse/tree/master/muse3

In the "windows" folder there are 2 specific files (in the .zip) to substitute when doing a windows compilation. There is also a file that lists all the libraries I have installed in mingw.
To compile, refer to muse3/compile_muse_mingw.sh.

If you cross compile, you likely won't need some steps in compile_muse_mingw.sh (I needed to fix paths in Windows, otherwise the cpp code from the ui files was not generated).

Tim E. Real
Established Member
Posts: 181
Joined: Sat Sep 15, 2012 12:36 am

Re: muse for windows

Postby Tim E. Real » Sat Feb 16, 2019 6:57 pm

Quick note: Fixed wavecanvas.cpp as noted in the issue report.
Please see my comments there for a wee bit of extra info.
No more fork() in MusE :)
But maybe still a few unused linux-specific headers lying around in other modules that were maybe never removed.
Lemme know if you spot any. We'll get rid of them.
Thanks.

aquilarubra
Established Member
Posts: 48
Joined: Sat Nov 24, 2018 8:12 pm

Re: muse for windows

Postby aquilarubra » Sat Feb 16, 2019 8:36 pm

Thank you Tim. I could progress now to 90% in the Windows compilation. It seems I forgot something, but I will work it out in the next days.

Tim E. Real
Established Member
Posts: 181
Joined: Sat Sep 15, 2012 12:36 am

Re: muse for windows

Postby Tim E. Real » Sun Feb 17, 2019 10:00 pm

Hi just a heads up as I rework some of the pull request:
It took me several hours to realize that I should have forked your branch instead of
cloning and modifying it. It kept wanting to push to your repo! Ha ha.

So you can now watch what I'm doing or even pull the changes I've made at:
https://github.com/terminator356/muse

There's a back-and-forth between it and our master as I make changes to our master and pull them
back into my fork of your branch.

Ironic. We just removed all fork() from MusE, and here I am working with a... fork of a fork of MusE.

Tim.

Tim E. Real
Established Member
Posts: 181
Joined: Sat Sep 15, 2012 12:36 am

Re: muse for windows

Postby Tim E. Real » Mon Feb 18, 2019 12:35 am

OK. I think I've done all that I wanted to change regarding ALSA code and exp10() and M_PI stuff.
Again the results are here:
https://github.com/terminator356/muse

If you could find some time to try it on Windows before I ponder merging into our master, thanks.
You could just clone, build, and run, but no commits or pushes allowed.
Or fork my fork of your fork (ha ha) so that you can request that I pull any further changes that might be required for these specific areas.
[Edit:] I'm guessing you might have some more changes for us than that. I suppose you could also just request a new pull from us for your changes.
At your convenience...

Apologies if I expose any ALSA related compilation fails. Hopefully not at all.
If so lemme know ASAP and as I say, we'll fix those specific areas.

I just noticed your pull request disappeared. Hopefully I didn't do something... Guess you're working on something...

PS: Although it's automatic, on Windows you might want to be sure disable both ALSA and DSSI cmake support.
I noticed a funny line somewhere in there (mine) which might try to bring in ALSA if DSSI is enabled, even if ALSA is disabled.


Return to “MusE Sequencer”

Who is online

Users browsing this forum: No registered users and 1 guest