Parsec is more than acceptable for this stage of the project; it's intuitive, and only rarely do we rely on tricky things like the try combinator.
As you think about what you want to be able to express in the language other than chords, though, the task of building correct parsers with combinators alone gets a bit out of hand. This is where alex and happy, descendants of the lex and yacc lexer and parser generators, come in.
Here's what would help a lot with that eventual transition: