Frequently Asked Questions

Last modified: Nov 3, 2018 @ 2:37 pm

Where can I get help with learning the Euterpea library?
Check out the Tutorials page. The Haskell School of Music textbook is another great way to learn the library if you are also new to the Haskell programming language.

Help, I’m having trouble installing Euterpea!
Check the Troubleshooting page.

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

Where is Euterpea headed now?
Euterpea has entered a fairly stable phase of maintenance, and there are no plans for significant alteration of expansion. After many years of development, the library is still being actively maintained to ensure that it compiles with more recent versions of GHC, and some modules may be rewritten over time to improve efficiency and fix problems. However, the library’s general functionality and core features will remain the same. New features only get added if there is significant demand and, even then, only if they do not interfere with the core functionality of the library.

Who is maintaining Euterpea?
Just one person currently: me (Donya Quick), the same person who maintains this website. Although there are others who still have access to the Hackage and GitHub repositories, I am the only one actively supporting the Euterpea and HSoM libraries right now. 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 in Euterpea?
Within Euterpea itself, 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 / I want to see a particular new feature included in 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 main repository is not open for outside contribution. If you want to make your additions available to other Euterpea users, you have two options: (1) fork Euterpea on GitHub with your own modifications or (2) build another library that imports Euterpea/HSoM as a dependency.

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, so it was eventually removed to simplify site maintenance. If you want to talk about functional music, the Haskell Art mailing list is one option.

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, particularly those caused by new operating system and GHC versions. However, more minor things may take longer, particularly those that only affect very specific/uncommon operating systems or installation setups. Some issues are also not as straightforward as you might think, possibly having more serious ramifications for the library and/or requiring extensive testing before I’m confident that a solid fix has been achieved.