« Wii remote + Garageband = <3 (Howto) | Main | MoteDaemon integrates Wiimotes in your Flash app (OSX) »

The Wiinstrument 0.2 for Linux and Mac

wiinstrument_0.2b745_screenshot.pngHi,

It's finally done. You can download the latest version of The Wiinstrument for Mac OS X and Linux as well as the C++ sources at SourceForge.

The Linux version can be found here and the Mac OS X version here (the application) and here (source code as Xcode project folder).

(Update: Release 0.2b745 fixes a bug and should now work on Intel macs!)

Changelog

  • [new] The Wiinstrument is now working under Linux. (tobias)
  • [new] Included "DrumStiicks w/ sampler" mode with own preliminary Audio sampler - not finished yet! (tobias)
  • [new] Added a Tilt-to-MIDI feature. Controller tilt angles are now mappable to MIDI controllers (with jitter correction). (sebastian)
  • [new] Joystick-to-MIDI support. (sebastian)
  • [new] Configurable MIDI channels for each instrument mode. (sebastian)
  • [new] Added a simple, easily extensible GUI for configuration. (sebastian)
  • [new] Included an automatic crash report feature. Please make use of it! (sebastian)
  • [new] Battery status display (sebastian)
  • [new] Joystick display on Confiiguration screen (tobias)
  • [new] Superfluos visual effects! (sebastian)
  • [better] Faster processing in Drumstiicks mode. (sebastian)
  • [better] Clarified license. The Wiinstrument is now licensed under GPL. (sebastian)
  • [better] Balanced Nunchuk and Wiimote acceleration differences when applying the same force to both controllers (sebastian)
  • [better] The executable is now about 10 times smaller (Éwhich saves me web server traffic) (sebastian)
  • [better] New version number scheme (main version+release number+release state+build number) (sebastian)
  • [better] Version display (sebastian)
  • [fixed] Kiiboard mode doesn't send more note-ons than needed anymore (sebastian)
  • [fixed] Corrected note display (sebastian)
  • [fixed] fixed an issue when no MIDI device is available when starting (sebastian)

Compiling The Wiinstrument on Linux

There are two ways to compile the version for Linux:


Using KDevelop

Just start KDevelop, load the project file and compile.
After that copy libfmod-3.75.so from wiinstrument/fmodapi/api to /usr/lib/.

Using make

Goto wiinstrument/ and start ./configure.

Copy the folders

wiinstrument/lib/boost/ 
wiinstrument/lib/Gosu/

as well as the files from

wiinstrument/lib/Gosu/gcc/ 
wiinstrument/lib/portmidi/
wiinstrument/lib/glew/
wiinstrument/lib/drums/
wiinstrument/lib/libcwiid/

to wiinstrument/src/.

Goto wiinstrument/ again, start make and watch it compiling ;)

Afterwards, copy libfmod-3.75.so from wiinstrument/fmodapi/api/ to /usr/lib/

The executable file should now be at wiinstrument/scr/debug/.


WARNING! (regarding the Linux version)
You have to press 1 + 2 on your Wiimote as soon as you start the application (even bevor the application window pops up).
After a few seconds, the application window should show.
If you can see the configuration screen and the two outer LEDs of your wiimote are glowing, the wiimote successfuly connected with The Wiinstrument.
If the window shows a screen ordering you to press 1 + 2 on your wiimote, something went wrong.
I recommend starting the application from a terminal window, so you can see the debugging messages.
This is a temporary flaw and will change in a later version.

Have fun,
Tobias and Sebastian

TrackBack

TrackBack URL for this entry:
http://screenfashion.org/cgi-bin/mt/mt-tb.cgi/12

Comments (24)

Kevin Ulrich Moschallski:

I waited long for a new version, but sadly nothing changed for me. I still got this error:
kevin:~/Desktop/The Wiinstrument.app/Contents/MacOS kevin$ ./The\ Wiinstrument
Begin pairing...
terminate called after throwing an instance of 'std::runtime_error'
what(): Error on line 141
Abort trap

I run OS 10.4.10 on a MacBook.

Greets
Kevin

Thanks for the report. The issue has already been reported to us, but as I can't reproduce it on my mac, it's difficult to find out where the error occurs. If you're a developer, I can only recommend to use XCode and the sources (the XCode project file is located at SourceForge), start the debugger and find out where the exception is thrown on your machine. The source file name would be really helpful.

Hope that helps,
Sebastian

Bodo:

Hi Hypo,
Es geht ja schön weiter hier.
Wann kommt der Win-Port?
Gruß aus Friedrichshain

Bodo

Building this on Slackware Linux you may have a problem where it cannot find libX11. To resolve this I edited src/Makefile and changed the LDFLAGS line to say:

LDFLAGS = -L/usr/X11R7/lib

One other minor thing, the executable is in src not src/debug
.

All the same, thanks a lot for the software and the port.


Russ:

