GSoC 2022: Waveform Drawing Improvements Weekly Report

Hi, this is a post for my GSoC 2022 Project weekly report. If you have any feedback, please comment on the feedback thread. Any feedback is welcomed!


Closing this thread to limit this to the weekly reports. @xsmingerfan Feel free to open a second thread for feedback if you like.

1 Like

Weekly Report:
I am busy with my final now, for I can’t do much work these days.
What I have done:
Read the source code of VSE

  • BKE_sound_read_waveform of sound.c

  • AUD_readSound of AUD_special.cpp

  • draw_seq_waveform_overlay of sequencer_draw.c

What to do next week:

  1. Learn more about factory method and check whether ChannelMapper is related to a factory method
  2. Read the source code of draw_seq_waveform_overlay to understand the drawing algorithm

For more details, please see feedback thread

Weekly Report(June 20 - June 26):
I am so busy with my study this week that I have no time to implement my plan. I will certainly restart my job next week.

Weekly Report:
I read the source code of audaspace, BLI_thread and waveform drawing this week and implemented a demo in my local test branch. Though my demo has many bugs, it improves the speed of waveform drawing by 22%!
The mainly work I have done in the demo is parallelizing the loading. VSE used to load waveform one by one, that is, it will not load other sound until the current one have been loaded. In my demo, every sound has individual load thread, it will make full use of disk I/O and imporve the speed of waveform drawing.

This video may not be very clear as the original video is quite large so I can’t upload it.