|
04-28-2006, 12:29 PM
|
#1
|
Human being with feelings
Join Date: Apr 2006
Posts: 2
|
SoC: Linux GUI Client
Hello
I'm interested in the development of a Linux GUI for Ninjam. I thinking in a GUI with this ideas:
o C++
o GTKmm GUI
o GStreamer for audio files manipulation
I don't know current Ninjam architecture, but I think in a Arch. like:
Code:
_______________ _________ _____________________
|Media Framework|<----->|libninjam|<----->|Native Clients |
|-DirectShow | |-Standart| |-MFC/Win32 |
|-Core Audio | | C++ | |-Cocoa/OSX |
|-Quicktime | | focus on| |-GTK+/GNOME |
|-GStreamer | | Portabi-| |-QT/KDE |
|-Helix | | lity | |-¿wxWigets? |
--------------- --------- ---------------------
What do you say?
Last edited by mario; 04-28-2006 at 01:51 PM.
|
|
|
04-28-2006, 03:38 PM
|
#2
|
Administrator
Join Date: Jan 2005
Location: NYC
Posts: 15,721
|
NINJAM is already architected with a portable design, such that it can use ASIO/Win32/CoreAudio/ALSA/JACK/etc for audio, and interface with native GUIs running wherever. So really if you were to do a GTK UI, you would be building the GTK UI, as well as perhaps extending the ALSA/JACK drivers to be more easily configured via GUI...
-Justin
|
|
|
04-28-2006, 05:05 PM
|
#3
|
Human being with feelings
Join Date: Apr 2006
Posts: 2
|
Exists documentation about NINJAM architecture?? Where?
|
|
|
05-23-2006, 12:07 PM
|
#4
|
Human being with feelings
Join Date: Jan 2005
Location: SF BA
Posts: 163
|
read the source, luke
Well...one way, is that you can read the source.
You can clearly see that some "sane" things are already in play with respect to architecture since there are linux and windows clients within the same codebase.
see www.ninjam.com/download.php
Quote:
Originally Posted by mario
Exists documentation about NINJAM architecture?? Where?
|
|
|
|
11-14-2006, 10:10 AM
|
#5
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
gtk gui
Hi,
I am currently hacking together a ninjam gtk gui for linux using glade. For now the gui is far from being finished, since I also do not have much time currently:-(.
I also modified the sources of the client/server to be a shared library to make development outside the ninjam source tree possible and to have a single backend code base for the client and the server;-). If anyone is interested in that modification I can upload the source code and debian/ubuntu packages to my homepage.
MfG
Tobias
|
|
|
11-14-2006, 02:18 PM
|
#6
|
Human being with feelings
Join Date: Jun 2006
Posts: 37
|
This sounds real helpful.
Can you post the code?
There were some recent posts of changes for OSX
and Linux Jack source changes. Down the road, it would
be great if this all fit together somehow.
|
|
|
11-14-2006, 06:06 PM
|
#7
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
debian/ubuntu packages
I have uploaded the .deb packages as well as the source code to my package repository. You can find instructions on:
http://www.gehrignet.de/cms/programming/ninjam.shtml
If you just want the source code you can get it from here:
http://gehrignet.de/ubuntu/unstable/...02.orig.tar.gz
and patch it with:
http://gehrignet.de/ubuntu/unstable/...0.02-4.diff.gz
The .orig.tar.gz file is just the server and client source code thrown together into one tree. So that is probably also how the code is internally maintained!?
The diff file includes the changes made by torbenh on jack support and my changes to split the code so that it has a shared library and header files usable from outside the built tree.
Note that there is no man page or readme in the debian packages. I am also not sure if the licensing info in there is correct. Most of the files in the debian directory are still automatically generated example files. But will probably be changed at some point;-).
MfG
Tobias
Last edited by tgehrig; 11-18-2006 at 08:23 AM.
Reason: update url
|
|
|
11-22-2006, 11:23 AM
|
#9
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Once again I have made an update of gninjam to version 0.01a-6 and libninjam to version 0.02-6. See my homepage for details.
The most significant changes are the selection of output channels for the remote channels. Using the patches of expertsleepers as base. I added additionally a switch to select between mono and stereo output. So that one can have what ever he wants.
MfG
Tobias
|
|
|
11-22-2006, 04:30 PM
|
#10
|
Human being with feelings
Join Date: Nov 2006
Posts: 4
|
Hi there,
I am using Gentoo Linux and I'm trying to compile your libninjam using the instructions on your home page.
When I try to run make I get an error - I've put the entire output of running make in this pastebin:
http://pastebin.ca/255426
Would appreciate any help as I'd love to get this working!
Thanks.
|
|
|
11-22-2006, 05:24 PM
|
#11
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Hi,
the problem is that it somehow doesn't find libninjam-common.so, even though it is built. Can you confirm that this file is lying in the ~/Desktop/gninjam/ninjam-0.02.orig? If it is, could you try adding -lninjam-common in line 9 of ninjam/cursesclient/Makefile?
Normally this should not be needed, but who knows. It could be that your compiler is more strict about the order of the arguments, so it could perhaps help moving -L../.. to some other point in the compile commando. Another solution could be replacing
-lninjam-client
by
../../libninjam-client.so ../../libninjam-common.so
Or even simpler if you want to compile libninjam to compile gninjam later on, you could simply comment out the lines that initiate the compilation of the cursesclient in the Makefile in the base directory. You'll probably also have to comment out the line for the ninjamsrv as well then. Because their you would probably get the same errors. For that you have to look for lines like:
(cd ninjam/cursesclient && make)
(cd ninjam/server && make)
or similar and remove them or put a # in front of them.
Hope I didn't forget any other alternatives;-).
PS: I did not get this error, because I had the libraries already installed. Now that I removed them from my system and compiled the source again, I get the same error, so I will have a deeper look into it.
PPS: Okay adding -lninjam-common did the trick, so forget all the rest above;-).
PPPS: Okay, I have updated the sources on my homepage, so simply download version 0.02-7 of libninjam, and everything should work fine.
MfG
Tobias
Last edited by tgehrig; 11-22-2006 at 05:37 PM.
|
|
|
11-22-2006, 06:44 PM
|
#12
|
Human being with feelings
Join Date: Nov 2006
Posts: 4
|
Thankyou so much for the fast response and helpfulness!
I have successfully compiled and installed libninjam, the server and curses client.
Unfortunately I've ran into another error when compiling gninjam; something to do with gconfmm.
http://pastebin.ca/255513
I have gconfmm-2.12.0 installed.
On a side note, I had to install an older version of gtkmm in order to get ./configure to complete successfully. I already had gtkmm-2.8.3 installed but ./configure didn't want those libraries.
So I have gtkmm-2.2.12 installed in parallel. Is this expected and normal?
Many thanks for your help again!
|
|
|
11-22-2006, 06:59 PM
|
#13
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Quote:
Originally Posted by parad0x
Unfortunately I've ran into another error when compiling gninjam; something to do with gconfmm.
http://pastebin.ca/255513
I have gconfmm-2.12.0 installed.
|
Well, it seems to me more like an error coming from gtkmm. It does not find gtkmm/combobox.h. I don't know if the gconfmm errors are some seperate ones or a consequence of the gtkmm error. So first try to fix the gtkmm problem;-).
Quote:
Originally Posted by parad0x
On a side note, I had to install an older version of gtkmm in order to get ./configure to complete successfully. I already had gtkmm-2.8.3 installed but ./configure didn't want those libraries.
So I have gtkmm-2.2.12 installed in parallel. Is this expected and normal?
|
Not really, I have gtkmm-2.10.4 installed here.
To be honest, I didn't change much in the configure script that was originally created by glade. So the version restrictions could possibly be wrong. So you could try to simply change the version of gtkmm in configure.in to your version. So replace:
PKG_CHECK_MODULES(GTKMM, [gtkmm-2.4 >= 2.10.2],,
by
PKG_CHECK_MODULES(GTKMM, [gtkmm-2.4 >= 2.8.3],,
then you will have to run
./autogen.sh
again and configure shouldn't complain about your gtkmm version.
PS: I have checked the old debian packages and the line with gtkmm-2.0 is definitivly wrong. So the minimum requirement should probably be 2.4.0.
MfG
Tobias
Last edited by tgehrig; 11-22-2006 at 07:11 PM.
|
|
|
11-22-2006, 07:23 PM
|
#14
|
Human being with feelings
Join Date: Nov 2006
Posts: 4
|
Aha!
Looking at this, I think I see what's happened:
Code:
PKG_CHECK_MODULES(GTKMM, [gtkmm-2.4 >= 2.10.2],,
[PKG_CHECK_MODULES(GTKMM,[gtkmm-2.0 >= 2.0.0])])
It didn't find >= 2.10.2 because I had 2.8.3, so it looked for gtkmm-2.0.
When configure failed, I saw it was looking for gtkmm-2.0 - so instinctively I went and installed the last version of gtkmm-2.0. I thought I had to install an older version, not upgrade my current version.
I've removed both versions of gtkmm, and I'm currently compiling 2.10.2-r1. I'll post back with the results.
I'm not an expert on this kind of thing at all, but I think I am slowly getting there!
Thanks for the hints!
|
|
|
11-22-2006, 07:25 PM
|
#15
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Why don't you just try your gtkmm-2.8.3?
PS: I have just uploaded the modifications. So if you don't want to modify it yourself, simply download the diff for gninjam-0.01a-7.
Last edited by tgehrig; 11-22-2006 at 07:27 PM.
|
|
|
11-23-2006, 03:19 AM
|
#16
|
Human being with feelings
Join Date: Nov 2006
Posts: 4
|
It worked!
Wow, this GUI is fantastic! It makes Ninjam so much less of a pain under Linux. Terrific job!
Quote:
Originally Posted by tgehrig
Why don't you just try your gtkmm-2.8.3?
|
I guess I'm too hasty... never mind, it works flawlessly with the new version.
Just one tiny thing that isn't really important. The top level menus (across the menu bar at the top of the main window) are in German, but the menu items are in English. It is just cosmetic but just in case you didn't know.
Thanks very much for your hard work!
|
|
|
11-23-2006, 05:59 AM
|
#17
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Quote:
Originally Posted by parad0x
It worked!
|
Great.
Quote:
Originally Posted by parad0x
Wow, this GUI is fantastic! It makes Ninjam so much less of a pain under Linux. Terrific job!
|
Thanks;-).
Quote:
Originally Posted by parad0x
Just one tiny thing that isn't really important. The top level menus (across the menu bar at the top of the main window) are in German, but the menu items are in English. It is just cosmetic but just in case you didn't know.
|
That comes from that my desktop is german and so glade uses by default german for the menus as well, as long as I don't change them;-). But I can enable translations. Then it should be no problem. I'll see what I can do;-).
MfG
Tobias
|
|
|
11-23-2006, 08:28 AM
|
#18
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Okay, I have changed the topmenu to be in english.
I didn't manage to internationalize the app. So if anyone of you is more familiar with internationalizing a gtkmm app, I would be very greatful for any help.
MfG
Tobias
|
|
|
11-23-2006, 10:59 AM
|
#19
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
So finally I managed to get internationalization working. Get version 0.01a-9 to use that feature;-).
The only problem that I have is that glade somehow makes all strings translatable even if I mark them as not translatable. Thus you see at startup shortly the header of the pot file flashing up in the chat window:-(.
For now there is only a translation into german, but feel free to contribute other translations:-P.
|
|
|
11-25-2006, 03:23 PM
|
#20
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
I have added master control for remote users, so that you can control the overall volume/pan/mute of a remote user. Check out version 0.01a-11.
|
|
|
11-29-2006, 08:25 AM
|
#21
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
sourceforge project
I got the approval from sourceforge to create a project for gninjam. I will setup the project and svn in the next few days. So if anyone is interested in participating in further development of gninjam and also libninjam, which I will also put into the svn, please contact me and I can give you access to the repository as soon as it is filled;-).
So perhaps then there is at least some activity on further development of ninjam, since from the official site there seems to be nothing going on!? Or am I mistaken there?
But if Justin or anyone of the other officials are against that idea I will just put gninjam on sourceforge.
MfG
Tobias
|
|
|
12-06-2006, 09:10 PM
|
#22
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
sourceforge project
Since noone has complained I have imported the source code of gninjam and libninjam into the project svn repository on sourceforge.net. Anyone who is interested can have a look at
http://sourceforge.net/projects/gninjam
But the only thing there is the source code in svn yet.
|
|
|
12-17-2006, 11:24 AM
|
#23
|
Human being with feelings
Join Date: Jan 2006
Posts: 40
|
Works great but needs a little change to build correctly
tgehrig
To begin, let me say your app is very cool.
Besides of being more practical than the console version, it adds features I have long waited for since the jack audio interface was added to cninjam.
Now I can route any signal in Ninjam to any sound app in linux that supports jack.
Nice, this let's me mix each signal in one Ardour track or bus and add efects to any of them.
For Your Information:
I am running Fedora Core 5.
To build gninjam correctly, I had to add #include <cmath> to a couple of .cc files,
or else the compile process fails complaining 'pow' was not declared.
The exact error message (first one of three):
vbox_local_channel.cc: In member function ‘virtual void vbox_local_channel: n_hscale_local_volume_value_c hanged()’:
vbox_local_channel.cc:154: error: ‘pow’ was not declared in this scope
I added the ' #include <cmath> ' statement to these 3 files:
src/vbox_local_channel.cc
src/vbox_remote_channel.cc
src/RemoteUserFrame.cc
After that, gninjam built correctly and ran great.
Hope that helps others and maybe the developer as well .
Thanks for the great app
Alex
|
|
|
12-19-2006, 03:53 AM
|
#24
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Hi,
thanks for your response. I found that a while ago, but haven't uploaded a new version since then:-(. I only commited it to the svn repository on sourceforge.
http://gninjam.svn.sourceforge.net/viewvc/gninjam/
You can checkout a new version by doing:
Code:
svn co https://gninjam.svn.sourceforge.net/svnroot/gninjam/libninjam/trunk libninjam
svn co https://gninjam.svn.sourceforge.net/svnroot/gninjam/trunk gninjam
as explained on the sourceforge svn page.
But I probably should also upload a new version;-).
You only have to add the include to njmisc.h in libninjam. Then the rest should work fine.
MfG
Tobias
Last edited by tgehrig; 12-19-2006 at 03:58 AM.
|
|
|
12-23-2006, 11:57 AM
|
#25
|
Human being with feelings
Join Date: Jan 2006
Posts: 40
|
jack transport sync?
tgehrig
should jack transport sync be working with gninjam?
I tried it with qjackctl and ardour and it was no go.
In the last version of cninjam from torbenh it worked, not perfectly (according to torbenh), but other jack transport-able apps did respond and saynced to cninjam.
I also read in your site that a jack transport fix was applied to gninjam in version 0.02-6.
Or is that fix for some other functionality?
Thanks Tobias
|
|
|
12-23-2006, 12:48 PM
|
#26
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Quote:
Originally Posted by dinoc
should jack transport sync be working with gninjam?
I tried it with qjackctl and ardour and it was no go.
In the last version of cninjam from torbenh it worked, not perfectly (according to torbenh), but other jack transport-able apps did respond and saynced to cninjam.
I also read in your site that a jack transport fix was applied to gninjam in version 0.02-6.
Or is that fix for some other functionality?
|
Well, I merged that fix, because Torben told me, that with that one the jack transport would work better. But actually I also had problems with jack transport. At least in the old version it seemed to work somehow when I did not start the jack daemon through qjackctl, but by executing it by hand on the command line or automatically through the ardour and co. When I started jackd through qjackctl the time in qjackctl turned crazy and had random values assigned:-(, at least it seemed so.
At least on my laptop I had problems using ardour with gninjam and jack transport. Somehow my system was too slow or so. Because when I ran hydrogen in parallel the drum loops were completely broken. But running hydrogen alone with gninjam did work to some extend. It automatically synced to a bar to line up with ninjam.
MfG
Tobias
|
|
|
01-03-2007, 06:33 AM
|
#27
|
Human being with feelings
Join Date: Jan 2007
Posts: 3
|
compile error ubuntu 6.10
Hi folks...
Great project! Waiting for a stable release...
After:
sudo apt-get build-dep gninjam
apt-get source gninjam
cd gninjam-0.01a
I tried an
dpkg-buildpackage -rfakeroot -b -uc -us
Seems, that something is going VERY wrong... :-(
xxx@yyy:~/gninjam-0.01a$ dpkg-buildpackage -rfakeroot -b -uc -us
dpkg-buildpackage: source package is gninjam
dpkg-buildpackage: source version is 0.01a-11
dpkg-buildpackage: source changed by Tobias Gehrig <tobias@gehrignet.de>
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 0.01a-11
fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
/usr/bin/make distclean
make[1]: Betrete Verzeichnis '/home/xxx/gninjam-0.01a'
make[1]: *** Keine Regel, um »distclean« zu erstellen. Schluss.
make[1]: Verlasse Verzeichnis '/home/xxx/gninjam-0.01a'
make: [clean] Fehler 2 (ignoriert)
cp -f /usr/share/misc/config.sub config.sub
cp -f /usr/share/misc/config.guess config.guess
dh_clean
debian/rules build
dh_testdir
# Add here commands to configure the package.
./configure --host=i486-linux-gnu --build=i486-linux-gnu --prefix=/usr --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info CFLAGS="-Wall -g -O2" LDFLAGS="-Wl,-z,defs"
configure: error: cannot find install-sh or install.sh in "." "./.." "./../.."
make: *** [config.status] Fehler 1
No install.sh in directory...
Any ideas ???
Best regards!
Bjoern
|
|
|
01-03-2007, 02:54 PM
|
#28
|
Human being with feelings
Join Date: Nov 2006
Posts: 24
|
Quote:
Originally Posted by bjoern
xxx@yyy:~/gninjam-0.01a$ dpkg-buildpackage -rfakeroot -b -uc -us
dpkg-buildpackage: source package is gninjam
dpkg-buildpackage: source version is 0.01a-11
dpkg-buildpackage: source changed by Tobias Gehrig <tobias@gehrignet.de>
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 0.01a-11
fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
/usr/bin/make distclean
make[1]: Betrete Verzeichnis '/home/xxx/gninjam-0.01a'
make[1]: *** Keine Regel, um »distclean« zu erstellen. Schluss.
make[1]: Verlasse Verzeichnis '/home/xxx/gninjam-0.01a'
make: [clean] Fehler 2 (ignoriert)
cp -f /usr/share/misc/config.sub config.sub
cp -f /usr/share/misc/config.guess config.guess
dh_clean
debian/rules build
dh_testdir
# Add here commands to configure the package.
./configure --host=i486-linux-gnu --build=i486-linux-gnu --prefix=/usr --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info CFLAGS="-Wall -g -O2" LDFLAGS="-Wl,-z,defs"
configure: error: cannot find install-sh or install.sh in "." "./.." "./../.."
make: *** [config.status] Fehler 1
No install.sh in directory...
Any ideas ???
Best regards!
Bjoern
|
You have to run
first. I forgot that step in my instructions and updated them now.
MfG
Tobias
|
|
|
01-06-2007, 04:54 AM
|
#29
|
Human being with feelings
Join Date: Dec 2005
Posts: 6
|
Thanks for looking into this tgehrig!
I just followed the instruction underlined on your ninjam page and it worked right away on my Edgy box, everything went fine from source grabbing to the compile stage and to the packaging/installing one!
The GTK GUI feels and works great, non english-us characters finally work so that I can finally talk to my landsmen without looking ignorant!
The only negative (or positive depending on how one sees it) feedback I can give you is that the window can't be made narrower orizzontally, the way it is right now it doesn't fit on a 1024x768 screen and that there is no desktop menu entry (or at least I could not find one).
Other than that great job man, really!!!
Cheers,
-gzed
Last edited by gzed; 01-06-2007 at 04:57 AM.
Reason: fixed some typos
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 03:01 PM.
|