On this page
Mathematica
- Digital Research Methods with Mathematica. An open access, open content and open source textbook in the form of a Mathematica notebook (v2.0, 2019; v1.0, 2015).
- Basic Text Analysis in Mathematica. Creating concordances, computing TF-IDF, studying word and n-gram frequencies, and so on.
- Connecting Phidgets to Mathematica on Mac OS X with J/Link. Using a Java interface to call the Phidgets API.
- Connecting Arduino to Mathematica on Mac OS X with SerialIO. Implementing simple serial connection for physical computing.
- Simple Acoustic Data Acquisition with Mathematica. Transmitting sensor data with audible signals.
Cycling ’74 Max
Max 7 Programming Course
GitHub repository for Max 7 code.
- Patch 7-001. Toggles, Buttons and Leds
- Patch 7-002. Message and Number Objects
- Patch 7-003. Print, and the Order of Events
- Patch 7-004. Metro, Counter and Route
- Patch 7-005. Sliders, Dials, Scaling and Clipping
- Patch 7-006. Use Trigger to Specify the Order of Events
- Patch 7-007. Making MIDI Notes
- Patch 7-008. Random Atonal Crap
- Patch 7-009. Kslider and Nslider
- Patch 7-010. Random and Drunk Objects
- Patch 7-011. Basic Mathematical Operations
- Patch 7-012. Hot and Cold Inlets
- Patch 7-013. Floating Point Numbers
- Patch 7-014. More About Messages
- Patch 7-015. Simple Step Sequencer
- Patch 7-016. Reich’s Piano Phase (1967)
- Patch 7-017. Setting, Sending and Receiving Messages
- Patch 7-018. Reading the Mouse
- Patch 7-019. Reading the Keyboard
- Patch 7-020. Multiple Clocks with Metro
- Patch 7-021. Polyrhythms
- Patch 7-022. Graphical Gates and Switches
- Patch 7-023. Pack, Unpack and Pak
- Patch 7-024. Attrui and Colorpicker
- Patch 7-025. Swatch and Multislider
- Patch 7-026. Flipping Coins
- Patch 7-027. Use Patcher to Encapsulate Code
- Patch 7-028. The Bean Machine
- Patch 7-029. Simple Game Navigation
- Patch 7-030. The Lcd Object
- Patch 7-031. Dynamically Updating a Graphic Display
- Patch 7-032. LeWitt’s Wall Drawing 289 (1978)
- Patch 7-033. Generative Art
- Patch 7-034. Processing Grids
- Patch 7-035. Processing Grids with Div and Mod
- Patch 7-036. Polyrhythmic Patterns
- Patch 7-037. Logical Operators
- Patch 7-038. Making Decisions
- Patch 7-039. Conditional Statements
- Patch 7-040. Generate and Test
- Patch 7-041. Changing Coordinates
- Patch 7-042. Sprites
- Patch 7-043. Reflection Symmetry
- Patch 7-044. Rorschach Blots
- Patch 7-045. Points on a Circle
- Patch 7-046. All Points Connected
- Patch 7-047. Drawing Spirals
- Patch 7-048. More Spirals
- Patch 7-049. Plotting Sine Curves
- Patch 7-050. Seeing Sounds
- Patch 7-051. Sinusoidal Waves
- Patch 7-052. Other Waveforms
- Patch 7-053. Envelopes
- Patch 7-054. Converting Between MIDI and Audio
- Patch 7-055. Exponential and Logarithmic Curves
- Patch 7-056. Frequency Modulation
- Patch 7-057. Filters
- Patch 7-058. ADSR Synthesizer
Max 6 and MSP Programming Course
GitHub repository for Max 6 code.
- Patch 001. Comment Objects
- Patch 002. Toggles, Buttons and Leds
- Patch 003. Message and Number Objects
- Patch 004. Metro, Counter and Route
- Patch 005. Sliders, Dials, Scaling and Clipping
- Patch 006. Print, and the Order of Events
- Patch 007. Use Trigger to Specify the Order of Events
- Patch 008. Making MIDI Notes
- Patch 009. Random Atonal Crap
- Patch 010. Kslider and Nslider
- Patch 011. Random and Drunk Objects
- Patch 012. Basic Mathematical Operations
- Patch 013. Hot and Cold Inlets
- Patch 014. Reading the Mouse
- Patch 015. More About Messages
- Patch 016. Simple Step Sequencer
- Patch 017. Reich’s Piano Phase (1967)
- Patch 018. Reading the Keyboard
- Patch 019. Caesar Cipher and ROT13
- Patch 020. Object Review, Patches 001-019
- Patch 021. Floating Point Numbers
- Patch 022. Graphical Gates and Switches
- Patch 023. Setting, Sending and Receiving Messages
- Patch 024. Pack, Unpack and Pak
- Patch 025. Simple Game Navigation
- Patch 026. Attrui and Colorpicker
- Patch 027. Swatch and Multislider
- Patch 028. Flipping Coins and Shuffling Cards
- Patch 029. Use Patcher to Encapsulate Code
- Patch 030. The Bean Machine
- Patch 031. The Lcd Object
- Patch 032. LeWitt’s Wall Drawing 289 (1978)
- Patch 033. Processing Grids
- Patch 034. Processing Grids with Div and Mod
- Patch 035. Retro Icon Editor
- Patch 036. Dynamically Updating a Graphic Display
- Patch 037. Multiple Clocks with Metro
- Patch 038. Polyrhythms
- Patch 039. Polyrhythmic Patterns
- Patch 040. Object Review, Patches 021-039
- Patch 041. Logical Operators
- Patch 042. Decimal (Base 10) Numbers
- Patch 043. Binary (Base 2) Numbers
- Patch 044. Making Decisions
- Patch 045. Conditional Statements
- Patch 046. Generate and Test
- Patch 047. Generative Art
- Patch 048. Drawing with the Mouse
- Patch 049. Reflection Symmetry
- Patch 050. Changing Coordinates
- Patch 051. Rorschach Blots
- Patch 052. Sprites
- Patch 053. Points on a Circle
- Patch 054. Wallpaper for the Mind
- Patch 055. All Points Connected
- Patch 056. Plotting Sine Curves
- Patch 057. Drawing Spirals
- Patch 058. More Spirals
- Patch 059. Packing Circles
- Patch 060. Object Review, Patches 041-059
- Patch 061. Seeing Sounds
- Patch 062. Sinusoidal Waves
- Patch 063. Other Waveforms
- Patch 064. Envelopes
- Patch 065. Converting between MIDI and Audio
- Patch 066. Exponential and Logarithmic Curves
- Patch 067. Frequency Modulation
- Patch 068. Audio Recording and Playback
- Patch 069. Filters
- Patch 070. ADSR Synthesizer
Max 6 Programming Challenges
- Cylon Kitt Challenge. Try after Patch 004 (solution)
- Marquee Challenge. Try after Patch 007; use triggers (solution)
- Beethoven Challenge. Try after Patch 010; note that the patch turns itself off after running through the notes once (solution)
- Mouse Distribution Challenge. Try after Patch 014; note that you have to send a “mode 1” message to the mousestate object (solution)
- Dick and Jane Challenge. Try after Patch 024; this version uses the route object on messages with two elements (solution)
- Happy Face Challenge. Try after Patch 034 (solution)
- Cartoon Bomb Challenge. Try after Patch 046; this version uses the line object twice
Interactive Exhibit Design Course
- Getting Started with Max 6. An introduction to the environment and some simple programs. (Max 7 version)
- Ordering and Choosing Events in Max 6. Giving users the ability to choose the pace or order of events, or stepping through them automatically. (Max 7 version)
- Continuous Values and Discrete States in Max 6. Mechanisms for representing continuous phenomena.
- Interfacing with the MaKey MaKey in Max 6. The MaKey MaKey allows us to turn physical objects into ‘keys’ that trigger arrow movements, mouse clicks and presses of the space bar.
- Interacting with Multimedia in Max 6. Patches to display pictures, play audio and video, manipulate 3D models, and more. (Max 7 version)
- Connecting the Phidgets InterfaceKit to Max 6. Using Phidgets for Analog Input, Digital Input and Digital Output.
Python
GitHub repository for The Programming Historian, 1st ed.
- The Programming Historian, 1st ed. Python programming for humanists.
- The Programming Historian 2