Muutke küpsiste eelistusi

E-raamat: Haskell School of Music: From Signals to Symphonies

(Stevens Institute of Technology, New Jersey),
  • Formaat: EPUB+DRM
  • Ilmumisaeg: 04-Oct-2018
  • Kirjastus: Cambridge University Press
  • Keel: eng
  • ISBN-13: 9781108266031
  • Formaat - EPUB+DRM
  • Hind: 59,27 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: EPUB+DRM
  • Ilmumisaeg: 04-Oct-2018
  • Kirjastus: Cambridge University Press
  • Keel: eng
  • ISBN-13: 9781108266031

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

This book teaches functional programming through creative applications in music and sound synthesis. Readers will learn the Haskell programming language and explore numerous ways to create music and design virtual instruments with concise, elegant code.

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.

Arvustused

'The selection of material is coherent and satisfying, and the book would be suitable for anyone with an interest in computer music, regardless of programming background.' Henrik Nilsson, University of Nottingham 'Paul Hudak was both a world-leading functional programmer, and skilled jazz musician. This book brings together his two passions, by using Haskell as a domain-specific language for describing music. The result is a fascinating study in how computer science can illuminate art, and art can illuminate computer science.' Simon Peyton Jones, Microsoft Research 'This book is a joy. It should be in the library of every Haskell programmer and every musicologist interested in the underlying mathematics of music. Conceived and written by Paul Hudak, it was brought to fruition by Donya Quick. A fitting tribute to Paul and his lifetime's interests in both Haskell and music.' Richard Bird, University of Oxford '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

Muu info