I've had a quick look into the bug that 'Kevin Ulrich Moschallski' reported because the same thing happens to me.
I can't seem to build a debug version (it only compiles about 16 files instead of the 32 it compiles for the release version) so I can't be too exact.
The stack trace shows that the exception is being thrown in a function called getMetricsAt1Pt from Gosu::textWidth.
Hope that this helps.

Bodo: The Windows port is almost working at this point of time. Tobias is just fixing some minor flaws, then we'll be done :)

Scott, thanks for the information. Regarding the compile directory build setting, I'm waiting for information about this from Tobias, who maintains the Linux port.

Russ, your comment also helps a lot, thanks. I'll try to dig deeper into this issue to fix it ASAP.

Hey, I have the same problem as was reported before. (the line 141 problem)

I also am an amature developer, could we start an e-mail conversation about this problem?

Craig:

This is the stack trace I get from gdb on a brand new Intel Mac Book Pro, after building the debug copy targeting i386 and ppc.

#0  0x9003d66c in kill ()
#1  0x9010e8cf in raise ()
#2  0x9010d422 in abort ()
#3  0x90b4539c in __gnu_cxx::__verbose_terminate_handler ()
#4  0x90b43602 in __gxx_personality_v0 ()
#5  0x90b43640 in std::terminate ()
#6  0x90b43754 in __cxa_throw ()
#7  0x01015b5e in throwError ()
#8  0x01015c45 in (anonymous namespace)::getMetricsAt1Pt ()
#9  0x01015fa5 in Gosu::textWidth ()
#10 0x0108d147 in Gosu::Font::Impl::getChar ()
#11 0x0101285a in Gosu::Font::draw ()
#12 0x00004a66 in Wiinstrument::Core::drawGui (this=0x17946760) at /Users/craigcalef/Desktop/The_Wiinstrument_0.2b717_source/wiinstrument/Core.cpp:446
#13 0x0000b542 in Wiinstrument::MainWindow::draw (this=0xbffff994) at /Users/craigcalef/Desktop/The_Wiinstrument_0.2b717_source/wiinstrument/MainWindow.cpp:59
#14 0x0108ba69 in Gosu::Window::Impl::doTick ()
#15 0x9283c2de in __NSFireTimer ()
#16 0x9082d7e2 in CFRunLoopRunSpecific ()
#17 0x9082cace in CFRunLoopRunInMode ()
#18 0x92df29b8 in RunCurrentEventLoopInMode ()
#19 0x92df20c2 in ReceiveNextEventCommon ()
#20 0x92df1f19 in BlockUntilNextEventMatchingListInMode ()
#21 0x93299465 in _DPSNextEvent ()
#22 0x93299056 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#23 0x93292ddb in -[NSApplication run] ()
#24 0x0100f47d in Gosu::Window::show ()
#25 0x0000de95 in main () at /Users/craigcalef/Desktop/The_Wiinstrument_0.2b717_source/wiinstrument/Main.cpp:6

Hope this helps you track down the problem, and I'm anxious to try Wiinstrument.

Craig Calef:

I managed to fix the "what(): error on line 141" issue that people, myself included, were having.

I commented out all the lines referencing the 'bigDings' object. The problem seems like trying to use certain unicode characters (that maybe didn't translate somehow) is what's crashing the application, rather than the object itself or the Wingdings font it's trying to use. These drawing routines appear to be mostly cosmetic. After I did this and compiled I was able to run the application, pair the Wiimote, and have everything work as it should.

Yay, you're really really great :) The next build will include a fix for the problem. Thank you!

The bigDings font is really only a cosmetic issue and was the fastest temporary solution to get some dingbats into the UI. We will include stuff like this as bitmaps in later versions anyway while refactoring the GUI code (I'm already working on it)…

Kevin Ulrich Moschallski:

Hi,

i tried the update but still no luck on intel mac for me. Here's what i get:

./The\ Wiinstrument
terminate called after throwing an instance of 'std::runtime_error'
what(): Error initializing output device.
Abort trap

Greets Kevin

Don´t know if this is well known by now but all you have to do to make it work is install Wingdings.ttf

You find it on google!

hello ppl :)
i have the same error on line 141 ...
craig calef: is there any chance to put somewhere or email me the fixed build ? internal use only ;)
thanks

ifletcher:

funzt immer noch nich leider :o
hoffe das wird bald gefixt,
grüße aus potsdam!

christian

Hi from France!

Keep up the good work! I'm watching daily for news about the Windows version :)

Bye!

Josh:

Hi, I've downloaded every version so far, but alas, it still does not work on my Intel Mac. The application just opens to that white screen for a second and then closes with no message whatsoever. Please try to find a solution, I'm dying to use this app!!

Martin Kurtsson:

*SOLUTION* *SOLUTION* *SOLUTION* *SOLUTION* *SOLUTION* *SOLUTION*


Please read my earlier comment or admins post the solution somewhere.

Just install Wingdings.ttf then the program works!

