Freshly Printed - allow 8 days lead
The Haskell School of Music
From Signals to Symphonies
Learn functional programming and the Haskell programming language through algorithmic music composition and virtual instrument design.
Paul Hudak (Author), Donya Quick (Author)
9781108416757, Cambridge University Press
Hardback, published 4 October 2018
398 pages
23.5 x 15.6 x 2.6 cm, 0.68 kg
'Programming is the most direct and unrestricted way to tell computers how to behave and what to produce. With this book, the reader will not only learn, step by step, a modern programing language in Haskell, but will also understand how such a language can be tuned towards application in music. This legacy of Paul Hudak is one of the most vibrant and decisive calls for popularizing programming techniques as a new and powerful medium for the arts.' David Janin, University of Bordeaux
This book explores the fundamentals of computer music and functional programming through the Haskell programming language. Functional programming is typically considered difficult to learn. This introduction in the context of creating music will allow students and professionals with a musical inclination to leverage their experience to help understand concepts that might be intimidating in more traditional computer science settings. Conversely, the book opens the door for programmers to interact with music by using a medium that is familiar to them. Readers will learn how to use the Euterpea library for Haskell (http://www.euterpea.com) to represent and create their own music with code, without the need for other music software. The book explores common paradigms used in algorithmic music composition, such as stochastic generation, musical grammars, self-similarity, and real-time interactive systems. Other topics covered include the basics of signal-based systems in Haskell, sound synthesis, and virtual instrument design.
1. Computer music, Euterpea, and Haskell
2. Simple music
3. Polymorphic and higher-order functions
4. A musical interlude
5. Syntactic magic
6. More music
7. Qualified types and type classes
8. From music to MIDI
9. Interpretation and performance
10. Self-similar music
11. Proof of induction
12. An algebra of music
13. L-Systems and generative grammars
14. Random numbers … and Markov chains
15. Basic input/output
16. Higher-order types and monads
17. Musical user interfaces
18. Sound and signals
19. Euterpea's signal functions
20. Spectrum analysis
21. Additive and subtractive synthesis
22. Amplitude and frequency modulation
23. Physical modeling.
Subject Areas: Signal processing [UYS], Functional programming [UMJ], Digital music: professional [UGM], Media studies [JFD]