Update libaam-jack XT2-config to QT5 or CLI?

Programming applications for making music on Linux.

Moderators: khz, MattKingUSA

User avatar
GMaq
Established Member
Posts: 2023
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 107 times
Been thanked: 65 times

Update libaam-jack XT2-config to QT5 or CLI?

Post by GMaq »

Hi,

For MIDI work I'm still a fan of EnergyXT and the 2.7 native Linux version still works on modern systems but to work on Linux it requires JACK Audio support through the libaam-jack project that falkTX did when he was a wee Linux Audio baby...

Earlier thread for reference: viewtopic.php?f=1&t=21110

Setting up JACK for EnergyXT to utilize it as an Audio driver is done with an 'xt2 config' utility that was written in QT4... so what?? Well I just updated my first system to Debian 11 Bullseye and they have removed QT4 support so if I want to keep this baby alive a bit longer I need to get the xt2-config utility ported to QT5.. This is beyond my VERY humble capabilities, but I have the source code and I can't imagine for a QT maestro it would be very difficult. I am willing to pay cash money for the time and effort (to a reasonable extent). Yes I love MIDI in EnergyXT that much!

The source code is here: http://bandshed.net/files/libaam-jack-1.2.tar.gz

And a Deb of the EnergyXT 2.7 demo with libaam.so already included is here:
http://www.bandshed.net/packages/energy ... -2_all.deb

An existing gtkdialog/QT4 implementation of the XT2-config is here:
http://www.bandshed.net/packages/energy ... -1_all.deb

Any takers!?? C'mon I bet you can't do it!!??

*EDIT
On the off chance that anyone is interested but doesn't know/understand how it worked originally I'm happy to post a demo video. It certainly doesn't have to be QT5... even a CLI Utility would be acceptable as long as I can set up the same JACK inputs and outputs as the QT4 utility did..
User avatar
GMaq
Established Member
Posts: 2023
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 107 times
Been thanked: 65 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by GMaq »

Lol, there seems to be a lot of interest in this.. :lol:

I've found a solution that works without needing xt2-config and therefore no QT4 setup UI..

It is the older pre-falkTX utility method of using energyXT with JACK and it still compiles and seems to work, It appears to be a newer modified 'jack.cpp' file than the original one posted by the EnergyXT developer. I'll need to test for a few days but at least I'm up and running on Bullseye..

More info here: http://energyxt2.wikidot.com/jack-cpp
User avatar
marbangens
Established Member
Posts: 49
Joined: Fri Nov 16, 2018 8:39 pm
Been thanked: 4 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by marbangens »

Hi, I took a look at it and its using a QtCreator project from 2011. I would start a new project and generate a new makefile with qmake for qt5. Depending on what problems will arise, can't tell you when it could be done, it will probably take a day or 2, its not a supper big program. Next weekend or maybe even tomorrow I could try. I have done 2 simple qt4 programs, we'll see what I can do.. I'm not a qt expert. Started by just copying the code here https://github.com/noisecode3/energyXT2-libaam-jack.
User avatar
marbangens
Established Member
Posts: 49
Joined: Fri Nov 16, 2018 8:39 pm
Been thanked: 4 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by marbangens »

lol, it was almost done, but I realized I was referencing the wrong kind of qt object type in the ui file, I never used qt creator. Always used just vim :roll: (I use MainWindow when it was QDialog :lol: ) There is some makefile hacking and removing 1 warning left to do. I will be busy the coming week but some day I will finish this. I'm exited to see that QDialog window :lol: this was fun :) I downloaded energyXT it seems like a nice little program but there's no threads. Its not from 1980-2000? that's weird
User avatar
GMaq
Established Member
Posts: 2023
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 107 times
Been thanked: 65 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by GMaq »

@marbangens

Thanks so much for looking into this! There is more fun in this thread starting halfway down Page 2:
viewtopic.php?p=132458#p132458

EnergyXT is a great MIDI and loop-based sequencer hands down! Not too long after it got a Linux port the developer seemed to walk away, not sure what all happened but a lot of people are not happy about it on the KVR forum.. :roll: Not terrific Audio handling and very picky about Plugins due to the archaic vintage of it's VST support but the work by @robbert-vdh in the thread I linked may give it a new lease on life..

