ofxTimeline: first demo

hey OF,

I just uploaded a first demo of ofxTimeline – a way to visually interact with values over time.

check it out:

Also the code is available here:

Any suggestions welcome! Happy animating!

Props to the work of Arturo and Elliot Woods who both built addon’s that ofxTimeline uses.

you’ll need them in your addons/ along side ofxTimeline
ofxTween ( https://github.com/arturoc/ofxTween )
ofxRange ( https://github.com/Flightphase/ofxRange )
ofxTextInputField ( https://github.com/Flightphase/ofxTextInputField )

this is so good! and so missed!!
the demo app is great too! luv it! * )

can;t wait to use it!



Hey james, looks great and really usable!
One suggestion off the top of my head: In the “squashed” view of parameters, add some indicator for where keyframes are, and possibly their type (so little squares, diamonds, whatever). This way it’s easy to get orientation in the timeline, even when many parameters are collapsed.
Also: snapping to other keyframes would be useful.

Love it! Reminds me of the old AfterEffects timeline, or what i remember of it anyways. Really nice work.

this is fantastic! thank you!

my suggestions:

  • double clicking on a keyframe lets you edit the exact time or slider value
  • add ‘step’ interpolation (jump to next value)
  • option drag only allows to to alter the keyframe vertically (slider value)
  • shift drag only only allows to alter the keyframe horizontally (time value)
  • option to use time based on minutes and seconds instead of of frames

@buchi: good idea, that is pretty easy to add

@vgbnd: these suggestions are all great! I am having trouble getting the modifier keys, i think we need to look at pulling this pull request into the core:

Then we’ll be able to do all sorts of modifier key magic

looks really great! Nice job. :slight_smile:

I had requested a timeline feature some time ago! :smiley:
I will look into it!
thanks for the hard work!

This is fantastic been using for a few days and all i can say is wow! so good.

Would be cool if you could have a way of randomly having the timeline insert keyframes itself with random curves etc. Not sure how hard that would be to do but would yield interesting results.

Also if you could select points inside the timeline to loop around so it would be easier to work on just a section of the timeline before moving on. Would be super helpful.

Hey everyone,

So excited to hear that many of you are using the timeline!

I have tried to capture all the requests as issues on github:

I encourage everyone who is interested in the development of the project to post issues here, and even try to take on a few if you have time.

I’ve also added a few things in the past days:
* new element called a switcher which gives control of an on/off (boolean) over time.
* support for time based mode
* support for multi-select keyframes

Again, happy animating and hope the tool is helping out!

![](http://forum.openframeworks.cc/uploads/default/2077/Screen shot 2011-12-26 at 12.23.05 AM.png)

hi Jim, I’m trying to integrate your great timeline code into my little projection-mapping tool.
Main issue i’m having is related to fact that when I want to set a trigger name in the editable text tag of the trigger, keyboard events are also caught by underlying app and obviously trigger unwanted events they are bound to.
I’m totally newbie with event managing in OF, is there a way to prevent this kind of problem, apart from not using keys already assigned to trigger some action in my code? (that would be quite difficult, as I have much keyboard interaction now).
The easiest solution I had thought of was checking if timeline interface was shown or not and filter out key action when timeline is displayed, but I’m using a key to toggle-show of timeline as well, and that key at least should stay ‘active’, and therefore unusable in timeline triggers names. any tip?

hey there,

there needs to be a way around this I agree. something like timeline.getKeyboardActive() that tells you not to listen to keys in testApp

for the time being i have adopted the convention of just using upper cases in my trigger names, and lower cases for my hotkeys, that way they don’t overlap.

will add this as an issue to github!

thanks for your kind answer. I’ve adopted a similar workaround, using F10 for timeline visibility toggle and filtering out hotkeys actions if timeline is visible. it works well. thanks for your work on ofxTimeline, it’s amazing!

Hi, amazing looking addon. I’m trying to get this to work under linux 64bit. I had to copy the sndfile.h from the macos directory to the linux one, then make a symlink linux64->linux. Now I’m having trouble with the ofOpenALSoundPlayer,
should I be replacing the stock oF one with the one included with ofxTimeline or is there some other way to get it to override?

I’ve patched ofOpenAlSoundPlayer, adding 2 or 3 methods needed by ofxTimeline, it was quite simple as this methods just return some existing parameters.
this is the diff with the changes I’ve made, maybe there a better way

diff --git a/libs/openFrameworks/sound/ofOpenALSoundPlayer.cpp b/libs/openFrameworks/sound/ofOpenALSoundPlayer.cpp  
index a40aa7b..116ced7 100644  
--- a/libs/openFrameworks/sound/ofOpenALSoundPlayer.cpp  
+++ b/libs/openFrameworks/sound/ofOpenALSoundPlayer.cpp  
@@ -566,6 +566,22 @@ float ofOpenALSoundPlayer::getPan(){  
+float ofOpenALSoundPlayer::getDuration(){  
+	return duration;  
+int ofOpenALSoundPlayer::getNumChannels(){  
+	return channels;  
+vector<short> ofOpenALSoundPlayer::getBuffer(){  
+    return buffer;  
 void ofOpenALSoundPlayer::setVolume(float vol){  
 	volume = vol;  
 	if(sources.empty()) return;  
diff --git a/libs/openFrameworks/sound/ofOpenALSoundPlayer.h b/libs/openFrameworks/sound/ofOpenALSoundPlayer.h  
index 3c17f56..c5de96b 100644  
--- a/libs/openFrameworks/sound/ofOpenALSoundPlayer.h  
+++ b/libs/openFrameworks/sound/ofOpenALSoundPlayer.h  
@@ -68,6 +68,9 @@ class ofOpenALSoundPlayer : public ofBaseSoundPlayer, public ofThread {  
 		float getSpeed();  
 		float getPan();  
 		bool getIsPaused();  
+		float getDuration();  
+		int getNumChannels();  
+		vector<short> getBuffer();  
 		static void initialize();  
 		static void close();  

oops, sorry, I hadn’t noticed that needed changes to OF where included in ofxTimeline


i took the openAL sound player from iPhone and added the functions i needed for the audio waveform viewer to work, so it’s a bit incongruent with OF style but i didn’t really see another option.

Perhaps a new sound player, or we merge the iOS specific sound player as an option on desktop (which seems reasonable).

I would love any changes that get this working on linux to be submitted as a pull request! So glad you’re hacking at it!

My changes for linux seem kind of hacky, I just copied the sndfile.h from macos to the linux directory which got it to compile, but i’m not sure if it is the right version of that file or not.


Its possible to use a ofxTLVideoPlayer and triggers in the same timeline???

Im trying to do that but i get no callback from the triggers