Whether two voices move into consecutive perfect intervals of the same kind (fifth-to-fifth, octave-to-octave, unison-to-unison).
Both true parallels (similar motion) and anti-parallels — the same perfect class reached by contrary motion, e.g. octave to octave with the voices moving in opposite directions — are flagged, as both are forbidden in strict two-voice counterpoint. The rule requires that both voices actually move: oblique motion (either voice stationary) and the no-change case (identical pitches) are excluded.
A fifth expanding to a twelfth counts (same perfect class); a fifth moving to an octave does not (different perfect kinds — the direct/hidden case owned by createsHiddenParallelPerfect).
The perfect classes are what they sound like under any spelling, so spelled notes and MIDI integers give the same answer here.
Whether two voices move into consecutive perfect intervals of the same kind (fifth-to-fifth, octave-to-octave, unison-to-unison).
Both true parallels (similar motion) and anti-parallels — the same perfect class reached by contrary motion, e.g. octave to octave with the voices moving in opposite directions — are flagged, as both are forbidden in strict two-voice counterpoint. The rule requires that both voices actually move: oblique motion (either voice stationary) and the no-change case (identical pitches) are excluded.
A fifth expanding to a twelfth counts (same perfect class); a fifth moving to an octave does not (different perfect kinds — the direct/hidden case owned by createsHiddenParallelPerfect).
The perfect classes are what they sound like under any spelling, so spelled notes and MIDI integers give the same answer here.