Skip to content

A ChordPro file parser and editor for Linux and macOS. Show the song with the chords for guitar, guitalele or ukulele.

License

Notifications You must be signed in to change notification settings

Desbeers/Chord-Provider

Repository files navigation

Chord Provider

A ChordPro viewer and editor for Linux and macOS

Icon

ChordPro

ChordPro is an open standard text format and its has an official reference implementation.

While I hope you like Chord Provider, as musician or programmer, it is just my hobby project.

Chord Provider

Chord Provider is written in Swift.

Chord Provider on macOS

Chord Provider on Linux

There are many ChordPro parsers in this world, however, almost none are really native.

Mine are. For Linux written with adwaita-swift and for macOS written in SwifttUI.

The icon

A Telecaster shape, of course! In mid 2016, I felt in love with a guitar. An Olympic White. That is the color of the shape. The background is a suitable modification of her 'plate'.

On macOS Tahoe, the application icon is not allowed to go out of its squarish boundary anymore; another lost of macOS identity... Now it has its own ugly glass icon, sorry for that...

macOS

I lost my interest in macOS.

In Tahoe it became an ugly version of its iStuff and even more lockdown.

I consider to drop it...

What can Chord Provider do?

  • It will view your ChordPro files.
  • It can export your song as a PDF document or a whole folder with ChordPro songs to a PDF with a Table of Contents.
  • It has a fancy editor to edit your songs.
  • It can play the chords with MIDI with a guitar instrument that you can select in the settings.
  • It can play audio songs or videos when stored next to the ChordPro file.
  • It has a database with a lot of chords.
  • left-handed chords support.

A true macOS application

  • It has a quicklook plugin for ChordPro files. Select a song in the Finder and press space.
  • It makes thumbnails for your ChordPro files with the Chord Provider icon and the name on the song below. True eye candy!

Besides that; its an interesting project for macOS programmers. It renders PDF's; use the ViewThatFits magic to show a song in columns, playing MIDI with CoreAudio and deals with the DocumentGroup beast...

It's editor is written from scratch; in AppKit.

While I studied a lot of code from other projects to learn; in the end, its all included. I don't like dependencies!

Binaries

I like Swift and SwiftUI but I don’t like the more and more lockdown of my beloved macOS. I don’t have a Developer account but that should't be needed to bring an Open Source applications to the Mac.

Apple loved Open Source when it needed it. Not anymore.

I have no intension to bring Chord Provider to the Apple Store but I also can't provide an easy compiled binary here on GitHub because it is not notarised and signed by the almighty gatekeeper. The provided release is only ad-hoc signed.

Well, the source is free!

Open Source software projects should get a free account.

Please read the Read me First.

Limitations

Some other guitar applications claim the ownership of ChordPro files and then the quicklook does not work anymore. Chord Provider does not own them; nobody should...

How to compile

Xcode 26 is required.

  1. Clone the project.
  2. Change the signing certificate to your own.
  3. Build and run!

Chord Provider does not use any external packages

Linux

What can Chord Provider do?

  • It will view your ChordPro files.
  • It has a fancy editor to edit your songs.
  • It has a database with a lot of chords.
  • It can play the chords with MIDI.
  • It can play audio songs or videos when stored next to the ChordPro file.
  • It has a database with a lot of chords.
  • left-handed chords support.

How to compile

Clone the source and build with builder as Flatpak.

Limitations

Not all chords in the database are correct; especially the more complicated chords. Feel free to contribute!

It is not a complete implementation of the ChordPro standard. Again, this is my hobby project for my own needs. The official ChordPro implementation might serve you better. I contributed a lot to its Open Source code.

Thanks

adwaita-swift

Stole code (and ideas) from:

Learned a lot from Swift mailing lists:

I hope you learn something from my project as well!