Showing posts with label Luppp. Show all posts
Showing posts with label Luppp. Show all posts

Monday, November 19, 2012

Luppp: Status as of Nov '12?

Hey everybody,

I'm writing to let you all know that the Luppp project is not dead. I've not posted here about Luppp since May, and also haven't pushed code to the repo at github for 6 months. So what is the status?

Luppp is "taking the back seat" for a while. I mean that real-life has currently taken over, and with my final year of college and projects on, I don't see myself spending a lot of time on Luppp before the next LAC (that's the middle of May).

Don't worry, the reason for not pushing code recently is only partly due to time, the other reason is that during the summer I started doing (another...) total re-write. This time I'm confident that the code is a lot more maintainable. I hope :)

Till next, -Harry

Wednesday, May 2, 2012

Luppp milestone: Timestretch!

Although its been a relatively quite period for development (due to lots of deadlines) today one of Luppp's long term goals has been reached: on-the-fly time stretching per track.

For the non-techie: This means that you can play a melody loop, and slow it down or speed it up, and the audio will remain in the same key! (No turntable RPM effect? Nope :)

Mandatory examples:

Although I'd call the quality "passable" is obviously not fantastic but there's some parameters in the algorithm that are available to tweak, so I hope to be able to improve it a bit a least :)

So when is a beta release?? Don't hold your breath, sorry. There's still some work to be done before Luppp will be ready for prime-time, but until then feel free to test it if you're interested!

Will keep you posted, -Harry

Sunday, April 15, 2012

LAC performance

Hey All,

With the LAC on at the moment, its a prime time to do some extra development on features that need some finishing before being fully useful. That has been going on, and now the AutoMove feature allows the changing of the length of the fade. Currently the mapping to change the length is set to right click, that needs to be changed as we can only cycle up in length. Current options for beat lengths are 2, 4, 8, 16, and 32.

Also fixed was the "Master Beat Indicator", (the moving widget here). It now just syncs to JACK tempo, and will display which of the beats between 1 and 4 we're on. Since the AutoMove function is triggered on a downbeat (every 4th beat) the tempo indicator shows when the AutoMove fade will come into effect.

The current git head (master branch) is the exact version of Luppp that I used for the performance at the LAC Sound Night yesterday. Many thanks to Luigi Verona for his droning series which was the basis for the piece.

Greetings from the LAC, -Harry

Wednesday, April 11, 2012

Luppp : Scopes and Sends

New features have arrived in the devel branch:
-Interaction with the sends & return widgets
-Scope that displays the master output_W channel

Various code improvements have also been pushed along the way, be it that the headphones volume dial now goes up when you move up, or that that post-fade send now adhere's to the Mute status of the track.

Its another small step along the way! Mandatory screeny:

Wednesday, March 21, 2012

Luppp: New Feature! AutoMove

Over the last days a new feature was designed & implemented: AutoMove.

The idea is simple; in a live situation you just don't have time to write automation lines, not even simple ones! You also don't have a hand free to turn up your reverb during the next 16 bars, so what do you do? AutoMove it!

The following GIF animation of screenshots gives it all away:

There are preset automation lines, and widgets that are active get scaled by the AutoMove's value. You press one button, and it does the rest. Now we're making music :)

Available in the master branch as of right now!

Friday, March 16, 2012

Luppp: Alpha 1


Alpha 1 status:
100%  -  Closed



Today the last bug on the Alpha1 milestone has been closed, hence also the alpha1 release of Luppp 2.0. In a way this is a big occasion, its the first official release!

Alpha1 in action, with various effects and clips!


On the other hand, there's still a bucket load of work to be done before Luppp will be comfortable to use without various hardware controllers. I'm aware that there's lots of half-finished, half broken as well as broken stuff! Hey its still alpha!

Current milestone: Alpha2
There's already a list of bugs / feature requests up! There's also many GUI issues that are known and NOT there, but I'd prefer fix them than waste time posting a bug report.

