Why encode pitch as one-hot encoding instead of ordinal encoder?
Because average of encoded pitches is not the encoded class.

Look at this example:

LabelEncoder can turn [dog,cat,dog,mouse,cat] into [1,2,1,3,2], but then the imposed ordinality means that the average of dog and mouse is cat. Still there are algorithms like decision trees and random forests that can work with categorical variables just fine and LabelEncoder can be used to store values using less disk space.