import re
import functools


def pitch_series(volpiano):
    """
    Series of pitches, disregarding neume/syllable/word boundaries and note repetitions.
    """
    notes = list(filter(lambda x: x != '', re.split(r'(?<!i)-*', re.sub(r'^1---', '', volpiano))))

    non_repeating = functools.reduce(
        lambda memo, x: memo + [x] if len(memo) == 0 or x != memo[-1] else memo,
        notes,
        []
    )

    return '-'.join(non_repeating)