code cleanup: use collect to assemble lists of pitches
code cleanup: use QT layout classes