The Computer Music Tutorial


Curtis Roads - 1996
    The Computer Music Tutorial is a comprehensive text and reference that covers all aspects of computer music, including digital audio, synthesis techniques, signal processing, musical input devices, performance software, editing systems, algorithmic composition, MIDI, synthesizer architecture, system interconnection, and psychoacoustics. A special effort has been made to impart an appreciation for the rich history behind current activities in the field. Profusely illustrated and exhaustively referenced and cross-referenced, The Computer Music Tutorial provides a step-by-step introduction to the entire field of computer music techniques. Written for nontechnical as well as technical readers, it uses hundreds of charts, diagrams, screen images, and photographs as well as clear explanations to present basic concepts and terms. Mathematical notation and program code examples are used only when absolutely necessary. Explanations are not tied to any specific software or hardware.The material in this book was compiled and refined over a period of several years of teaching in classes at Harvard University, Oberlin Conservatory, the University of Naples, IRCAM, Les Ateliers UPIC, and in seminars and workshops in North America, Europe, and Asia.

Mastering Audio: The Art and the Science


Bob Katz - 2002
    Mastering Audio is for everyone who wants to increase their mastery of digital and analog audio: musicians, producers, A&R, mastering, recording and mixing engineers, and students.

Master Handbook of Acoustics


F. Alton Everest - 1981
    This book applies the theory to the design of specialized audio spaces such as the home listening room, the control room, and the multi-track-recording studio.

The Mixing Engineer's Handbook


Bobby Owsinski - 1999
    In this edition, you will learn about the history and evolution of mixing, various mixing styles, the six elements of a mix, the rules for arrangement and how they impact your mix, where to build your mix from, and mixing tips and tricks for every genre of music. You will also learn the secrets of EQ and the magic frequencies, along with tips and tricks for adding effects, EQ'ing reverbs, effects layering, calculating the delay time, and much more. A lot has changed in the recording industry since the last edition was published seven years ago, so this new edition provides completely updated information on tips for a loud mix, hypercompression, mixing for Internet distribution, warning signs of an amateur mix, MP3 encoding, streaming audio, audio codecs, de-essing, gating, surround sound mixing, and more. There is also a completely new chapter on how to get the most from mixing inside your computer, as well as a new section on the bass/drum relationship and how to make this difficult part of the mix easy. The book wraps up with insightful interviews with the top engineers in the field, including George Massenburg, Allen Sides, Bruce Swedien, Elliot Scheiner, Andy Johns, Nathanial Kunkel, and several others. Join the tens of thousands of engineers who have used this book to master the art of mixing.

Designing Data-Intensive Applications


Martin Kleppmann - 2015
    Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

Design Patterns: Elements of Reusable Object-Oriented Software


Erich Gamma - 1994
    Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.

The Nature of Code


Daniel Shiffman - 2012
    Readers will progress from building a basic physics engine to creating intelligent moving objects and complex systems, setting the foundation for further experiments in generative design. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. The book's examples are written in Processing, an open-source language and development environment built on top of the Java programming language. On the book's website (http://www.natureofcode.com), the examples run in the browser via Processing's JavaScript mode.

Mixing Secrets for the Small Studio


Mike Senior - 2011
    Mixing Secrets For The Small Studio is a down-to-earth primer for small-studio enthusiasts who want chart-ready sonics in a hurry. Drawing on the back-room strategies of more than 100 famous names, this entertaining guide leads you step-by-step through the entire mixing process. On the way, you'll unravel the mysteries of every type of mix processing, from simple EQ and compression through to advanced spectral dynamics and 'fairy dust' effects. User-friendly explanations introduce technical concepts on a strictly need-to-know basis, while chapter summaries and assignments are perfect for school and college use. * Learn the subtle editing, arrangement, and monitoring tactics which give industry insiders their competitive edge, and master the psychological tricks which protect you from all the biggest rookie mistakes. * Find out where you don't need to spend money, as well as how to make a limited budget really count. * Pick up tricks and tips from leading-edge engineers working on today's multi-platinum hits, including Michael Brauer, Serban Ghenea, the Lord-Alge brothers, Tony Maserati, Manny Marroquin, Dave 'Hard Drive' Pensado, Jack Joseph Puig, Mark 'Spike' Stent, Phil Tan, Andy Wallace, and many, many more... Mike Senior is a professional engineer who has worked with Wet Wet Wet, The Charlatans, Reef, Therapy, and Nigel Kennedy. He specialises in adapting the techniques of top producers for those working on a budget. Since 2007 he has transformed dozens of amateur productions for Sound On Sound magazine's popular 'Mix Rescue' column, proving time and again that you can achieve commercial-grade results with affordable gear -- once you know how * Learn the subtle editing, arrangement, and monitoring tactics which give industry insiders their competitive edge, and master the psychological tricks which protect you from all the biggest rookie mistakes. * Find out where you don't need to spend money, as well as how to make a limited budget really count. * Pick up tricks and tips from leading-edge engineers working on today's multi-platinum hits, including Michael Brauer, Serban Ghenea, the Lord-Alge brothers, Tony Maserati, Manny Marroquin, Dave 'Hard Drive' Pensado, Jack Joseph Puig, Mark 'Spike' Stent, Phil Tan, Andy Wallace, and many, many more...

Musimathics: The Mathematical Foundations of Music, Volume 1


Gareth Loy - 2006
    In "Musimathics," Loy teaches us the tune, providing a friendly and spirited tour of the mathematics of music -- a commonsense, self-contained introduction for the nonspecialist reader. It is designed for musicians who find their art increasingly mediated by technology, and for anyone who is interested in the intersection of art and science.In Volume 1, Loy presents the materials of music (notes, intervals, and scales); the physical properties of music (frequency, amplitude, duration, and timbre); the perception of music and sound (how we hear); and music composition. Calling himself "a composer seduced into mathematics," Loy provides answers to foundational questions about the mathematics of music accessibly yet rigorously. The examples given are all practical problems in music and audio.Additional material can be found at http: //www.musimathics.com.

Python Cookbook


David Beazley - 2002
    Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want to focus on modern tools and idioms.Inside, you’ll find complete recipes for more than a dozen topics, covering the core Python language as well as tasks common to a wide variety of application domains. Each recipe contains code samples you can use in your projects right away, along with a discussion about how and why the solution works.Topics include:Data Structures and AlgorithmsStrings and TextNumbers, Dates, and TimesIterators and GeneratorsFiles and I/OData Encoding and ProcessingFunctionsClasses and ObjectsMetaprogrammingModules and PackagesNetwork and Web ProgrammingConcurrencyUtility Scripting and System AdministrationTesting, Debugging, and ExceptionsC Extensions

Head First Design Patterns


Eric Freeman - 2004
     At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

Refactoring: Improving the Design of Existing Code


Martin Fowler - 1999
    Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as refactoring, these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use... until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.

The Sound Effects Bible: How to Create and Record Hollywood Style Sound Effects


Ric Viers - 2008
    The book covers topics such as microphone selection, field recorders, the ABCs of digital audio, understanding Digital Audio Workstations, building your own Foley stage, designing your own editing studio, and more.

Code Complete


Steve McConnell - 1993
    Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking--and help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor--or evolve--code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project

Domain-Driven Design: Tackling Complexity in the Heart of Software


Eric Evans - 2003
    "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of Design Patterns "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of Designing Object-Oriented User Interfaces "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." --Luke Hohmann, author of Beyond Software Architecture "This book belongs on the shelf of every thoughtful software developer." --Kent Beck "What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important." --Kyle Brown, author of Enterprise Java(TM) Programming with IBM(R) WebSphere(R) The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.