Wingdings is not a part of MacOSX without MS Office.


*SOLUTION* *SOLUTION* *SOLUTION* *SOLUTION* *SOLUTION* *SOLUTION*

Yuti:

To the previous guy: read the comment some posts before: get the windings font and 0.2b745, and it will work!!!

I had same problem on an Intel Mac and it worked for me! You're gonna love this wiinstrument (^__^)

Kevin Paul:

Just wanted to say hello and that I am testing Wiinstrument with Ableton Live and STIEM's LiSa. So far so good. I will be closely watching development of this product.

Yay!

Thanks for the (potentially) wonderful program. Unfortunately I haven't managed to get it working...

I'm using Wiinstrument-0.2b717 on Gentoo Linux. I run the executable from the compilation directory (no installing). First, it crashed with the following error:

terminate called after throwing an instance of 'std::runtime_error'
what(): Cannot open file Drum Samples/1-Crash.wav

but I copied the Drum Samples-directory from wiinstrument/debug/src to wiinstrument/src, and got no complains any more.

Now the GUI starts, but I got the following error:

Press 1 + 2 on your Wiimote to connect.
Bluetooth name read error
Connection failed.

This is the first time I'm using bluetooth on linux (I borrowed a Wiimote and bought a D-Link DBT-122 Bluetooth Dongle to test this program), so the problem may well be in my bluetooth configuration. Anyway, I'd be very grateful if someone could give some hints about what's wrong and what should I do now.

Hi!

An update: Wiinstrument works now on my machine. It's great fun, I'm looking forward for the future versions of this application.

I made a Wiinstrument ebuild for fellow Gentoo users, get it here:
http://bugs.gentoo.org/show_bug.cgi?id=203586

I tried this guide in April, and it was to only one that could explain the necessary and mystical steps needed to be performed before and after running make.

Some corrections:
The executable will be found directly in wiinstrument/src/ and since the Drum Samples folder should be in the same folder and also resides in the same directory, it's easiest not to actually issue sudo make install, but instead run the executable directly from src/:
cd wiinstrument/src/
./wiinstrument

Actually, sudo make install won't even copy the Drum Samples at all so it is rather pretty useless...

Here are the commands I used to follow your guide:

# Installing (run from the same dir that you downloaded the installation-tar.gz)
sudo apt-get install libboost-dev libportmidi-dev libglew1.5-dev zlib1g-dev libcwiid0-dev
tar -xvf The_Wiinstrument_0.2b717_source_linux.tar.gz
wiinstrument/configure
cp wiinstrument/lib/boost/ wiinstrument/src/ -r
cp wiinstrument/lib/Gosu/ wiinstrument/src/ -r
cp wiinstrument/lib/Gosu/gcc/* wiinstrument/src/
cp wiinstrument/lib/portmidi/* wiinstrument/src/
cp wiinstrument/lib/glew/* wiinstrument/src/ -r
cp wiinstrument/lib/drums/* wiinstrument/src/
cp wiinstrument/lib/libcwiid/* wiinstrument/src/
cd wiinstrument
make
ls -l /usr/lib | grep libfmod # to see if the following file already is installed
sudo cp fmodapi/api/libfmod-3.75.so /usr/lib

# Additionally, you must download Wingdings.ttf, put it into ~/.fonts and then logout and back in again before running the application

# Running:
cd wiinstrument/src/
./wiinstrument

The problems I am having currently (and benn having since April since no version has come out since):

1. There is no sound to be heard - not even in Sampler mode

2. Wiinstrument will not start when another device is using the sound card, and will not allow any other application to use the sound card. This makes software MIDI synthesizers unusable and thus the MIDI device functionality of the whole application pretty useless for everyone without hardware MIDI controllers...
Either Wiinstrument should be able to start in MIDI-only mode, support JACK, or at least allow for instance Qsynth to run in alsa mode in parallell to the Wiinstrument application.

Any plans to address these issues - or has anyone found workarounds for the above on Linux?

Cheers all!

Additional (severe) issue on Linux:

No ALSA MIDI input device is registered - making it seemingly impossible to actually route the midi events to an actual external MIDI controller or software synthesizer / music application.

Is this Linux release but a interface? A teaser of what can become a real Linux port in the future?

Hi guys, great work on The Wiinstrument!

I really wish for it to work better on Linux though... I have written an HOWTO on how to install the latest (and only...) Linux version, as well as summarized the outstanding issues that affect it's usability in it's current form:

http://ubuntuforums.org/showthread.php?p=5431448#post5431448

Would be highly appreciated if you could look at it and get back on the reported issues here at sourceforge! Thanks!

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on September 18, 2007 5:49 PM.

The previous post in this blog was Wii remote + Garageband = <3 (Howto).

The next post in this blog is MoteDaemon integrates Wiimotes in your Flash app (OSX).

Many more can be found on the main index page or by looking through the archives.

Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by
Movable Type 3.34