Showing posts with label audio. Show all posts
Showing posts with label audio. Show all posts

Saturday, January 14, 2012

Luppp : Source opened, but still pre-alpha!

Hi All!

With recent changes in the world of live looping software I've decided to open my private repo of Luppp.

The Luppp project has been one of my main occupations over the last couple of years, and I've tought myself C++ programming while working on it. Its a live looping instrument with similar features to the well known software Ableton Live, and more recently Bitwig studio. I feel the live workflow available with such programs is something the Linux Audio community would also benefit from, and hence it will be released under the GPL license, version 3.

Its current state is that most "basic" functionality is in place: Loading, playing back & recording of loops works, effects can be added to these audio streams, and later they are mixed. A basic config file is used to store information about loops, and hence Luppp can make more informed decisions how to use loops.

This is pre-alpha software, as not all features to fullfill alpha state are  implemented. On the other side, most features currently available are quite stable (on my local machine anyway :)

I would like to announce that I will continue to work on the Luppp project myself, but that I do also welcome input / testing / help from other developers. I am aware that there are some basic enough flaws in the program in its current state, however these are also the primary items on my TODO list.

Remember its pre-alpha, please keep that in mind :)
Git source repo: https://github.com/harryhaaren/Luppp
ZIP of master branch: https://github.com/harryhaaren/Luppp/zipball/master

If you're intrested in working on Luppp, have a feature request, have ideas, time, or want to build Luppp a website, feel free to get in contact!!
Cheers, -Harry

Mandatory screenshot (note your GTK theme will influence its looks, this is on the todo! ):

Friday, April 8, 2011

AVBin : Your favorite interface to Audio & Video

Hey,

Today I spent some time trying to work out the best way to load AV streams (ie: .avi, .vob, .mp3 etc) files into me program. So there are a nice 100 or so ways to do this with different libraries. But what's LGPL and usable? There's a good question.

After a good bit of googling around I found FFMpeg, LibAVCodec, LibAVFormat, LibAVFilter etc... all hard to link to, seperate fast-moving API's and breaking ABI's... nightmare.

In comes LibAVBin, a "thin wrapper" around all the above libraries, and abstracts away the details. Still getting the example to work is a little messy, so heres my own experience with it as of 09-04-11.

Grab the source here: http://code.google.com/p/avbin/

Then read the readme, and hit the SVN command to grab the latest FFMpeg.

./build.sh the library, there's a couple of errors in main, cast "malloc" to (void*), and fix whatever else is needed... I forget!

Then grab: http://code.google.com/p/avbin/source/browse/trunk/example/avbin_dump.c

That's the basic code for analysing a file's media content. From there it should be easy enough to see what's needed. The top of the header file has a nice "tutorial" on what functions need to be called in what order. I'm sure you'll work it out. Any questions, fire away!

Cheers, -Harry

Thursday, April 7, 2011

Exams looming, projects due

Hey,

It's the exam time of year again, so Luppp has been laid to rest for a while, only to (hopefully) be revived once may 12th comes... Many projects due, much work to be doing.

Some small adjustments have been made to the source in the last weeks, but no real new features were implemented, although there is a bit of "conceptual" work going on. A Fluidsynth Soundfont player should be quite easy to integrate, as well as a wavetable synthesiser..

Then some sequencing tools and songs can be created... :-) Well ok, there's a lot of "load/save" stuff still to go on, and some theoretical threading jumble to be sorted out before that day. Lucky there's no deadlines here!

Cheers, -Harry

Tuesday, March 22, 2011

Luppp: Slow Steady Progress

Hey,

Not that much new fancy graphics or anything to show off today. Just that the internal audio / midi code is getting a needed clean-up and haul-over. Also some hard-coded MIDI mappings are in place, currently thinking about how to best implement the binding of the controls...

Some more engine class placement needs to be done before its all sorted out and neat, that's the main work. Its things like transfering ownership of audio buffers to the ResourceHolder class as opposed to each buffer being owned by a seperate "player" class, and no FX or other classes being able to use that buffer.

There should be a noticable performance gain once the changes are in place, as it rips out lots of unneeded signals & slots, and replaces them with a pointerToObject - > doIt () call. Sweet.

Also I've been messing with it recently, here's a little clip of a drum beat (.wav loop) and 3 layers of guitar + some live soloing going on:
LupppGuitarJam by HarryHaaren

Patiently waiting to get MIDI looping in place... :-) -Harry

Sunday, January 16, 2011

Luppp : Update Funky

Hey,

Its a special day: 10,000+ lines.

Lots of work been done: UI got a real haul over, but under the bonnet there's a structure for automating data, and some initial multi-threading is going on to keep the RT thread doing what its supposed to!

The following shots nicely show off the funky new UI:



"Loopers", each one will* represent an audio loop, and provide some nice effects like reversing a part of the loop, swapping parts around & beat-grinding...







I've only 2 hands so automation is essential: take it away! Any parameter can be controlled via OSC! Working on an implementation of MIDI LEARN, to open access to every MIDI thing out there







Finally (& most funky): The mixer.

Needs a little overhaul to not look your tripping, but basic features are there, the big orange is the fader, red-green-blue is a 3 band eq, under it the black line shows PAN (all 0 in shot).




Will post back when that 60's look is gone, -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