Learn functional programming and the Haskell programming language through algorithmic music composition and virtual instrument design.
Preface xi
Acknowledgments xvi
1 Computer Music, Euterpea, and Haskell
1(26)
1.1 The Note versus Signal Dichotomy
2(1)
1.2 Basic Principles of Prograrnrning
3(1)
1.3 Computation by Calculation
4(4)
1.4 Expressions and Values
8(1)
1.5 Types
9(2)
1.6 Function Types and Type Signatures
11(1)
1.7 Abstraction, Abstraction, Abstraction
12(9)
1.8 Haskell Equality versus Musical Equality
21(1)
1.9 Code Reuse and Modularity
22(1)
1.10 [ Advanced] Programming with Numbers
23(4)
2 Simple Music
27(15)
2.1 Preliminaries
27(2)
2.2 Notes, Music, and Polymorphism
29(5)
2.3 Convenient Auxiliary Functions
34(5)
2.4 Absolute Pitches
39(3)
3 Polymorphic and Higher-Order Functions
42(21)
3.1 Polymorphic Types
42(2)
3.2 Abstraction over Recursive Definitions
44(3)
3.3 Append
47(2)
3.4 Fold
49(5)
3.5 [ Advanced] A Final Example: Reverse
54(2)
3.6 Currying
56(4)
3.7 Errors
60(3)
4 A Musical Interlude
63(11)
4.1 Transcribing an Existing Score
63(2)
4.2 Modules
65(2)
4.3 Transcribing a More Complex Score
67(5)
4.4 Simple Algorithmic Composition
72(2)
5 Syntactic Magic
74(10)
5.1 Sections
74(1)
5.2 Anonymous Functions
75(2)
5.3 List Comprehensions
77(3)
5.4 Function Composition
80(1)
5.5 Higher-Order Thinking
81(1)
5.6 Infix Function Application
82(2)
6 More Music
84(20)
6.1 Delay and Repeat
84(1)
6.2 Inversion and Retrograde
85(2)
6.3 Computing Duration
87(1)
6.4 Super-Retrograde
87(1)
6.5 Cut and Remove
88(1)
6.6 Removing Zeros
89(2)
6.7 Truncating Parallel Composition
91(2)
6.8 Trills
93(2)
6.9 Grace Notes
95(1)
6.10 Percussion
95(2)
6.11 A Map for Music
97(2)
6.12 A Fold for Music
99(1)
6.13 Complex Rhythms
100(1)
6.14 Crazy Recursion
101(3)
7 Qualified Types and Type Classes
104(21)
7.1 Motivation
104(2)
7.2 Equality
106(2)
7.3 Defining Our Own Type Classes
108(5)
7.4 Haskell's Standard Type Classes
113(5)
7.5 Other Derived Instances
118(3)
7.6 The Type of play
121(1)
7.7 Reasoning with Type Classes
122(3)
8 From Music to MIDI
125(9)
8.1 An Introduction to MIDI
125(3)
8.2 MIDI Streams
128(1)
8.3 Euterpea's Playback Framework
129(5)
9 Interpretation and Performance
134(14)
9.1 Abstract Performance
134(5)
9.2 Players
139(5)
9.3 Putting It All Together
144(4)
10 Self-Similar Music
148(8)
10.1 Self-Similar Melody
148(4)
10.2 Self-Similar Harmony
152(1)
10.3 Other Self-Similar Structures
153(3)
11 Proof by Induction
156(19)
11.1 Induction and Recursion
156(1)
11.2 Examples of List Induction
157(2)
11.3 Proving Function Equivalences
159(3)
11.4 Useful Properties on Lists
162(4)
11.5 Induction on the Music Data Type
166(4)
11.6 [ Advanced] Induction on Other Data Types
170(5)
12 An Algebra of Music
175(9)
12.1 Musical Equivalence
175(2)
12.2 Some Simple Axioms
177(3)
12.3 The Fundamental Axiom Set
180(2)
12.4 Other Musical Properties
182(2)
13 L-Systems and Generative Grammars
184(9)
13.1 A Simple Implementation
185(2)
13.2 A More General Implementation
187(2)
13.3 An L-System Grammar for Music
189(4)
14 Random Numbers, Probability Distributions, and Markov Chains
193(12)
14.1 Random Numbers
193(3)
14.2 Probability Distributions
196(6)
14.3 Markov Chains
202(3)
15 Basic Input/Output
205(6)
15.1 IO in Haskell
205(1)
15.2 Do Syntax
206(2)
15.3 Actions Are Just Values
208(2)
15.4 Reading and Writing MIDI Files
210(1)
16 Higher-Order Types and Monads
211(16)
16.1 The Functor Class
211(2)
16.2 The Monad Class
213(8)
16.3 The MonadPlus Class
221(1)
16.4 State Monads
222(3)
16.5 Type Class Type Errors
225(2)
17 Musical User Interfaces
227(35)
17.1 Introduction
227(1)
17.2 Basic Concepts
228(5)
17.3 The UISF Arrow
233(9)
17.4 Non-Widget Signal Functions
242(4)
17.5 Musical Examples
246(5)
17.6 Special Purpose and Custom Widgets
251(5)
17.7 Advanced Topics
256(6)
18 Sound and Signals
262(20)
18.1 The Nature of Sound
262(11)
18.2 Digital Audio
273(9)
19 Euterpea's Signal Functions
282(17)
19.1 The Type of Audio Signals
282(7)
19.2 Generating Sound
289(1)
19.3 Clipping
290(2)
19.4 Instruments
292(7)
20 Spectrum Analysis
299(19)
20.1 Fourier's Theorem
299(6)
20.2 The Discrete Fourier Transform
305(10)
20.3 The Fast Fourier Transform
315(2)
20.4 Further Pragmatics
317(1)
21 Additive and Subtractive Synthesis
318(13)
21.1 Additive Synthesis
319(7)
21.2 Subtractive Synthesis
326(5)
22 Amplitude and Frequency Modulation
331(5)
22.1 Amplitude Modulation
331(3)
22.2 Frequency Modulation
334(1)
22.3 Examples
334(2)
23 Physical Modeling
336(10)
23.1 Introduction
336(1)
23.2 Delay Lines
336(4)
23.3 Karplus-Strong Algorithm
340(3)
23.4 Waveguide Synthesis
343(3)
Appendix A The PreludeList Module 346(9)
Appendix B Haskell's Standard Type Classes 355(10)
Appendix C Built-in Types Are Not Special 365(2)
Appendix D Pattern-Matching Details 367(3)
Appendix E Haskell Quick Reference 370(3)
Appendix F Euterpea Quick Reference 373(4)
Appendix G HSoM Quick Reference 377(2)
Bibliography 379(2)
Index 381
Paul Hudak was Professor of Computer Science at Yale University, Connecticut, from 1982 to 2015. He was best known for his contributions to the development of the Haskell programming language. A skilled saxophonist and jazz musician, the combination of his enthusiasm for music and computer science led him to create the Euterpea library for representing music in Haskell. Donya Quick is Research Assistant Professor of Music and Computation at Stevens Institute of Technology, New Jersey. Her research explores the intersection of artificial intelligence and computational linguistics with music, and includes working on an automated composition system called Kulitta. In addition, she is also involved in the MUSICA project for interactive improvisation and composition by conversion, which is part of the DAPRA Communicating with Computers program.