Making Music with Computers: Creative Programming in Python
- Author: Brown, Andrew R.
- Author: Manaris, Bill
Making Music with Computers: Creative Programming in Python
- Author: Brown, Andrew R.
- Author: Manaris, Bill
Purchase product
About
Teach Your Students How to Use Computing to Explore Powerful and Creative Ideas
In the twenty-first century, computers have become indispensable in music making, distribution, performance, and consumption. Making Music with Computers: Creative Programming in Python introduces important concepts and skills necessary to generate music with computers. It interweaves computing pedagogy with musical concepts and creative activities, showing students how to integrate the creativity and design of the arts with the mathematical rigor and formality of computer science.
The book provides an introduction to creative software development in the Python programming language. It uses innovative music-creation activities to illustrate introductory computer programming concepts, including data types, algorithms, operators, iteration, lists, functions, and classes. The authors also cover GUIs, event-driven programming, big data, sonification, MIDI programming, client-server programming, recursion, fractals, and complex system dynamics.
Requiring minimal musical or programming experience, the text is designed for courses in introductory computer science and computing in the arts. It helps students learn computer programming in a creative context and understand how to build computer music applications. Also suitable for self-study, the book shows musicians and digital music enthusiasts how to write music software and create algorithmic music compositions.
Web Resource
A supplementary website (http://jythonMusic.org) provides a music library and other software resources used in the text. The music library is an extension of the jMusic library and incorporates other cross-platform programming tools. The website also offers example course and associated media resources.
Contents
- Introduction and History
- Overview
- Connecting Music, Nature, and Number
- Computer Music History
- Algorithms and Programming
- The Computer as a Musical Instrument
- Software Used in This Book
- Building Blocks
- Overview
- Music Is Sound and ...
- Notes
- Rests
- Variables and Assignment
- Numbers
- Input and Output
- Data Types
- Organization and Data
- Overview
- Musical Organization
- Phrases
- Python Lists
- Adding Notes with Lists
- Case Study: Ludwig van Beethoven-"Fur Elise"
- Musical Scales
- Musical Instruments
- Setting the Instrument
- Case Study: Harold Faltermeyer-"Axel F"
- Chords
- Parts
- Scores
- A Complete Example
- MIDI Drums and Percussive Sounds
- Top -Down Design
- Input and Output
- Transformation and Process
- Overview
- Gestures, Emotion, and Musical Structure
- Minimalism
- Modifying Musical Material (Mod Functions)
- Musical Canon
- Viewing Music
- The Software Development Process
- Case Study: Computer-Aided Music Composition
- Iteration and Lists
- Overview
- Iteration
- Case Study: Arpeggiators
- Python List Operations
- Iterative Musical Processes
- DNA Music
- Randomness and Choices
- Overview
- Randomness and Creativity
- Indeterminism and Serialism
- Python Random Functions
- Stochastic Music
- Harnessing (or Sieving) Randomness
- Selection
- Python Relational Operators
- Python Boolean Values
- Python Logical Operators
- Sonification and Big Data
- Overview
- Data Sonification
- Case Study: Kepler-"Harmonies of the World" (1619)
- Python Strings
- File Input and Output
- Python while Loop
- Big Data
- Python Functions
- Image Sonification
- Interactive Musical Instruments
- Overview
- Building Musical Instruments
- Graphical User Interfaces
- Case Study: Random Circles
- GUI Widgets
- Case Study: A Simple Musical Instrument
- Play Class
- Case Study: An Audio Instrument for Continuous Pitch
- AudioSample Class
- MidiSequence Class
- Paper Prototyping
- A Simple Methodology for Developing GUI s
- Event Handling
- Case Study: A Virtual Piano
- Scheduling Future Events
- Making Connections
- Overview
- MIDI Devices-Connecting to Pianos, Guitars, etc.
- OSC Devices-Connecting to Smartphones, Tablets, etc.
- Music, Number, and Nature
- Overview
- Origins and Representations
- Case Study: Music from Math Curves
- Math Library
- Case Study: The Harmonograph
- Case Study: Kepler's Harmony of the World, No. 2
- Exploring Powerful Ideas
- Overview
- Fractals and Recursion
- Fibonacci Numbers and the Golden Ratio
- Python Classes
- Case Study: The Note Class
- Case Study: A Slider Control
- Animation
- Cymatics
- References
- Appendix A: MIDI Constants
- Appendix B: Music Library Functions
- Appendix C: GUI Library Functions
- Appendix D: Other Functions
- A Summary appears at the end of each chapter.