COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 04-28-2006, 12:29 PM   #1
mario
Human being with feelings
 
Join Date: Apr 2006
Posts: 2
Default 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.
mario is offline   Reply With Quote
Old 04-28-2006, 03:38 PM   #2
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 12,567
Default

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
Justin is online now   Reply With Quote
Old 04-28-2006, 05:05 PM   #3
mario
Human being with feelings
 
Join Date: Apr 2006
Posts: 2
Default

Exists documentation about NINJAM architecture?? Where?
mario is offline   Reply With Quote
Old 05-23-2006, 12:07 PM   #4
cryptomail
Human being with feelings
 
cryptomail's Avatar
 
Join Date: Jan 2005
Location: SF BA
Posts: 163
Default 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?
cryptomail is offline   Reply With Quote
Old 11-14-2006, 10:10 AM   #5
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default 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
tgehrig is offline   Reply With Quote
Old 11-14-2006, 02:18 PM   #6
tbfx
Human being with feelings
 
tbfx's Avatar
 
Join Date: Jun 2006
Posts: 37
Default

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.
tbfx is offline   Reply With Quote
Old 11-14-2006, 06:06 PM   #7
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default 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
tgehrig is offline   Reply With Quote
Old 11-16-2006, 08:23 PM   #8
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default gtk linux gui

Hi,
I finally got the basic gui working. You can download it from my homepage
http://www.gehrignet.de/cms/programming/ninjam.shtml
or directly:
http://gehrignet.de/ubuntu/unstable/...0.01a-5.tar.gz

Note that you need the libninjam packages installed (currently version 0.02-5).
http://gehrignet.de/ubuntu/unstable/...02.orig.tar.gz
http://gehrignet.de/ubuntu/unstable/...0.02-5.diff.gz

For those running ubuntu feisty: I have also built packages, that can be downloaded from my repository. For more informations look at my homepage above.

MfG
Tobias

Last edited by tgehrig; 11-18-2006 at 06:34 PM. Reason: updated version
tgehrig is offline   Reply With Quote
Old 11-22-2006, 11:23 AM   #9
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

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
tgehrig is offline   Reply With Quote
Old 11-22-2006, 04:30 PM   #10
parad0x
Human being with feelings
 
Join Date: Nov 2006
Posts: 4
Default

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.
parad0x is offline   Reply With Quote
Old 11-22-2006, 05:24 PM   #11
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

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.
tgehrig is offline   Reply With Quote
Old 11-22-2006, 06:44 PM   #12
parad0x
Human being with feelings
 
Join Date: Nov 2006
Posts: 4
Default

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!
parad0x is offline   Reply With Quote
Old 11-22-2006, 06:59 PM   #13
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

Quote:
Originally Posted by parad0x View Post
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 View Post
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.
tgehrig is offline   Reply With Quote
Old 11-22-2006, 07:23 PM   #14
parad0x
Human being with feelings
 
Join Date: Nov 2006
Posts: 4
Default

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!
parad0x is offline   Reply With Quote
Old 11-22-2006, 07:25 PM   #15
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

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.
tgehrig is offline   Reply With Quote
Old 11-23-2006, 03:19 AM   #16
parad0x
Human being with feelings
 
Join Date: Nov 2006
Posts: 4
Default

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 View Post
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!
parad0x is offline   Reply With Quote
Old 11-23-2006, 05:59 AM   #17
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

Quote:
Originally Posted by parad0x View Post
It worked!
Great.
Quote:
Originally Posted by parad0x View Post
Wow, this GUI is fantastic! It makes Ninjam so much less of a pain under Linux. Terrific job!
Thanks;-).

Quote:
Originally Posted by parad0x View Post
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
tgehrig is offline   Reply With Quote
Old 11-23-2006, 08:28 AM   #18
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

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
tgehrig is offline   Reply With Quote
Old 11-23-2006, 10:59 AM   #19
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

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.
tgehrig is offline   Reply With Quote
Old 11-25-2006, 03:23 PM   #20
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

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.
tgehrig is offline   Reply With Quote
Old 11-29-2006, 08:25 AM   #21
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default 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
tgehrig is offline   Reply With Quote
Old 12-06-2006, 09:10 PM   #22
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default 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.
tgehrig is offline   Reply With Quote
Old 12-17-2006, 11:24 AM   #23
dinoc
Human being with feelings
 
Join Date: Jan 2006
Posts: 22
Default 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
dinoc is offline   Reply With Quote
Old 12-19-2006, 03:53 AM   #24
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

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.
tgehrig is offline   Reply With Quote
Old 12-23-2006, 11:57 AM   #25
dinoc
Human being with feelings
 
Join Date: Jan 2006
Posts: 22
Default 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
dinoc is offline   Reply With Quote
Old 12-23-2006, 12:48 PM   #26
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

Quote:
Originally Posted by dinoc View Post
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
tgehrig is offline   Reply With Quote
Old 01-03-2007, 06:33 AM   #27
bjoern
Human being with feelings
 
Join Date: Jan 2007
Posts: 3
Default 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
bjoern is offline   Reply With Quote
Old 01-03-2007, 02:54 PM   #28
tgehrig
Human being with feelings
 
Join Date: Nov 2006
Posts: 24
Default

Quote:
Originally Posted by bjoern View Post
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
Code:
./autogen.sh
first. I forgot that step in my instructions and updated them now.

MfG
Tobias
tgehrig is offline   Reply With Quote
Old 01-06-2007, 04:54 AM   #29
gzed
Human being with feelings
 
Join Date: Dec 2005
Posts: 6
Default

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
gzed is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 11:45 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.