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! ):
A blog dedicated to Linux Audio. Some Programming tutorials will be posted, some howTo articles for using certain features of a program, or just my own thoughts/options on any topic.
Showing posts with label audio. Show all posts
Showing posts with label audio. Show all posts
Saturday, January 14, 2012
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
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
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
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
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
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
Subscribe to:
Posts (Atom)