Running IBNIZ, realtime audiovisualizer on Mac Os X
Here is something very cool: http://pelulamu.net/ibniz/
It is a realtime, compact 8-bit style audiovisualizer that has it’s own virtual machine and language to input code into. It can produce very nice demoeffects using only a minimal set of commands, check out the example video:
How to get the source code up and running on Mac Os X (tested w/ 10.6) ?
* Download and install XCode if you already haven’t done this)
* Install MacPorts: http://www.macports.org/install.php
Then run
sudo port install libsdl-framework
Command from the terminal to install the SDL development framework.
Grab the sources for Ibniz, untar, cd, and run make to compile.
sakari@iViper:ttys003:tmp$ curl -o ibniz-1.0.tar.gz http://pelulamu.net/ibniz/ibniz-1.0.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 19654 100 19654 0 0 7229 0 0:00:02 0:00:02 --:--:-- 24085 sakari@iViper:ttys003:tmp$ tar zxvf ibniz-1.0.tar.gz x ibniz-1.0/ x ibniz-1.0/ibniz.txt x ibniz-1.0/Makefile x ibniz-1.0/licence.txt x ibniz-1.0/vm_slow.c x ibniz-1.0/vm.h x ibniz-1.0/font.pl x ibniz-1.0/font.i x ibniz-1.0/ui_sdl.c x ibniz-1.0/examples.ib x ibniz-1.0/ibniz.h x ibniz-1.0/vm_test.c sakari@iViper:ttys003:tmp$ cd ibniz-1.0 sakari@iViper:ttys003:ibniz-1.0$ make gcc -c -Os ui_sdl.c -o ui_sdl.o `sdl-config --libs --cflags` i686-apple-darwin10-gcc-4.2.1: -lSDLmain: linker input file unused because linking not done i686-apple-darwin10-gcc-4.2.1: -lSDL: linker input file unused because linking not done i686-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done i686-apple-darwin10-gcc-4.2.1: Cocoa: linker input file unused because linking not done gcc -c -O3 vm_slow.c -o vm_slow.o gcc -s -Os ui_sdl.o vm_slow.o -o ibniz `sdl-config --libs --cflags` -lm ld: warning: option -s is obsolete and being ignored sakari@iViper:ttys003:ibniz-1.0$ ./ibniz
I noticed that I have to modify the getticks() function in ui_sdl.c in order to get usable framerates:
int getticks()
{
if(!ui.opt_nonrealtime)
return SDL_GetTicks()/3;
else
{
return dumper.framecount*50/3;
}
}
Dividing by three seems to do the trick, without it the frames start skipping too much for some reason.
I hope to integrate GeoKone scene loading into this, that would be very cool as all the GeoKone formations can be expressed in 1-2 lines of code and with a very simple core engine that reads the data.
I will be hacking on this thing for a while. Thanks Viznut for this great christmas toy :)
https://github.com/hornos
Thanks for the link Tom, I will check this out.