nooploop / piejam

PieJam - an audio mixer with touch interface for Raspberry Pi
GNU General Public License v3.0
66 stars 1 forks source link

General Questions about this Project #5

Closed Xenox003 closed 2 years ago

Xenox003 commented 2 years ago

This "issue" is not really a problem with your code or this installation, more of a collection of questions ive been collecting about this project in the past few days of me trying to set up an development enviroment for loading this project, deploying it to my raspi and building it.

I see you used QT with CMAKE for piejam, did you use QT Creator for writing this? Visual Studio? QT Design Studio? I couldn't get any of those running with this project setup.

Which plattform did you build this on? I also couldnt get cross compilation from my windows computer to the PI working, do i need to do this on a Linux VM or maybe the PI itself?

I'm really looking forward in getting this running properly so i can play around with this project a bit. Thanks for answering and have a great day!

nooploop commented 2 years ago

Hi, if you want to quickly try it out, without building it, i would suggest to try a prebuilt image. You can find those here: https://github.com/nooploop/piejam_os/releases/tag/v0.7.0 Just download a corresponding image for the Raspberry you have and flash it to a sd card.

I develop it on Linux with QtCreator. You would require a Linux VM to build it i guess. This docker project https://github.com/nooploop/piejam_os_docker might also be useful if you want to build the whole image by yourself.

Xenox003 commented 2 years ago

Hi, thanks for the quick response, i will definetly take a look at running QT Creator on my Ubuntu VM, i'll also take a look at the docker enviroment.

Xenox003 commented 2 years ago

I have just came to another question:

As you are able to connect to your raspberry pi and use it as a media device, is it technically possible to mix between my physical audio interface and the bluetooth connection input from my phone?

Here is a little graph of the setup: image

nooploop commented 2 years ago

No this wouldn't work. It can only use one audio interface at a time. In this setup bluetooth would act as a secondary audio interface and this won't work. Edit: But if your audio interface has a spare audio input you can try to connect the phone per cable.

Xenox003 commented 2 years ago

Is that limit of one audio interface to prevent some issues from happening with alsa or something else? Is there anything that could stop me from building a simmilar application working with multiple interfaces?

Just from a technical view here ;)

nooploop commented 2 years ago

In theory it's possible, e.g. pulseaudio. But this would definitely introduce some latency as you would need to synchronize those multiple interfaces somehow.

Xenox003 commented 2 years ago

Well, pulseaudio would essentially be what i want with a little more touchscreen optimised user interface. UI inspiration would be Voicemeeters UI: image

Its also a program written in C++ (just for Windows)

Well my only problems are i dont really have any machine to dev and compile this on except for my Raspi and my C++ skills are meh but i guess i can sort that out

nooploop commented 2 years ago

Interesting software seems to solve similar problems like PieJam.

Xenox003 commented 2 years ago

Its basically piejam with less effects and more routing

Xenox003 commented 2 years ago

Also another question:

How do you properly debug with buildroot? Is there a more efficient way than building the whole OS, imaging it again and flashing it onto the card?

nooploop commented 2 years ago

If i need to test on device itself the workflow i use is following. I flash a freshly built image once. Afterwards i can rebuild the app when i need to and just copy it onto sd card.

But most of the time i don't need to test on device itself and so i develop on my desktop (x86) machine.

Xenox003 commented 2 years ago

Does that machine run on ARM? Or i386?

nooploop commented 2 years ago

It's an AMD x86-64 processor, a regular PC basicly.

Xenox003 commented 2 years ago

Looks like i cannot find any way to set up a development enviroment on my Debian 11 VM I get the exact same issue with mipp as in this I am running g++ 12 and it does not fix itself, i guess i can only build it with the -DCMAKE_CXX_FLAGS="-mfpu=neon-fp-armv8" argument, which can only run on ARM systems, at this point i do not have a clue what the fuck is wrong with my setup...

Maybe its the i386 architecture maybe its debian i dont know

nooploop commented 2 years ago

QtCreator has native support for CMake projects. Maybe try to open with QtCreator directly (open the top CMakeLists.txt). Otherwise i'll try to search for solutions tomorrow.

Xenox003 commented 2 years ago

I already did that there must be something wrong with my compiler i think, ill keep looking what could possibly wrong

Edit: looks like for some reason its using c++ 10 image

Also seems like theres only 10, 11 and 12 image

Actually im not sure if thats compiler versions or C++ versions... However i gotta get cmake to use the newest one instead of 10

Xenox003 commented 2 years ago

Ok i've been playing around with the compiler a bit, i got it it actually use c++ 20 now but the problem does not seem to be fixed so its definelty not the compiler version, i think i just cannot debug this on my x86 VM for some reason idk

Xenox003 commented 2 years ago

Actually looks like it was a problem with running the OS on a virtual machine, i installed debian 11 as dual boot on my laptop and it appears to be working very fine here

Update: Building went well, just the debugging is not working, same issues with Qt Virtual keyboard, i gotta find a fix for that

Xenox003 commented 2 years ago

Currently got that problem, not sure how to fix this 20220624_001104

nooploop commented 2 years ago

You need to set QT_IM_MODULE=qtvirtualkeyboard Bildschirmfoto_2022-06-24_08-21-49

nooploop commented 2 years ago

Run with debugger enabled, then the debugger should stop on the exception and you should be able to see what it tries to do and what's missing.

Xenox003 commented 2 years ago

Ok i fixed the permission problem by elevating my users rights to allow higher priorities:

/etc/security/limits.conf Added xenox003 hard rtprio 99

I still got some problems with the virtual keyboard but i am about to fix them

Xenox003 commented 2 years ago

Looks like its only missing QtQuick.VirtualKeyboard.Plugins although the QT_IM_MODULE is set to virtualkeyboard

Update: The whole application will not start because of this one Module... And google does not have a single solution for this problem instead of "Install qml-module-qtquick-virtualkeyboard" bro thats so fucked up ngl

[2022-06-24 06:28:56.812] [warning] qrc:/Main.qml:10:1: Type MainWindow unavailable (qrc:/Main.qml:10, )
[2022-06-24 06:28:56.812] [warning] qrc:/PieJam/Views/MainWindow.qml:22:5: Type RootView unavailable (qrc:/PieJam/Views/MainWindow.qml:22, )
[2022-06-24 06:28:56.812] [warning] qrc:/PieJam/Views/RootView.qml:127:5: Type InputPanel unavailable (qrc:/PieJam/Views/RootView.qml:127, )
[2022-06-24 06:28:56.812] [warning] qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127:5: Type Keyboard unavailable (qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127, )
[2022-06-24 06:28:56.812] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keybxoard.qml:38:1: module "QtQuick.VirtualKeyboard.Plugins" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38, )
nooploop commented 2 years ago

make sure it's set to qtvirtualkeyboard not just virtualkeyboard

Xenox003 commented 2 years ago

Ok thanks to you i actually double checked the ENV var and i had a typo in it... I was spelling qtvirtualeyboard instead of qtvirtualkeyboard Bruh momento for me, now it works that shit legit made me crazy :)

Time to check some stuff out

Xenox003 commented 2 years ago

image

This is what i was originally going to UI design the Device selection. Now i just gotta reverse engineer the device selection of the main settings and somehow apply it to this combobox I also gotta see if you Audio engine even allows to build this easily without having to fuck my brain by coding a new engine, if thats the case i'll probably dip out cause my C++ skills are pretty limited :(