Arduino for Musicians : A Complete Guide to Arduino and Teensy Microcontrollers.


Brent. Edstrom
Bok Engelsk 2016 · Electronic books.
Omfang
1 online resource (453 pages)
Opplysninger
Cover -- Arduino™ for Musicians: A Complete Guide to Arduino and Teensy Microcontrollers -- Copyright -- Dedication -- Contents -- Preface -- What is Arduino? -- Extension of the Creative Process -- The Road to Parnassus -- How to Use the Book -- Why I Wrote the Book -- Safety Tips -- Acknowledgments -- About the Companion Website -- Arduino™ for Musicians -- 1: Getting Started -- Who This Book Is For -- What Is Arduino? -- What You Can Do with Arduino -- What You Can't Do with Arduino -- The Lay of the Land -- The Arduino Family -- Shields -- Other Arduino Flavors -- Unofficial Arduino Microcontrollers -- Purchasing a First Arduino -- Programming and the Arduino IDE -- Compiler -- Circuitry -- Solderless Breadboard -- Review -- Design Cycle -- Organization of the Book -- Things You Will Need to Get Started -- Beginner -- Intermediate -- Advanced -- Purchasing Parts -- Conclusion -- 2: Introduction to Programming -- What Is a Programming Language? -- Why the C Language? -- Getting Started -- Writing Your First Sketch -- Error Messages -- Uploading a Program -- "Hello, world!" in Detail -- Functions -- Serial Output -- Adding Comments -- Code Improvisation -- Variables, Data Types, and Operators -- Initializing Variables -- Operators -- Code Improvisation -- Data Types -- Bits -- Signed and Unsigned Data Types -- Universal Data Types -- Constants -- Enumerations -- Comparison Operators and Control Structures -- "If" Statements -- Boolean Operators -- Switch Statements -- Code Improvisation -- Control Loops -- While Loop -- Do While Loop -- For Loop -- Endless Loops -- Practical Application -- Code Improvisation -- Writing a First Function -- Function Parameters -- Using a Custom Function -- A First Sketch Involving Hardware -- Introduction to Arrays -- Array Syntax -- Array Initialization -- The Ugly Truth: Working with Text in C.. - Control Voltage: VCO vs. DCO -- Modulating a Signal -- Introduction to Mozzi -- Pulse-Width Modulation -- Circuit for PWM Output -- A First Mozzi Sketch -- Incorporating a Filter -- Summing Signals and Adjusting Levels -- Further Exploration -- Audio Output with Teensy 3 -- Exploring Teensy 3 -- 10: Audio Input -- Overview -- Analog-to-Digital Conversion -- Preparing a Signal for Input -- Simple Input Circuit -- Setting Up a Timer for Analog-to-Digital Conversion -- Prescalars -- Building a Simple Arduino Preamp -- Building an Electret Microphone -- Visualizing Audio Data -- Interfacing with Processing -- Waveform View Application -- Testing Waveform View -- Fourier Transform -- Using Data from the FHT -- Spectrum Analyzer -- Other Uses for FFT and FHT -- A Brief Introduction to Signal Processing -- A Few Words About Buffers -- Delay -- Variable Delay -- Tremolo -- High-End Audio Using the Open Music Labs Codec Shield for Real-Time Processing -- Using Mozzi for Audio Input and Processing -- Hardware Setup -- Software Setup -- Setting Up a Low-Pass Filter -- updateControl Mechanism -- Using mozziAnalogRead -- Scaling Amplitude in updateAudio -- Conclusion -- 11: Finalizing Projects -- Creating a Permanent Project -- Personal Safety -- Fire Safety -- Protecting Sensitive Electronic Components -- Tools -- Essential Tools -- Helpful Tools -- Visualizing a Final Project -- Prototype -- Component Connections -- Attaching Components -- Consider the Enclosure -- Paper Panel Mock-up -- Print Drilling/Cutting Guides -- Test Drill Bits -- Moving from a Solderless Breadboard to a Solder Breadboard -- Staying Neat: Layout and Wires -- Consistent Layout -- IC Sockets -- Solder Breadboard Options -- Multipurpose Board -- Perforated Board -- Stripboard -- Homemade Printed Circuit Boards -- Ordering Online Printed Circuit Boards -- Soldering -- Solder.. - Initializing a Sawtooth Waveform -- Updating the Fundamental Frequency -- Main Loop -- Codec Shield -- Using the Codec Shield -- Conclusion -- 8: Introduction to C++ Programming -- Overview: Moving Away from a Procedural Approach -- Using Objects -- Moving to C++ -- Classes -- Anatomy of a Class -- Preprocessor Directives -- Member Variables -- Public and Private Keywords -- Constructors and Destructors -- Source File -- Destructor -- Class Methods -- Using a Class -- More on Overriding Methods -- Other Topics -- Developing a Rotary Encoder Class -- trackShaftPosition -- Using RotaryEncoder -- Making Your Own Library -- Developing a 12-Tone Matrix Class -- Tone Row -- Overview of Design -- Pseudo-code Logic -- Header File -- Source File -- Bounds Checking -- Using ToneRow in a Sketch -- Helper Functions -- Conclusion -- 9: Audio Output and Sound Synthesis -- Analog vs. Digital -- Sample Rate and Resolution -- Resolution -- Conceptualizing a Digital Audio Converter -- Digital Audio Conversion -- R2R Ladder -- DC Component -- Passive Low-Pass Filter -- Setting Up a Timer -- Establishing a Sampling Rate -- DAC Integrated Circuit -- TLC7226 Pinout -- Changes to Boilerplate Code -- Sound Synthesis -- Waveforms -- Generating a Waveform -- Synthesizing a Ramp Waveform -- Fixed-Point Math -- Example 1 -- Example 2 -- Tuning Oscillator -- Volatile Variables -- Developing an Oscillator Class -- Inheritance -- An Oscillator Base Class -- Default Constructor -- Access Methods -- MIDI-to-Frequency Conversion -- Calculating an Increment Value -- Virtual Methods -- Using Inheritance to Create a Ramp Oscillator -- Sawtooth Oscillator -- Pulse-Width Oscillator -- Triangle Oscillator -- Noise Generator -- Linear Congruential Random Number Generation -- Using a Lookup Table -- Creating a Sine Wave Oscillator -- Using Oscillators -- Modulation.. - Note-Off Message -- Polyphonic Key Pressure (Aftertouch) -- Channel Pressure (aftertouch) -- Program Change -- Pitch Wheel Change -- Control Change -- Other Control Changes and Mode Changes -- Channel Mode Messages -- Reset All Controllers -- System Messages -- System Common Messages -- System Real-Time Messages -- System Exclusive Messages -- Universal System Exclusive Messages -- MIDI Machine Control -- MIDI Hardware -- MIDI Output -- Testing the Output Circuit -- Aleatoric Music Generator -- Using a MIDI Library for Output -- Description -- MIDI Receiver Circuit -- MIDI THRU -- Creating Permanent MIDI Circuits -- Reading MIDI Data -- Callback Functions -- USB MIDI with Teensy -- Configuring Teensy -- Conclusion -- 6: Real-Time Input Musical Expression -- Force-Sensitive Resistor -- Wiring an FSR -- Force-Sensitive Drum Pad -- FSR Caution -- Nintendo DS Touch Screen -- Wiring -- Reading the X and Y Positions -- Pressure Sensor -- Pressure Sensor Unit -- Wiring the Pressure Sensor -- Reading Values from the Pressure Sensor -- Joystick -- Wiring a Joystick -- Reading Values from a Joystick -- Joystick Sensitivity -- Wii Nunchuck -- Nunchuck Library -- Nunchuck Code -- Conclusion -- 7: Music-Making Shields -- Overview -- Music Instrument Shield (SparkFun Electronics) -- Using the Shield -- "Steve Reich" Sketch -- Panning -- Adafruit Wave Shield -- Wave Shield Library -- Pin Assignments -- Preparing Audio Files for Use with the Wave Shield -- Loading a File -- WaveHC Member Functions and Data Members -- Playing a Wave File -- Demonstration Sketch -- GinSing -- Voice Mode -- Pointers and the Voice Object -- Speech -- Voice Mode Demonstration -- Synthesizer Mode -- Setting Up the Synthesizer -- Mini Synthesizer Project -- Gameduino -- Using the Gameduino -- Additive Synthesis -- Additive Gameduino Synthesizer -- Using a Structure and an Array.. - String Literals -- Character Arrays -- An Easier Way: Using the String Class -- String Class Example -- A Complete Demonstration Program -- Playing the Tempo Game -- Setup -- newGame Function -- Helper Functions -- Main loop -- Conclusion -- 3: Introduction to Electronics -- Overview -- Pep Talk -- Safety Warning -- Tools and Process -- A First Circuit -- 9V Battery -- SPST Switch -- Resistor -- LED -- Using a Breadboard -- A First Breadboard Project -- Ohm's Law -- Conceptualizing Voltage, Current, and Resistance -- Using Ohm's Law -- Units of Measurement -- Practical Example of Ohm's Law -- Using a Digital Multimeter -- Measuring Voltage -- A Few Words About Ground -- Measuring Current -- Measuring Resistance -- Series Circuit -- Parallel Circuit -- A Word About Resistor Color Codes -- Safety Diode and Potentiometer -- Emergency Music Stand Light -- Transistors -- Incorporating a Photoresistor and Transistor -- Cigar Box Amplifier -- Operational Amplifier -- Capacitors -- Calculating Capacitance -- Parallel Circuit -- Series Circuit -- Connecting an Audio Signal to the Amplifier -- Completed Project -- Simple Theremin -- Hex Inverter -- Phase-Locked Loop IC -- Mocking Up the Simple Theremin -- Conclusion -- 4: Interfacing with Arduino -- Overview of Arduino UNO -- A Caution -- Overview of the Metronome Project -- Metronome with Speaker -- Metronome with Potentiometer -- Metronome with Pushbutton Switch -- Switch with Resistor -- Switch with Pullup Resistor -- Debouncing -- Improving Tone-Generation Logic -- Complete Source Code -- Metronome with Quadrature Rotary Encoder -- Rotary Encoder -- Conclusion -- 5: Music Instrument Digital Interface I/O -- What Is MIDI? -- MIDI Ports -- MIDI OUT Port -- MIDI IN Port -- MIDI THRU Port -- MIDI Messages -- Status Byte -- Data Byte -- Channel Messages and System Messages -- Channel Voice Messages.. - Tinning.. - The Arduino platform provides a virtually limitless range of creative opportunities to musicians who are interested to explore new technologies. In Arduino for Musicians, Brent Edstrom provides a comprehensive guide to the underlying technologies enabling the creation of custom instruments that respond to light, touch, breath, and other forms of control.
Emner
Sjanger
Dewey
ISBN
9780199309337
ISBN(galt)

Bibliotek som har denne