I absolutely love it for MIDI work even with it's many caveats and flaws..
User avatar
marbangens
Established Member
Posts: 49
Joined: Fri Nov 16, 2018 8:39 pm
Been thanked: 4 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by marbangens »

ahh love his work on yabridge, when I think about it that will probably turn this daw (the plugin processing) into multi thread lol.
I got it running on qt5, it was nothing special I just had to select matching class object when I created new project from trample :wink:
Do you want something "cute" added like, icon or translation or a new button like "close and run XT2" ?
Tell me!! Ketchup and muster :) Tomorrow I put this together with libaam (the main makefile). Its Manjaro's Gnome theme.
Attachments
Screenshot from 2021-06-28 22-19-33.png
Screenshot from 2021-06-28 22-19-33.png (115.54 KiB) Viewed 326 times
User avatar
GMaq
Established Member
Posts: 2023
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 107 times
Been thanked: 65 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by GMaq »

@marbangens

That's great!! Thank you again for your valuable time on this.. :D I don't think it needs anything fancy, but I'm all ears for suggestions... I may resurrect my crude gtkdialog control panel and add some buttons to it to run some of the yabridge options for plugins so the JACK setup dialog in that context can just remain fairly simple.

BTW I noticed a typo for 'Outputs' in your screenshot..


XT2Utils.png
XT2Utils.png (40.31 KiB) Viewed 294 times
XT2Utils2.png
XT2Utils2.png (30.24 KiB) Viewed 294 times
User avatar
marbangens
Established Member
Posts: 49
Joined: Fri Nov 16, 2018 8:39 pm
Been thanked: 4 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by marbangens »

Oh it says Outpus lol. I will change that. And fix that warning. No problem I have time for fun and learning. I have like a summer school. And also need to prepare for autumn real hard school. And next year I hope I get into Swedish high school. I did go to music gymnasium but music didn't really work out for me. I really love jaming and making my own music. I always loved computers and had my first computer when I was 7. So I'm gonna study software development with c++. Its about 2 years and I live next to that high school.

It works on debian for me check my git repository.
User avatar
GMaq
Established Member
Posts: 2023
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 107 times
Been thanked: 65 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by GMaq »

marbangens wrote: Wed Jun 30, 2021 2:33 am Oh it says Outpus lol. I will change that. And fix that warning. No problem I have time for fun and learning. I have like a summer school. And also need to prepare for autumn real hard school. And next year I hope I get into Swedish high school. I did go to music gymnasium but music didn't really work out for me. I really love jaming and making my own music. I always loved computers and had my first computer when I was 7. So I'm gonna study software development with c++. Its about 2 years and I live next to that high school.

It works on debian for me check my git repository.
Sounds like you're quite a young fella, and a very smart one as well! Thanks so much for helping out this old fella! :D

I'll dig out my old 32bit laptop and build everything to try out, your time and effort are very much appreciated! I'll post back with my findings later tomorrow..

*EDIT: Built it and it works great! I also fixed the 'Outputs' typo in QT5 designer but you may want to fix it on github. Thanks so much again!!
User avatar
marbangens
Established Member
Posts: 49
Joined: Fri Nov 16, 2018 8:39 pm
Been thanked: 4 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by marbangens »

The warning is about a change in c++ syntax, It wants to check jack_port_flags() flipped returns against JackPortIsPhysical (0x4) with & (Bitwise AND) This should be

Code: Select all

~port_flags
or

Code: Select all

(!port_flags)
when used with & (Bitwise AND) and I changed it to

Code: Select all

(!port_flags)
If someone knows this is wrong tell but seems right to me. It will always be true and escape the while loop at this point except if the bits are exactly matching. Simply meaning its true and will go on in the while loop if jack_port_flags() return JackPortIsPhysical...

Don't worry about it, pleas try this on both virtual and physical jack ports for me too, and we can get rid of this warning too :lol:
User avatar
GMaq
Established Member
Posts: 2023
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 107 times
Been thanked: 65 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by GMaq »