Welcoming (adventurous alpha) testers, any issues will be dealt with as promptly as possible! Please file bug reports here: https://github.com/harryhaaren/Luppp/issues/new

Wednesday, March 7, 2012

Luppp: New Effects interface

After a "push" quiet period, I've just pushed up a couple of branches changes:
-Luppp's GUI has had a bit of work
-Effect control from the APC40 has been revamped
-Effects sends have been implemented

-The GUI now shows the effects under the track, in a small widget: reasons? Now you can always see the state of all your effects, not just the ones on your currently selected track. Better for live situations!

-The APC40 has 8 buttons under the Device controls, they now each map to Effect on/off. They're labelled for a different purpose, but I find this use quite intuitive.

-Post fader sends are implemented, including widget representing the state. The GUI widget doesn't work yet (ie won't change the value) but it does update upon a controller change.

I've pushed the changes to devel, but also the master branch, AFAIK its stable.


Screeny:



Tuesday, January 17, 2012

Luppp: Settling into Github

In the last couple of days the Luppp repo has made a new home on github, now complete with issue tracker & wiki.

The "manual" for Luppp will be constructed slowly in the Wiki part of github:
https://github.com/harryhaaren/Luppp/wiki

It currently contains some info on how to download & build:
http://wiki.github.com/harryhaaren/Luppp/downloading-building-installing

as well as a basic overview of what does what in the GUI:
https://github.com/harryhaaren/Luppp/wiki/Interface-Overview




Also new: A master "progress" widget that shows time into your 4 bars, or time till the next "4th queue" process, ie: Event quantization.

Read "When it goes from red to green, your Scene will change."

Fancy GUI suggestions welcomed, I don't really know how to spice this one up yet...



Hopefully in the next couple of days I can update it some more, and fix a couple of critical bugs that really hinder the use of scenes. More news soon!

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! ):

Thursday, June 23, 2011

Luppp: Midi Mapping

Hi,

Today was a productive day, Luppp can now take a MIDI CC, and map it to almost parameter you'd care to mention. Currently if an unknown MIDI CC comes in, it auto-maps that to the last used parameter, but I want to create a nice interface that allows one to change the mappings manually, and of course create presets & such.

No screenshot, its functionality that you'll find in the engine! Perhaps a little demo clip at one point.. who knows. Later!

Tuesday, June 7, 2011

Luppp: 20,000 loc Lv2 support & a CSound display

Hey hey,

20,000 lines of code, some LV2 support, and the beginnings of a CSound haul-over.
For now a quick post, with the mandatory screenshots, later some more info on how its intended to support some of the (fancy) LV2 features like the instance access, and some others :)






Embedding LV2 gui's into the Luppp ui. Pop out windows will be supported too at some point :)
And a CSound text editor based on Gtk Source View, a csound.lang file must be created to syntax highlight all the opcodes & that


Till next! -Harry

Tuesday, May 24, 2011

Luppp: Stage 4

Sup!

Today Luppp got a SoundStretch class, its based on the LGPL library SoundTouch, and provides independant time or pitch scaling. That's pretty awesome :) Bind yer MIDI controller, and you can control the pitch of your loop... for drums its great to get some extra Oomp outta the kick.

The BPMDetect interface from SoundTouch isn't being employed yet, but it won't be long. Also the loading of sample files will be transfered from Looper & Sampler to FileLoader. In there will be the BPM detector, and automatic scaling of BPM of loops to the current BPM, then pushing it into the ResourceHolder buffer.

Also news: wierd ported LADSPA plugins won't crash the system anymore, and the stereo plugins still work on the mono channels, just using the Left ins & outs. A LADSPA GUI has been worked on, just a small dial that displays the value of a controller, but it needs a good rework before its useable.




A LoadSaveBase class is in order, that will be the parent of any class instance that wants to save / load data between sessions. (That's just about every instance... :) All in the pipe!
Till next, -Harry

Edit: Almost forgot, it also sends MIDI CLOCK now, so you can sync your LFO's on external synths to JACK transport :D

Wednesday, May 11, 2011

Luppp: Stage 3

Hey All,

Got some great news... there was a nasty stupid bug in the GUI redraw of the waveforms, (which I mistakenly though was due to threading) but it turns out the code was entering a loop with an increment that evaluated to zero... But its fixed now! :)

