FSharp.ChordParser
Parses and transposes a chord chart.
Install / Use
/learn @JordanMarr/FSharp.ChordParserREADME
FSharp.ChordParser
I created this for my dad to allow him to transpose chords and change lyrics to uppercase (and it was also a great opportunity for me to learn FParsec).
UI
UI created with Avalonia.FuncUI.

let cmp () = Component (fun ctx ->
let model, dispatch = ctx.useElmish (init, update)
Grid.create [
Grid.rowDefinitions "20, *"
Grid.columnDefinitions "*, 80, *"
Grid.margin 10
Grid.children [
// Row labels
TextBlock.create [
TextBlock.text "Input Chord Chart"
TextBlock.horizontalAlignment HorizontalAlignment.Center
Grid.column 0
]
TextBlock.create [
TextBlock.text "Output Chord Chart"
TextBlock.horizontalAlignment HorizontalAlignment.Center
Grid.column 2
]
// Input Chord Chart
TextBox.create [
TextBox.text model.InputChordChart
TextBox.onTextChanged (fun txt -> dispatch (SetInputChart txt))
Grid.column 0
Grid.row 1
]
Console
CLI created with FSharp.SystemCommandLine
To try it out against the sample txt file (Song.txt), just run the app; it will output "Song ChordParser.txt".

Related Skills
node-connect
338.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.4kCommit, push, and open a PR