I'm not sure about that, but I will be testing the whole setup this week.. I found another minor wrinkle.. I compiled everything on a 32bit system which works great on a 32bit system and libaam.so MUST be 32bit and use 32bit JACK regardless of your system architecture, but the xt2-config utility (the part that needed updating to qt5) can be compiled for either 64bit or 32bit.. On a 64bit system if you use the 32bit xt2-config it will require enabling multiarch and pulling in a lot of 32bit QT5 support libraries which is kind of not obvious and a pain..

So on a 64 bit system:

Have 32bit JACK libs installed
Compile libaam.so for 32bit to match energyXT's 32bit binary
Compile xt2-config as 64bit
Compile trans2midi (probably not worth the effort) for 64bit..

It does say this in the README but I just thought I'd mention it more clearly here for the 5 people globally that will read this...
User avatar
marbangens
Established Member
Posts: 49
Joined: Fri Nov 16, 2018 8:39 pm
Been thanked: 4 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by marbangens »

Yes this is like before, when it was qt4? I mention you need some multilib packages there in the readme but I agree it not a very good guide there. It's a 32-bit application and you will need 32-bit jack and 32-bit libc and qt5 32-bit to link to in the libaam all the way to the kernel to run this program... You just enable multiarch and install the libs you need. It no fuzz at all I can make a better guide there. There is no way you can use a 32-bit application without multilib... if you don't do serious black magic.. XT2-config or xt2-trans2midi dont need to be 32bit "programs with their own main()" but libaam dose. you can't link directly to 64-bit libs from 32-bit libaam. as far as I understand this the kernel connects this in the end. its simulates i386 in x86-64.
On a 64bit system if you use the 32bit xt2-config it will require enabling multiarch
you will need multilib regardless because of qt code in libaam that needs to be linked there
XT2-config or xt2-trans2midi are compiled as 64-bit on a 64-bit system in the makefile as it is now
User avatar
marbangens
Established Member
Posts: 49
Joined: Fri Nov 16, 2018 8:39 pm
Been thanked: 4 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by marbangens »

libaam only reads the qt configuration from XT2-config

Code: Select all

QSettings settings("energyXT2", "XT Software AS");
they don't link, you can't directly link that.
Compile trans2midi (probably not worth the effort) for 64bit..

It does say this in the README but I just thought I'd mention it more clearly here for the 5 people globally that will read this...
trans2midi should be no problem just run it as 64-bit and it compiles fine for me :)
5 people really? I better fix that readme and make it clear. I help 5 people cool :)
User avatar
GMaq
Established Member
Posts: 2023
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 107 times
Been thanked: 65 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by GMaq »

marbangens wrote: Thu Jul 01, 2021 4:30 pm 5 people really? I better fix that readme and make it clear. I help 5 people cool :)
Haha! I mean 5 people who still care about energyXT... not 5 people who value your generous time and effort.. :D

I'm hoping to create an energyXT 'bundle' that installs to /opt with all your work, yabridge, extra setup gui utilities and some plugins and sound libs included... Install on a 64bit system and have fun 'as-is' or add some more plugins if you want.. Install and go with a much better user experience on Linux than the original energyXT Linux release... the only problem is people who don't have a license will be stuck in demo mode... I will have to check if a license for the Linux version can still be purchased..
oddy.o.lynx
Established Member
Posts: 56
Joined: Sat Jun 30, 2018 2:54 am
Has thanked: 3 times
Been thanked: 4 times

Re: Update libaam-jack XT2-config to QT5 or CLI?

Post by oddy.o.lynx »

GMaq wrote: Thu Jul 01, 2021 8:35 pm
marbangens wrote: Thu Jul 01, 2021 4:30 pm
I will have to check if a license for the Linux version can still be purchased..

http://energy-xt.com/shop.html

I have native energyXT rolling too... lots of 32 bit VSTs also work, it's more for shits and giggles and because I can

I would recommend to try the Windows version using WINE, it's pretty stable and if you have 32 bit win VST's all the better
Post Reply