Myopia (curse of developers)

TLDR : devs should really get a 3rd party to do serious usability testing of software. This is a journey in dev humility.

Last night at 11:15pm, my 10yo son figures out that he needs to present a video to school. With pride, Dad (that’s me) says “perfect job for the video editor I’m developing for Haiku”.

Problem #1 was importing videos to Haiku. Round trip via another OS.

Problem #2 was that all my usability testing was with obviously different videos. For this project, several dozen clips all looked the same. Medo has no “quick preview” of source, just a thumbnail of the first non-black frame (and with this project, they were all similar). Dragging clips to the timeline in order to do previews gets old very fast (so this becomes a priority new feature). Also, usability would allow a user to attach a note to source media as well (I have notes for timeline track, but not in media source view - another TODO).

Problem #3 was intermittent crashing in ffmpeg decoder when the last frame is seeked/read (well intermittent until you find a file which always reproduces the problem). Dealing with my own bugs is time consuming, but dealing with external bugs is frustrating. Best I could do for now is make sure I dont ask for last frame +1 (sadly BMediaTrack::ReadFrame() will not report last frame error, the ffmpeg decoder will just crash). Urgent fix planned for weekend. Note - VLC under other OS also crashes on the same video :slight_smile: Edit: this has now been fixed in GitHub and resolves the crash, however I wont tag a new release until I resolve a few other major usability issues I discovered last night.

Problem #4 was that there is no rapid method of zooming in / out of the timeline at the mouse poisition. Reaching down to the zoom slider gets tiring fast. Next feature will allow a key combo to zoom at mouse position. Currently the minus/plus key (as well as the CTRL-mouse wheel) zoom the preview window, so I need to develop another discoverable way to zoom the timeline at mouse position.

Problem #5 was lack of auto saving. With a crashing ffmpeg decoder, hitting Save every minute gets frustrating, as does dismissing the “are you sure to overwrite” prompt.

Problem #6 was importing some backgrounds from the web to the project. Drag/drop in Medo only works for files, not Web+ clipboard. Funny enough Haiku handled the downloaded WebP image like a champ (unlike OSX in the next room which was doing a parallel iMovie editing session). BTW - iMovie also crashed when exporting a video :slight_smile:

Problem #7 was easily capturing a sound clip from a youtube video. Kids today expecting something as easy as that to actually work. Round trip via youtube-dl and a second video editing project to strip the audio clip to disk. (Note - wouldn’t it be great if a video editor can use a http link as source media)

Problem #8 was uploading final video back to iPad, but that is a problem for everyone regardless of OS (especially if iTunes association is on another device). Holding the iPad in front of the monitor and recording the play-back of the end video was a crude solution but finished the project at 2am. My son had fallen asleep a couple of hours earlier.

Software usability testing is ever so humbling … It will take a couple of months to add these new usability features.


Nice writeup!
My favorite part was your son went to sleep and you finished his project for him hah! :slight_smile:


Really good writing :).

Problem #4 is infakt the one which is keeping me from using Medo. But i would sugget that zooming doesnt happens at the mouse position, it should be at the “Videocursor” because this way you can position the “videocursor” where you want e.g. cut two videos or bring video and audio in sync an then zoom to his place… while if you use Mouse position you have to “reposition” everytime the mouse. CTR + Mousewheel to zoom at the videocursor position is normally used in this case also in other software live olive Edtor or openshot and so one.


I find that children are good at testing all sorts of things - including one’s patience.

Anyway, sounds as though things are at an advanced stage. Kudos to you.


Thanks for sharing, really nice lessons!

Finding out IRL :slight_smile: Kudos to you on sticking with it :+1:

OK, I’ve addressed most of these issues in a new release which is undergoing some internal testing before I bump the version (so stay tuned for an updated package by the end of the week).

I now have added a feature to playback any item in the source media list for quick previews (video + sound). The user can also attach custom labels to each media source item.

On the timeline, I’ve added some visual clues to whether the clip is fully visible or the edge is outside the viewport. Also trimmed clips have another indicator to let the user know that the clip edge is trimmed from the source media.

The Z key will while depressed do a snap zoom toggle, so adjusting clip position should be a lot easier. This uncovered an interesting Haiku message filtering issue, where while a key is down, B_MOUSE_DOWN is not delivered to target view, however B_MOUSE_MOVED is still delivered so I’ve got a temporary workaround until I figure out a better way to trap mouse messages while a key is down.

Plus dozens of bug fixes (some crashing, some not). Stay tuned for a new release by the end of the week.



That seems worth creating a ticket for. I looked in Trac and didn’t find a matching issue though there are a few similar ones, though most are closed. It would be nice if you could reproduce it in a small test app.

Very nice to know, all your work there. I had some time to test the app and it is very nice to use even not polished. The preferences on the right side are too big sometimes and take a lot of space there. Anyway it is a beta and very good already.
Is there a easy way to rotate a video?

Hi Bruno. There are 2 ways, simple and advanced.

The easy way (effects/spatial/rotate) allows 90/180/270 + mirror rotations. This is the simplest way and what most users will want.


For fancy effects with arbitrary rotations and animations, use the Effects/Spatial/Transform effect (Rotation Z is probably what you’re after).


Just drag drop the effect to the timeline.


to many windows, seriously, make it a full screen app.

No, it’s fine as is. It just needs to use more native Haiku widgets instead of these custom ugly buttons and get rid of unused empty spaces.

1 Like

First the (working) functionality, then the design and the fine-tuning.


I’m thinking of multi screen workflow where MDI works best, where primary timeline window is maximised in one screen, and all auxillary dialogs on a second screen, and even a fullscreen preview on a 3rd. With MDI, you set the layout which works best for you.

For SDI fans (and single monitor users), there is a also set of layout drop down menu options which simulate SDI layout based on workflow. If you use these options, you never have to manually adjust layout.

I think I implemented a solution which works for both worlds. PS, I never liked the GIMP transition to SDI, the older MDI GIMP was so much better for serious users.


if haiku has multihrad support, obviously a mdi would make sense, many DAW programs allow moving controls outside of the main screen