Hello, I want to do a project where a keyframe timeline would be really helpful. The only addon that I’ve seen used quite a lot is ofxTimeline. At the same time, it is not maintained anymore and I’ve read in the forum about people having problems getting it working. The most recent and up-to-date version looks like this one.
Am I correct? what are you using normally to control a timeline?
As of a few months ago, I had a working version that worked with the master OF branch. Haven’t worked on it though since November, so i’m sure It would be minor or good. I also didn’t try using an audio or video track, but used a lot of keyframe tracks which worked well.
i forked “Duration” which is based on ofxTimeline and added a few extras like looping and labels, that can jump to other labels/marks. the main problem was that “Duration” could not be scrolled when adding a lot of tracks.
here it is (blackdada branch!)
Not sure this is helpful in your case, but another approach could be to use a daw and output midi or osc (e.g. via max4live). I mostly use Ableton Live which is very powerful, you can switch between session and arrangement view and you have midi mapping and these nice features.
@ryanww, did you get it working on Linux or Mac? The current OF version does not have Poco dependencies anymore, and ofxTween is failing. I see that in your version ofxTween is still a dependency, how did you solve that?
@edapx I made a reimplementation of ofxTween that uses arturo’s ofxEasings and it works with the current master. It is a one to one reimplementation of the original addon, so you just simply search for ofxTween and replace for ofxTween2.
If you still want to use the poco dependencies, add the ofxPoco addon, which is part of OF’s core addons.
I forgot the link
Thanks, I’ve added it to dependency. The audio example
example-audiowaveform is also not compiling. Maybe you already know a fix also for this? I’m on linux and the error is:
I’ve read here that AudioDecoder is not compatible with Linux https://github.com/leozimmerman/ofxAudioAnalyzer, is there a suggested way to go?
right, audiodecoder is osx and win only. I´m almost sure that you dont even need it on linux, as what audiodecoder provides is wav, aiff and mp3 decoding via the sistems provided frameworks. I think that OF provides support for these on linux. In any case, just remove that dependecy, probably by using
#ifdef. I can take a look at it later. best
I’m going through all the examples and getting them working
The problem that I’m facing now is getting the AudioTrack working, it looks like the method
timeline.addAudioTrack("Audio","4chan.wav"); works just on macOS and with TIMELINE_AUDIO_INCLUDED defined.
For now I’ve used ofMaxim to get the fft analysis, but the audio track it is not integrated in the timeline (see example example-audiowaveform)
I’m working on the timeline too. The audiotrack is not working on OSX, at least for me. I had to make several changes in order to make it work. The same for the video track.
Besides this changes, what are you changing/fixing/updating?
- trying to use as much as possible what’s integrated into OF that is being used with an addon in ofxTimeline. (like ofxTextInputField with ofxGui’s inputField, which works a lot better).
- getting rid of pointers as much as possible and when not replace by smart pointers (shared_ptr, etc)
- Remove the openAL sound player, and replace by ofxSoundObject’s player. (and integrate with other features of it as well) This should also fix the problem with ofxAudioDecoder on linux.
- Make use of mouse and key event propagation and priorities, so to remove and simplify ofxTimeline’s modal handling (which was James George’s way to overcome OF’s lack of event propagation and priorities at the time of ofxTimeline’s development).
- Make nicer and more interactive widgets (i.g., when you right click on a node in the curves it pops up a dialog for choosing the easing type, but it doesn’t change when hovering with the mouse).
- Make use of ofxGui’s elements as much as possible. (i.g., when you click on a keyframe of the LFO track you get a bunch of parameters you can set through a super basic gui).
- fix the zoomer handles, when these are at the edges only half of it is usable, and when this edges is the edge of the window it is super easy to grab the window and resize it instead of changing the zoom.
- Replace ofVecf for glm::vec
Things to take into account.
- Multi touch management, or at least make it easy to integrate in the future.
#ifdef the added stuff in order to keep it as light as possible by disabling features.
Things I want to add after finishing the previous.
- Midi track
- recording (parameters, audio, video, midi, osc, etc).
- ofNode track (there is a camera track, which could inherit from ofNode track, or template it).
- Gui for the different timeline options, like snapping.
- Drag and drop, for video or audio files, or XML that create or add to the proper kind track.
There are more ideas, but I think that this is a lot already.
I’ll try to push to github asap any advancements.
I have a less ambitious goal
I just wanted to make some visuals for an audio track, and I need to add some markers that act as entry point for certain visual effects. I’ve started to use ofxTimeline before to realize that the audioTrack does not work on linux.I will try out your fork and let you know. maybe it make sense if I fork your fork and open some PR to you? I’m not so experienced as you but maybe I can help you out moving from ofVec to glm, or I could help setting appveyor and travis, I know it is trivial but sometimes it brakes for stupid things.
I’ve been wanting to make all this fixes for a long time, as I’ve found my self needing all these features, along with getting it to work with the latest OF version.
I haven’t pushed anything yet. I’ll let you know once I do.
It might be a good idea if you PR me.
whoo ! @roymacdonald i’m a passionate lover of ofxTimeline, have you been able to waken it up with the latest OF (github master) ? Do you want beta-testers ?
yes I have it working with the current master. But not sure which commit is the correct one
I need to take a look and push the right stuff to github, although it is not much that needs to be changed in order to make it work.
I did a lot of modifications to it but at the end I decided to write the whole thing from scratch! I’ll just reuse bits and pieces of the original code.
I did this mostly to be able to deal in a flexible way with a lot of the newer stuff in OF as well as changing all pointers for smart pointers.
It has been way much more work than what I expected but it has been a good software design and abstraction exercise. I hope to be able to push something usable soon.
hey, any chance to try this branch?
not really. i made a lot of changes and left it there when I decided to remake it from scratch. So far it has been far much more work than I expected. I’ve I was trying to make work what I left from the original ofxTimeline but it wasn’t possible from the state that I left it and the prior commits that I tried.
I’ll post here if any improvements are made
I have found a very simple “replacement” just to trig timer events:
And this other addon is useful maybe to trig and enqueue tweens:
Needed this for v0.9.8 so got it working. I’m assuming this would work from 0.9+ < 0.10. Leaving here in case anyone needs it. Just follow the first few lines in the README and should work right away.
thanks @christopher_miles, did you tested in Widnows VS too?