the main new feature of MusicTool1.3.2 is the progbook. It's purpose is to store small chord progressions that are concatenated to
generate a longer chord / triad prog with the "prog coherand" and "triad coherand" functions.
It's current implementation is absolutely awful. Like really really bad.
It's just a dynamic array when it should be a table of length 12 (this table being a static array)
where each index corresponds to the length of the progs stored at said index
(table[0] contains progs of length 1 , table[1] of length 2,...)
the structures stored at each index of this big table would be smaller tables (dynamic arrays or linked lists)
containing every prog that share the same corresponding scale (ie: [I, IV, V] and [IV, V , I]).
This implementation would make the generation of random progs using the progbook much more efficient /
straightforward.
I didn't fix this because I'm kinda fed up with MusicTool at the moment and I wanted to work on other projects.
However , when I go back to it my priority for 1.3.3 will be to fix this.
While being badly implemented the progbook still works properly and I ran tests
with valgrind to check that everything worked fine.
As previously mentionned the main features of MusicTool 1.3.2 are the progbook structure and
the prog/triad coherand functions.
This version also comes with some fixes with Windows compatibility and a brand new Documentation
file explaining what every internal type/ structure is.