So with the GUI up and running one can see how far along the loops are, and what "amount" of the loop is going to be played.. ie "zooming" in on the part of the loop that's active.

Also the engine has been getting some attention during the Linux Audio Conference, held in Maynooth this year! This means that initial CSound support exists, so effects & instruments can be coded up in CSound to be played live as if its an internal synth / effects box. Lots of new possibilites now, and due to the csound .csd files being text based, they will be real easy to share & merge, allowing all users to contribue & share presets for effects with eachother.. :)

Mandatory screenshot:

Till next! -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, February 27, 2011

Luppp: Update Ambisonic... :-)

Hey,

Over the last week I've been implementing ambisonic support in Luppp. It didn't add up to too much work, only that JACK ports had to be named differently, the signal path adjusted somewhat (1 input, 3 outputs rather than 2 ins ,2 outs.

At the moment 2D horizontal B-Format ambisonic is supported, but implementing the 3D dimension of the first order wouldn't be too much work.. (add another channel to the process() functions.. )



The pan widget got a little haul over just to support 2D's rather than the one...


Till next, -Harry

Sunday, February 20, 2011

Luppp: Update Automation

Sup,

Productivity of today: Automation. Although the widget was already done, and the hard code in place, making it actually effect the parameters in the engine was a little tricky. It now communicates with itself internally (rather than the CPU expensive OSC beforehand). I've had lots of automation tracks running concurrently and there's no problems with performance that I can see. :-)



Here we have a couple of lines, unfortunaly I didn't record the output of Luppp while it was playing the lines, would have been nice...









Also created in the last weeks, a primitive MIDI editor... Clicky in notes, the engine plays them back (sample accurate... :-)

Currently not much can be done bar insert & clear notes. But with a bit of time that will all change...




Also new: Rather than  1 - 2 - 3 - 4 on the screen, I've opted for 4 circles to appear, each a different colour for each bar. Its as easy to follow and a bit more cheerful!

Bottom left of the screenshots there's a "Stop" & "Play" button, which make jack transport start / stop. Useful to not have to switch to QJackCtl everytime.

Till next, -Harry

Thursday, February 3, 2011

Luppp: Update Waveform

Hey,

Today a "ResourceHolder" was implemented, it takes all buffers / MIDI / automation data, and stores it. Nothing else. But it means there's a centralized place from which both the GUI & the engine can access the data, and allows much easier plotting of data on screen... See attached:


So there's 3 piano wavs on the top 3 loopers, some drum & bass drums on strip 3. Breaks & noises on 4, leaves some synths on 5  :-)



All in all... happy that this got done, no clean solution came to mind since the last update, so its had been while in the pipeline.
Till next, -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 5, 2011

Luppp: Getting there

Hey all,

Serious progress going on! Audio input can be recorded (in time with the timebase) played back at a certain bpm (in sync with other files at the same bpm) effects can be applied to the signal stream (LADSPA only for now), and the resulting signals can be mixed with logarithmic faders, and finally the peak meters show you your levels ;-)


As you can see: there's a shiny "Add Track" button at the top of the screen, dynamically adds tracks to infinity...

The number in the left of the "track" widgets is its OSC ID, you'll need it to do things to that track!

The smaller numbers show how many beats there are in the loaded sample, and how many have elapsed.

The record button is there so you can enable.. duh


The orange faders give volume control (with a log scale of x^3, feels nice with a MIDI controller ;-)  Then the master output levels, and then the HUGE number to tell you what beat your on!

Next features: PFL on each mixer track, master faders, PFL faders, busses (sends), GUI interface to LADSPA effects (engine done :-)

Also needed: Some threading to allow RT thread not have to load / write audio samples, send large OSC messages etc. Working on it!

Cheers, till next! -Harry