Friday, January 22, 2010

Tut 9: Dropping your IDE

Hi,

So far, I've been using an IDE for most of the tutorials I've done.
To get "real" cross-platform compilation, and not make everyone
else use the same IDE as you to work on a certain project, you
need to adapt to a Build System.

The most common build system in the past was Make. (& freinds.)
Originally developed years ago, I think it was a revolution. But now
I think its an outdated, unusable piece of software.

Waf: Please stand up:
Waf is a new build system, based on Scons, and its written in Python.
This means that to use Waf, you dont need to learn any "new"
scripting language, all you need to do, is learn a couple of "keywords"
that will use waf to build your program.

 There's a zip here, which has a "full C++ demo" of Gtkmm & Waf.
Inside the zip, there's a file called ReadMeToComplie.sh
If you open it with a text editor, you'll get a run through of how to use
Waf.  If you open a terminal in that location, and type:
./RunMeToCompile.sh
Its going to configure, build, run, and then clean up your program.
Ie: Prepare to build, Build, Run, and Remove the compiled program.

Hope that's a help to those looking for a simple tut, -Harry

Tut 8: Loading a Glade UserInterface file. (Gtk::Builder)

Hey guys,

As you may have noticed I've slowed a little on the tutorials,
mainly due to working on Luppp quite a bit. Here's a quick
one on how to load up a glade file though. Note that it does NOT
use libGlademm, rather Gtk::Builder, the newer version.

Gtk::Builder doesn't have any external dependencies outside of Gtkmm,
so its a good idea to switch to it. (there are also technical differences, but
they're outside the scope of this tutorial.)

Here we go: Code!
There's a .zip attached here, with well commented main.cpp inside, as well as a file called basic.ui, which is the Gtk::Builder User Interface.

I've decided its a bit cleaner to put my code in the .zips rather than here on
the blog, so expect a link to a zip in most tutorials!

Till next time, -Harry

Wednesday, January 6, 2010

The Luppp Project

Hey all,

I've started a project a good while back, called Luppp.
Its a live looper. Woohoo you think, another one. Yes.

Why?
(IMO) Some loopers:
- dont stimulate the creative musical side in an artist. (look ugly)
- have too much functionality. (buffer features, advanced menu's)

- only support MIDI or Audio, (multiple programs = messy desktop)
- "feel" too laggy.. (Ableton's UI?)

Why go to the bother of writing it yourself? Well somebody needs to,
and there are other efforts going on (Check Composite, Seq24).
Although Seq24 is a great MIDI looper, I always find the music I make using it is the "same old" song I do every time.

How is Luppp being built?
C++ baby. And Python. And OSC.
Currently the UI is totally built using Gtkmm & C++ , for fast widget drawing.
Python is used as the "prototype" for backends.
OSC is implemented in both the UI & the backend, to allow flexibility in "how" you use the program.

UI:
Gets loaded from a GtkBuilder XML file, signals get connected to appropriate parts of it, and its shown. The rest is handled by callback functions in C++.

Backends:
Currently written in Python, although I do intend to move these over to C++ once nessisary. They currently "do" the stuff you want Luppp to.

OSC:
The Luppp UI has an OSC server. This means you can send commands to Luppp, and it will respond as if you clicked somewhere. This is an amazing feature, as it allows ALL parameters inside Luppp to be controlled using external hardware if you want to. So "No-Computer-Nessisary" kinda applies.

When can we expect an Alpha release?   : Buzz off. Ill let you know.
Where can we get your source code?       : Download it here.
How can we informed when its released?: LinuxAudioAnnounce & a post here.

Cheerio, -Harry