Frequently Asked Questions

Donya Quick
Last modified: Dec 20, 2020 @ 9:39 am

Where can I get help with learning the Euterpea library?
Check out the Tutorials page for quick help and the Haskell School of Music textbook for more detailed help learning the library step by step.

Help, I’m having trouble installing Euterpea and/or making it work with GHC/GHCi!
First, check your GHC and cabal versions! The vast majority of issues reported to me are a simple failure to use one of the supported versions of GHC and/or cabal listed on the main page. For all other issues, first check the Troubleshooting page. If you can’t find the solution there, check the GitHub issues. If there’s still no solution, post a new issue on GitHub and describe the problem in detail – be sure to include library, OS, GHC, and cabal version information.

Who created Euterpea?
Euterpea was created by Paul Hudak and further developed by the Yale Haskell Group (which no longer exists). It is a descendant of the Haskore and HasSound libraries. Donya Quick is the current maintainer.

Where is Euterpea headed now?
It will remain as-is except for possible bug-fixes and possible updates relating to new GHC versions.

Who is maintaining Euterpea?
Just one person currently: me (Donya Quick), the same person who maintains this website. I started working with Paul and the Yale Haskell Group in Spring 2009 and took over the role of primary maintainer of Euterpea after finishing my PhD in 2014. The Yale Haskell Group no longer exists and I left Yale in May, 2016 for jobs elsewhere.

Is there support for real-time audio within Euterpea?
No. However, you can use VividEuterpea to play Euterpea’s Music values through Vivid to get real-time audio output with custom synthesizer designs through SuperCollider. Because this approach involves two significant extra installations, VividEuterpea will not be rolled into the regular Euterpea library and will instead remain as a separate entity. There are also no plans for a Haskell-only approach to real-time audio within Euterpea, as there have been several past attempts and all exhibited serious performance problems (Haskell really seems to need to go through another framework like SuperCollider or CSound to achieve good real-time audio performance).

I want to add to Euterpea/HSoM. What can I do?
Euterpea and HSoM are open source, which means you can freely modify the code to suit your own needs and have your own customized version of the libraries. However, the repositories themselves are not open for outside contribution. You can modify your own local copy of Euterpea as you please, fork the repository on GitHub, or make a new library that imports Euterpea and/or HSoM.

I think I found a bug in the Hackage version of Euterpea/HSoM. What should I do?
First, check the development version on GitHub and see if the same problem exists. GitHub is updated more frequently with bug fixes to test them thoroughly before pushing a new version to Hackage. Please also take a look at the issues pages for Euterpea 2 and/or HSoM to see if anyone else reported the same problem. If it’s an open issue, others may have posted a temporary fix you can use. If you still see the bug with the development versions of Euterpea and/or HSoM, please create a new issue as described in the next item below (“I think I found a bug in the development version on GitHub”).

I think I found a bug in the development version(s) on GitHub. What should I do?
Use the bug tracker feature on GitHub to report it for the relevant library. Include as much information as possible, including your operating system, GHC and cabal versions, and a detailed transcript showing what went wrong. For installation failures, please include the entire transcript including the command(s) you ran. If you have a possible fix to propose, describe it in your bug report. Do not use a pull request to report a problem, even if you think you know the solution! Create a new open issue and propose your solution there.

I think I know how to fix an open bug on the bug tracker. What should I do?
Please suggest the fix within the bug’s thread. This both gets the information to me (I get an e-mail each time there is a post) and it will also help other users while a solution within the repository itself is pending. Do not use pull requests to suggest a solution – they will be ignored. Post your solution in the relevant issue thread.

Why is there no forum, discussion board, or mailing list for Euterpea?
After several requests to add a forum/discussion board (or mailing list equivalent) back in 2015, a discussion board did exist for several months on this site. It was never used, I removed it.

Why is that bug fix taking so long?
Euterpea is maintained by one person right now: me (Donya Quick). I do my best to rapidly push out fixes to catastrophic problems that prevent installation with the instructions on the main page. However, at this point I prioritize long-term stability with slightly older, well-tested GHC versions over supporting the very newest releases. As a result, the very newest GHC versions may not be supported for a while.