QuikDaw code
Comments on QuikDaw code and performance
QuikDaw was created while taking a long journey toward learning how to code with audio in .NET, using Winforms originally and then switching to WPF for a more attractive and intuitive UI. Since a lot of learning on-the-fly was involved, a lot of changes were made but loads of optimizations remain to be implemented, and plenty of aspects of poor programming design remain to be fixed.
One notable example is that zooming of the main tracks, and sometimes of the piano roll, causes intermittent audio glitches or crackles since NAudio also operates on the UI thread. There's room for optimization because right now a lot of unnecessary recalculating of clip sizes and locations is being done, making interference with audio even greater with a greater number of clips/tracks. I think the main grid (the line grid for the measures or time sections) is pretty optimal because it is being tiled instead of fully drawn, but things like waveforms and midi note graphics have to be handled separately if they are to be zoomed in a high quality manner.
...More comments to come...