Waveform drawing latency
So I took a short screencap of my waveform rendering problems.
As you can see, once I zoom in past a certain point, waveforms disappear, then only reappear when I am zoomed in as far as possible. Then when I zoom back out, they disappear again, and then reappear (only partially, and not on both tracks) once I've zoomed pretty far out again.
The computer is fairly powerful: Xeon e5-2690, 32GB ram, but the graphics card is not (Quadro 600).
The source files are a 50fps 4k gopro (h264/aac 48khz, 60MBps) and a 1080p slr at 25fps (h264/aac 48khz, 40MBps). But this happens just the same with much lower bitrate files, including just 16bit wav files.
How can I troubleshoot this?
I have tried increasing and decreasing cache size but it seems to make no difference. As you can see when I mouse over my system monitor, I have plenty of free cpu and memory. I am running avlinux, so the performance governor is selected by default. Thanks.
Your demo sure does show some problem that occurs in Cin on your computer with your settings. But I need to be able to reproduce it here in order for GG to figure out what is going wrong and hopefully find a way to fix it or prevent it from happening. So I will download some files of type: 50fps 4k gopro (h264/aac 48khz, 60MBps) and see if I can reproduce it here. It may take me some time and if I can not reproduce it with the files here, I may need to get one from you (although it also happens with 16bit wav files that I will try first).
OK, I have tested using the following file and I can get a non-redraw on zoom when the index is set too low:
Then when I change Settings->Preferences, Interface tab, Size of Index file to 16MB (16777216) I no longer have a problem. Please try that and after you change the Index file size, be sure to Rebuild Index in the Resources window by right mouse clicking on your media file and running the Rebuild Index option. Then reload the media and do your zoom. 4K is the initial default so might be OK too but the bigger the audio, the bigger to make the index.
I fooled around with it and gradually made the index bigger, and it keeps improving, but even at current HUGE settings (95000000) it craps out a few zoom steps before maximum. Maximum zoom always works and it seems like as I increase index size, I can get closer and closer before the waveforms disappear.
Currently with my clickey mouse wheel, I can zoom in to 3-4 clicks out from max zoom before the waveform disappears, then it vanishes and reappears at maximum zoom. When I zoom out, same thing: wave form disappears for 3-4 clicks then reappears. I still have problems with waveforms at some zoom levels only appearing in one of two tracks onscreen. Nonetheless, it's pretty usable at this stage but still not optimal. Also, using the huge index files makes timeline scrolling laggy and slow when I'm zoomed out, but I need to study this more.
I suggest listing the units you're using in the preferences dialog, and maybe add a suggested range (perhaps via tooltip?). I had no idea it was in bytes. Is there a reason for not making it in kb or mb? Bytes doesn't seem very human-friendly to me.
"still problems with waveforms at some zoom levels only appearing in one of two tracks" - probably doing the draw just can not keep up on such large amount of audio; most likely you will see it when a redraw occurs (which you can make happen). I can not reliably create this problem which makes it so that I have no suggestions for the programmer to change anything at this time. Just as a test, I also tried using OpenGL or X11 as the video driver but saw no difference, but I have a lot of memory on my laptop.
"huge index files makes timeline scrolling laggy and slow when I'm zoomed out" - unfortunately this is true so you may want to adjust this when working with smaller files.
"suggest listing the units you're using in the preferences dialog" - OK will do that
"maybe add a suggested range" - the default is 4K in the original configuration and that is actually fairly reasonable for the usual hobbyist, but I will update my local version of the manual to expound on that a little.
"Is there a reason for not making it in kb or mb?" - no reason, just past history when computers did not have the memory they do now, but GG is going to change it to KB for the next monthly release.
P.S. Thanks for taking the time to report these types of issues as otherwise we simply are unaware of them. That is all for now as next I am going to test Render Farm as non-root and the RenderMux stuff.
Thanks Phyl, you're being extremely helpful. Unfortunately I have no technical knowledge which would allow me to help, and I know my main activity is complaining, but I'm glad if it's of some use. This is a great project.
'Just as a test, I also tried using OpenGL or X11 as the video driver but saw no difference, but I have a lot of memory on my laptop.'
-My workstation has 32GB and it never gets much over half full, even when using the render farm, browsing the internet and running a DAW in realtime mode, so if it's a memory issue I'm wondering if there is some setting I can alter to allow the program to use more of it? It's a totally different program of course, but on my DAWs I never have redraw problems at any zoom level. I'm not sure if methodology for waveform drawing is somewhat standardized or written ad hoc for each application, but Ardour is open source, so I'm wondering if it would be complex to integrate some of their code? It's probably technically unfeasible and therefore a ridiculous question but I figured I'd at least ask. 🙂
On a more general note, if you're interested, I'd like to have a powwow in some context about the interface - I have a number of ideas which I think might make it a lot more streamlined, comfortable and safe to use. I'm guessing some of them might be quite simple to implement, but I don't know if you're interested in this conversation, or, if so, where we should have it.