morevnaproject-org / papagayo-ng

Papagayo is a lip-syncing program designed to help you line up phonemes (mouth shapes) with the actual recorded sound of actors speaking. Papagayo makes it easy to lip sync animated characters by making the process very simple - just type in the words being spoken (or copy/paste them from the animation's script), then drag the words on top of the sound's waveform until they line up with the proper sounds.
236 stars 51 forks source link

Batched Drawing #27

Closed steveway closed 7 years ago

steveway commented 7 years ago

Since there were had been some updates to papagayo-ng and I had this done since March, I wanted to get the ball rolling now. This adds a new copy of the WaveformView called WaveformViewFast which uses batched drawing operations when possible to speed up the drawing by a factor of about 2.5 here. The new fixes for dragging need to be added to this and it needs a bit of a cleanup and some more improvements. There is possibly a smart way to make a big Waveform Polygon from the list of rects which could be even faster to draw. Filling the lists with rects does take almost no discernible time, most of the time is still spend drawing these. I'll try working more often on papagayo-ng, I was a bit burnt out and had to focus my concentration on work and stuff.

Also, to test this set batched_drawing in LipSyncFrame to True instead of False.

steveway commented 7 years ago

Well, we can scrap the idea of using a Polygon to improve speed. I created a simple version and it's about 10 times slower than batch drawing rects and filling the lines between them. https://github.com/steveway/papagayo-ng/commit/20658e6f01c3530ed3981c2220bd267d13e4d22b

morevnaproject commented 7 years ago

@blackwarthog Can you please take on merging this to master? + add your fixes for dragging phonemes (which was introduced for 1.4.1)

blackwarthog commented 7 years ago

Merged manually Thanks a lot