<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI Music</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/</link><description>Recent content on AI Music</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sat, 02 Jan 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/index.xml" rel="self" type="application/rss+xml"/><item><title>Schedule</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/schedule/</link><pubDate>Sat, 02 Jan 2021 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/schedule/</guid><description>Lessons Week 1 (1/13): Introduction to AI and Creativity Tuesday Thursday Week 2 (1/20): Foundations of AI in Music Tuesday Thursday Week 3 (1/27): Hands-On with word2vec Tuesday Thursday Week 4 (2/3): Machine Learning for Music Tuesday Thursday Week 5 (2/10): Audio Feature Extraction Tuesday Thursday Week 6 (2/17): Creative Audio Manipulation Tuesday Thursday Week 7 (2/24): Interactive Machine Learning and HCI Tuesday Thursday Week 8 (3/3): Designing Interactive AI Systems Tuesday Thursday Week 9 (3/10): Spring Break – No Class Week 10 (3/17) Tuesday Thursday Week 11 (3/24) Tuesday Thursday Week 12 (3/31) Tuesday Thursday Week 13 (4/7) Thursday Week 14 (4/14) Thursday Week 15 (4/21) Thursday Week 16 (4/28) Tuesday Thursday Week 1 (1/13): Introduction to AI and Creativity Tuesday Syllabus Review Topics: Overview of course themes, questions: “What does it mean to make music with AI?</description><content>&lt;div>
&lt;h2 id="toc">Lessons&lt;/h2>
&lt;nav id="TableOfContents">
&lt;ul>
&lt;li>&lt;a href="#week-1-113-introduction-to-ai-and-creativity">Week 1 (1/13): Introduction to AI and Creativity&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-2-120-foundations-of-ai-in-music">Week 2 (1/20): Foundations of AI in Music&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-1">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-1">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-3-127-hands-on-with-word2vec">Week 3 (1/27): Hands-On with word2vec&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-2">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-2">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-4-23-machine-learning-for-music">Week 4 (2/3): Machine Learning for Music&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-3">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-3">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-5-210-audio-feature-extraction">Week 5 (2/10): Audio Feature Extraction&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-4">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-4">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-6-217-creative-audio-manipulation">Week 6 (2/17): Creative Audio Manipulation&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-5">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-5">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-7-224-interactive-machine-learning-and-hci">Week 7 (2/24): Interactive Machine Learning and HCI&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-6">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-6">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-8-33-designing-interactive-ai-systems">Week 8 (3/3): Designing Interactive AI Systems&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-7">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-7">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-9-310-spring-break--no-class">Week 9 (3/10): Spring Break – No Class&lt;/a>&lt;/li>
&lt;li>&lt;a href="#week-10-317">Week 10 (3/17)&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-8">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-8">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-11-324">Week 11 (3/24)&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-9">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-9">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-12-331">Week 12 (3/31)&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-10">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-10">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-13-47">Week 13 (4/7)&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#thursday-11">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-14-414">Week 14 (4/14)&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#thursday-12">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-15-421">Week 15 (4/21)&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#thursday-13">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#week-16-428">Week 16 (4/28)&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#tuesday-11">Tuesday&lt;/a>&lt;/li>
&lt;li>&lt;a href="#thursday-14">Thursday&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/nav>
&lt;/div>
&lt;h1 id="week-1-113-introduction-to-ai-and-creativity">Week 1 (1/13): Introduction to AI and Creativity&lt;/h1>
&lt;h2 id="tuesday">Tuesday&lt;/h2>
&lt;ul>
&lt;li>Syllabus Review&lt;/li>
&lt;li>&lt;strong>Topics&lt;/strong>: Overview of course themes, questions: “What does it mean to make music with AI?” and “Is this even a good idea?”&lt;/li>
&lt;li>&lt;strong>Key Concepts&lt;/strong>: Brainard’s creativity framework (novelty, value, agency, curiosity).&lt;/li>
&lt;li>Discussion
&lt;ul>
&lt;li>When you hear the term &amp;lsquo;AI music,&amp;rsquo; what comes to mind?&lt;/li>
&lt;li>What are some examples of how you think AI might be used to create music?&lt;/li>
&lt;li>What are your initial feelings or reactions to the idea of AI creating music?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Listen to some tracks from &lt;a href="https://suno.com/">Suno&lt;/a> and &lt;a href="https://www.aiva.ai/">AIVA&lt;/a>.
&lt;ul>
&lt;li>Take some notes on what you hear and how you feel about it. Focus on musical elements.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Discussion
&lt;ul>
&lt;li>What aspect of the music helped you tell that it was created by an AI system?&lt;/li>
&lt;li>Would you listen to any of this music again? Why or why not?&lt;/li>
&lt;li>What&amp;rsquo;s the place of music like this in society?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>&lt;strong>For next class&lt;/strong>: Read Brainard’s &lt;em>Introduction&lt;/em> and &lt;em>Section 2.1&lt;/em>.
Download &lt;a href="https://philpapers.org/archive/BRATCC-9.pdf">here&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h2 id="thursday">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Reading&lt;/strong>: Brainard’s &lt;em>Introduction&lt;/em> and &lt;em>Section 2.1&lt;/em>.
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-1/brainard-intro-2.1/">slides&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Prepping for the etudes
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-1/tonejs-intro/">Intro to Tone.js (Web Audio API)&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h1 id="week-2-120-foundations-of-ai-in-music">Week 2 (1/20): Foundations of AI in Music&lt;/h1>
&lt;h2 id="tuesday-1">Tuesday&lt;/h2>
&lt;ul>
&lt;li>No class - (out of town for Professional Development)&lt;/li>
&lt;/ul>
&lt;!-- - **Topics**: GOFAI techniques (rule-based systems, algorithmic composition) and their relevance today.
- **Activity**: Analyze algorithmic compositions for novelty. -->
&lt;h2 id="thursday-1">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Assignment&lt;/strong>: Etude 1 (word2vec Poetry).&lt;/li>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-2/word2vec-intro/">Intro to word2vec&lt;/a>&lt;/li>
&lt;li>Mapping word embeddings to musical features&lt;/li>
&lt;li>&lt;strong>Etude due 2/4&lt;/strong> - &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/projects/#etude-1-sonic-poetry-generator">Etude 1: Sonic Poetry Generator&lt;/a>&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>&lt;strong>For next class&lt;/strong> read Brainard’s &lt;em>Section 2.2&lt;/em> (Novelty) and &lt;em>Section 2.3&lt;/em> (Value).&lt;/p>
&lt;/blockquote>
&lt;h1 id="week-3-127-hands-on-with-word2vec">Week 3 (1/27): Hands-On with word2vec&lt;/h1>
&lt;h2 id="tuesday-2">Tuesday&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: Generative poetry and interactive systems using word2vec.&lt;/li>
&lt;li>&lt;a href="https://www.guitarland.com/MusicTheoryWithToneJS/Presets-gh-pages/">Tone.js Presets&lt;/a>&lt;/li>
&lt;li>Helpful p5.js functions
&lt;ul>
&lt;li>&lt;a href="https://p5js.org/reference/p5/map/">map&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://p5js.org/reference/p5/ceil">ceil&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://p5js.org/reference/p5/floor">floor&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://p5js.org/reference/p5/random">random&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://p5js.org/reference/p5/text">text&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Continue with
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-2/word2vec-intro/">Intro to word2vec&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Show instructions for &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/projects/#etude-1-sonic-poetry-generator">Etude 1: Sonic Poetry Generator&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-2">Thursday&lt;/h2>
&lt;ul>
&lt;li>Demoing Additions to Etude 1
&lt;ul>
&lt;li>Timbre Evolution&lt;/li>
&lt;li>Musical Intervals&lt;/li>
&lt;li>Carter demo?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Etude 1 Workshop&lt;/li>
&lt;li>&lt;strong>Etude 1 Due&lt;/strong>: 1/31.&lt;/li>
&lt;/ul>
&lt;!-- - **Assignment**: Reflection: "What is creativity in AI systems?" -->
&lt;h1 id="week-4-23-machine-learning-for-music">Week 4 (2/3): Machine Learning for Music&lt;/h1>
&lt;h2 id="tuesday-3">Tuesday&lt;/h2>
&lt;ul>
&lt;li>A few students show their etude 1 projects&lt;/li>
&lt;li>&lt;strong>Topics&lt;/strong>: MIR techniques (k-NN, SVM, HMM) and applications in feature extraction and classification.
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-4/machine-learning-for-music/">slides&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-3">Thursday&lt;/h2>
&lt;ul>
&lt;li>Finish MIR techniques discussion&lt;/li>
&lt;/ul>
&lt;!--
- **Reading**: Brainard’s *Section 2.4* (Agency).
- **Assignment**: Etude 2 (Genre Classifier and Audio Mosaic). -->
&lt;h1 id="week-5-210-audio-feature-extraction">Week 5 (2/10): Audio Feature Extraction&lt;/h1>
&lt;h2 id="tuesday-4">Tuesday&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-4/freesound-api/">Freesound API&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-4">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-5/freesound-api-search/">Text and Content Search&lt;/a>&lt;/li>
&lt;li>Check out Etude 2 - &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/projects/#etude-2---audio-mosaic">Audio Mosaic&lt;/a>
&lt;ul>
&lt;li>Due 2/25 before class starts&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- - **Topics**: Extracting timbre, pitch, and rhythm features; training classifiers for genre identification.
- **Key Concepts**: Agency and ethical implications of automated systems.
- **Activity**: Debate: “Does automation devalue human musicianship?”
- **Reading**: Supplemental article on copyright and AI. -->
&lt;h1 id="week-6-217-creative-audio-manipulation">Week 6 (2/17): Creative Audio Manipulation&lt;/h1>
&lt;h2 id="tuesday-5">Tuesday&lt;/h2>
&lt;ul>
&lt;li>implementing the audio mosaic&lt;/li>
&lt;li>More examples of sequencing with Tone.js
&lt;ul>
&lt;li>see: &lt;a href="https://github.com/tmhglnd/total-serialism">Total Serialism&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-6/sequencing-with-tonejs/">Tone.js Sequencing&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-5">Thursday&lt;/h2>
&lt;ul>
&lt;li>Check out the updated content search example&lt;/li>
&lt;li>More Tone.js sequencing examples
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-6/sequencing-with-tonejs/">Tone.js Sequencing&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>implementing the audio mosaic&lt;/li>
&lt;li>Sharing in progress work?&lt;/li>
&lt;/ul>
&lt;h1 id="week-7-224-interactive-machine-learning-and-hci">Week 7 (2/24): Interactive Machine Learning and HCI&lt;/h1>
&lt;h2 id="tuesday-6">Tuesday&lt;/h2>
&lt;ul>
&lt;li>Etude 2 presentations&lt;/li>
&lt;li>&lt;strong>Topics&lt;/strong>: Wekinator and humans-in-the-loop systems.
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-7/hil-wekinator-intro/">slides&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Key Concepts&lt;/strong>: Human agency in collaborative systems; impact of AI on musicians.&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-6">Thursday&lt;/h2>
&lt;ul>
&lt;li>finish slides from Tuesday&lt;/li>
&lt;li>More in depth with Wekinator - theory and practice
&lt;ul>
&lt;li>Install Wekinator &lt;a href="http://www.wekinator.org/downloads/">here&lt;/a>&lt;/li>
&lt;li>Look at &lt;a href="http://www.wekinator.org/instructions/">overview&lt;/a>&lt;/li>
&lt;li>Go through &lt;a href="http://www.wekinator.org/walkthrough/">walkthrough&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- - **Activity**: Analyze AI-generated works for balance between human and AI contributions. -->
&lt;!-- - **Reading**: Brainard’s *Section 2.5* (Curiosity). -->
&lt;!-- - **Assignment**: Etude 3 (Wekinator Interactive Toys). -->
&lt;h1 id="week-8-33-designing-interactive-ai-systems">Week 8 (3/3): Designing Interactive AI Systems&lt;/h1>
&lt;h2 id="tuesday-7">Tuesday&lt;/h2>
&lt;ul>
&lt;li>Finish going through &lt;a href="http://www.wekinator.org/walkthrough/">Wekinator&lt;/a> walkthroughs&lt;/li>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-8/wek-reaper/">Wekinator to Reaper&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-7">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Assignment&lt;/strong>: Etude 3 (Wekinator Interactive Toys).&lt;/li>
&lt;li>&lt;a href="https://github.com/tatecarson/facetrack-test">Face and Body Tracking&lt;/a>&lt;/li>
&lt;/ul>
&lt;!--
Ideas: in reaper have wekinator control the jog rate of the cursor in the timeline then record with birdbird.
-->
&lt;h1 id="week-9-310-spring-break--no-class">Week 9 (3/10): Spring Break – No Class&lt;/h1>
&lt;h1 id="week-10-317">Week 10 (3/17)&lt;/h1>
&lt;h2 id="tuesday-8">Tuesday&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/projects/#etude-3---interactive-machine-learning-with-wekinator">Etude 3&lt;/a> Workshop and explanation&lt;/li>
&lt;li>&lt;strong>Etude 3 Due&lt;/strong>: Friday 3/28.
&lt;ul>
&lt;li>See the &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-10/iml-resources/">resources page&lt;/a> for more documentation on Wekinator and IML.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-8">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>No Class&lt;/strong>: 3/20 (MoxSonic).&lt;/li>
&lt;li>Next week we&amp;rsquo;ll work more on Etude 3 and start talking about the final project.&lt;/li>
&lt;/ul>
&lt;h1 id="week-11-324">Week 11 (3/24)&lt;/h1>
&lt;h2 id="tuesday-9">Tuesday&lt;/h2>
&lt;ul>
&lt;li>Interactive Machine Learning Workshop for &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/projects/#etude-3---interactive-machine-learning-with-wekinator">Etude 3&lt;/a> - Due on Friday
&lt;ul>
&lt;li>Show me what you&amp;rsquo;re working on and what problems your&amp;rsquo;e running in to&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-9">Thursday&lt;/h2>
&lt;ul>
&lt;li>no class - travel&lt;/li>
&lt;/ul>
&lt;h1 id="week-12-331">Week 12 (3/31)&lt;/h1>
&lt;h2 id="tuesday-10">Tuesday&lt;/h2>
&lt;ul>
&lt;li>Show Etude 3&lt;/li>
&lt;li>Introduce &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-12/final-project/">final project&lt;/a>&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Note: Until the end of the semester we&amp;rsquo;ll do project work on Tuesdays and reading discussions on Thursdays. Look at the schedule to see what we&amp;rsquo;ll be discussing on that day and what you&amp;rsquo;ll need to be prepared to speak about.&lt;/p>
&lt;/blockquote>
&lt;h2 id="thursday-10">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://aaronhertzmann.com/2023/09/27/what-is-creativity.html">Aaron Hertzmann (2023) – What is Creativity? Can Computers Be Creative?&lt;/a>
&lt;ul>
&lt;li>Hertzmann clearly outlines the philosophical and practical challenges of calling AI “creative.” It&amp;rsquo;s accessible and provocative, and sets the tone for critically engaging with AI-generated music as art.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Discussion Questions:
&lt;ul>
&lt;li>What do you define as creativity?&lt;/li>
&lt;li>Can a machine be creative without intention or awareness?&lt;/li>
&lt;li>How does this reading shape your view of AI-generated music?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-12/what-is-creativity/">slides&lt;/a>&lt;/li>
&lt;/ul>
&lt;h1 id="week-13-47">Week 13 (4/7)&lt;/h1>
&lt;h2 id="thursday-11">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://osf.io/preprints/socarxiv/4nt8z_v1">Selim Tan (2024) - Are We All Musicians Now? Authenticity, Musicianship, and AI Music Generator Suno&lt;/a>
&lt;ul>
&lt;li>Selim Tan critically explores how Suno, an AI music generator, challenges traditional notions of authenticity, authorship, and musicianship by enabling users to create music through prompts, raising questions about creativity, ownership, and the evolving meaning of being a musician.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Discussion Questions:
&lt;ul>
&lt;li>Can users who generate music through prompts in Suno be considered musicians, and how does this challenge or expand traditional definitions of musicianship?&lt;/li>
&lt;li>In what ways might the lack of transparency in Suno’s training data affect the perceived authenticity and ethical legitimacy of its musical outputs?&lt;/li>
&lt;li>How does Suno&amp;rsquo;s ability to turn everyday experiences into music through text, audio, image, or video prompts reflect or reshape the concept of musical expression and personal identity?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-13/are-we-all-musicians-now/">slides&lt;/a>&lt;/li>
&lt;/ul>
&lt;h1 id="week-14-414">Week 14 (4/14)&lt;/h1>
&lt;h2 id="thursday-12">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://www.fairtrademusicinternational.org/wp-content/uploads/2024/08/FTMI-GenAI-White-Paper-EN.pdf">Gervais (2024) – &lt;em>The Remuneration of Music Creators for the Use of Their Works by Generative AI&lt;/em>&lt;/a>
&lt;ul>
&lt;li>This white paper offers a detailed legal and ethical argument for why music creators deserve compensation when their works are used to train generative AI models. Gervais proposes a new right of remuneration that focuses not on training itself, but on outputs that compete with human-made music. It links the current moment to a long history of copyright adapting to new technologies.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Discussion Questions:&lt;/strong>
&lt;ul>
&lt;li>Why does Gervais argue that current copyright law is not enough to protect music creators from AI systems?&lt;/li>
&lt;li>What’s the difference between training data and generative outputs—and why does it matter legally and ethically?&lt;/li>
&lt;li>How might a right of remuneration change the economics of AI-generated music?&lt;/li>
&lt;li>What responsibilities should AI companies have toward the artists whose work they ingest?&lt;/li>
&lt;li>Do you think AI-generated music should be treated the same as human-made music in terms of copyright, authorship, and royalties? Why or why not?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-14/gervais-remuneration/">slides&lt;/a>&lt;/li>
&lt;/ul>
&lt;h1 id="week-15-421">Week 15 (4/21)&lt;/h1>
&lt;h2 id="thursday-13">Thursday&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://thebaffler.com/latest/big-mood-machine-pelly">Pelly (2019) – Big Mood Machine&lt;/a>
&lt;ul>
&lt;li>Or &lt;a href="../lectures/week-15/Pelly_bigMoodMachine.pdf">here&lt;/a> if that&amp;rsquo;s paywalled.&lt;/li>
&lt;li>This article critically examines how Spotify commodifies listener mood and emotional data to fuel its advertising business, raising concerns about surveillance, manipulation, and the reshaping of music as a background marketing tool.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Discussion Questions:
&lt;ul>
&lt;li>How does Spotify’s use of mood playlists influence what we listen to — and why we listen?&lt;/li>
&lt;li>What are the ethical implications of treating emotional data as a product for advertisers?&lt;/li>
&lt;li>In what ways does this system affect artists, musical diversity, or creative autonomy?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-15/mood-machine/">slides&lt;/a>&lt;/li>
&lt;/ul>
&lt;h1 id="week-16-428">Week 16 (4/28)&lt;/h1>
&lt;h2 id="tuesday-11">Tuesday&lt;/h2>
&lt;ul>
&lt;li>Last work day&lt;/li>
&lt;/ul>
&lt;h2 id="thursday-14">Thursday&lt;/h2>
&lt;ul>
&lt;li>No class - out of town&lt;/li>
&lt;/ul>
&lt;!--
- --></content></item><item><title>Syllabus</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/syllabus/</link><pubDate>Fri, 25 Jan 2019 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/syllabus/</guid><description>Download
&amp;laquo; Previous Next &amp;raquo; &amp;nbsp; &amp;nbsp; Page: /</description><content>&lt;p>&lt;a href="../dad-492-syllabus.pdf">Download&lt;/a>&lt;/p>
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.12.313/pdf.min.js" integrity="sha512-qa1o08MA0596eSNsnkRv5vuGloSKUhY09O31MY2OJpODjUVlaL0GOJJcyt7J7Z61FiEgHMgBkH04ZJ+vcuLs/w==" crossorigin="anonymous" referrerpolicy="no-referrer">&lt;/script>
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.12.313/pdf.worker.min.js" integrity="sha512-S9Dwzi4TCjPQkxlaXsqQLj2gXUjPZk4HBzE7zWU6Itc1r2RNmlBrVLH4EsYQrdnzLgvkN8P7l9SCru+2I4rZwg==" crossorigin="anonymous" referrerpolicy="no-referrer">&lt;/script>
&lt;style>
#the-canvas {
border: 1px solid black;
direction: ltr;
width: 100%;
height: auto;
display: none;
}
#paginator {
display: none;
text-align: center;
margin-bottom: 10px;
}
#loadingWrapper {
display: none;
justify-content: center;
align-items: center;
width: 100%;
height: 350px;
}
#loading {
display: inline-block;
width: 50px;
height: 50px;
border: 3px solid #d2d0d0;
border-radius: 50%;
border-top-color: #383838;
animation: spin 1s ease-in-out infinite;
-webkit-animation: spin 1s ease-in-out infinite;
}
@keyframes spin {
to {
-webkit-transform: rotate(360deg);
}
}
@-webkit-keyframes spin {
to {
-webkit-transform: rotate(360deg);
}
}
.button {
display: inline;
}
&lt;/style>
&lt;div id="paginator">
&lt;span id="prev" class="button">&amp;laquo; Previous&lt;/span>
&lt;span id="next" class="button">Next &amp;raquo;&lt;/span>
&amp;nbsp; &amp;nbsp;
&lt;span>Page: &lt;span id="page_num">&lt;/span> / &lt;span id="page_count">&lt;/span>&lt;/span>
&lt;/div>
&lt;div id="embed-pdf-container">
&lt;div id="loadingWrapper">
&lt;div id="loading">&lt;/div>
&lt;/div>
&lt;canvas id="the-canvas">&lt;/canvas>
&lt;/div>
&lt;script type="text/javascript">
window.onload = function () {
var url = "https:\/\/dsu-digital-sound-design.github.io\/s-25-dad-492-topics-ai-music\/" + '.\/dad-492-syllabus.pdf';
var hidePaginator = "" === "true";
var hideLoader = "" === "true";
var selectedPageNum = parseInt("") || 1;
var pdfjsLib = window['pdfjs-dist/build/pdf'];
pdfjsLib.GlobalWorkerOptions.workerSrc = "https:\/\/dsu-digital-sound-design.github.io\/s-25-dad-492-topics-ai-music\/" + '/js/pdf-js/build/pdf.worker.js';
var pdfDoc = null,
pageNum = selectedPageNum,
pageRendering = false,
pageNumPending = null,
scale = 3,
canvas = document.getElementById('the-canvas'),
ctx = canvas.getContext('2d'),
paginator = document.getElementById("paginator"),
loadingWrapper = document.getElementById('loadingWrapper');
showPaginator();
showLoader();
function renderPage(num) {
pageRendering = true;
pdfDoc
.getPage(num)
.then(function (page) {
var viewport = page.getViewport({scale: scale});
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: ctx,
viewport: viewport
};
var renderTask = page.render(renderContext);
renderTask
.promise
.then(function () {
pageRendering = false;
showContent();
if (pageNumPending !== null) {
renderPage(pageNumPending);
pageNumPending = null;
}
});
});
document
.getElementById('page_num')
.textContent = num;
}
function showContent() {
loadingWrapper.style.display = 'none';
canvas.style.display = 'block';
}
function showLoader() {
if (hideLoader)
return
loadingWrapper.style.display = 'flex';
canvas.style.display = 'none';
}
function showPaginator() {
if (hidePaginator)
return
paginator.style.display = 'block';
}
function queueRenderPage(num) {
if (pageRendering) {
pageNumPending = num;
} else {
renderPage(num);
}
}
function onPrevPage() {
if (pageNum &lt;= 1) {
return;
}
pageNum--;
queueRenderPage(pageNum);
}
document
.getElementById('prev')
.addEventListener('click', onPrevPage);
function onNextPage() {
if (pageNum >= pdfDoc.numPages) {
return;
}
pageNum++;
queueRenderPage(pageNum);
}
document
.getElementById('next')
.addEventListener('click', onNextPage);
pdfjsLib
.getDocument(url)
.promise
.then(function (pdfDoc_) {
pdfDoc = pdfDoc_;
var numPages = pdfDoc.numPages;
document
.getElementById('page_count')
.textContent = numPages;
if (pageNum > numPages) {
pageNum = numPages
}
renderPage(pageNum);
});
}
&lt;/script></content></item><item><title>Projects</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/projects/</link><pubDate>Wed, 18 Jul 2018 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/projects/</guid><description>Lessons Etude 1 - Sonic Poetry Generator Overview Core Requirements Assessment Rubric (50 points) Submission Requirements Étude 2 - Audio Mosaic Objective Understanding the Base Project Step 1: Experiment with Feature Extraction (Skip if Choosing Option 4) Step 2: Modify the Similar Sound Search (Skip if Choosing Option 4) Step 3: Choose One of Four Playback and Sound Processing Variations Step 4: Create a Composition Step 5: Write a Reflection Evaluation Criteria (50 Points Total) Etude 3 - Interactive Machine Learning with Wekinator Overview Learning Objectives Project Components 3.</description><content>&lt;div>
&lt;h2 id="toc">Lessons&lt;/h2>
&lt;nav id="TableOfContents">
&lt;ul>
&lt;li>&lt;a href="#etude-1---sonic-poetry-generator">Etude 1 - Sonic Poetry Generator&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#overview">Overview&lt;/a>&lt;/li>
&lt;li>&lt;a href="#core-requirements">Core Requirements&lt;/a>&lt;/li>
&lt;li>&lt;a href="#assessment-rubric-50-points">Assessment Rubric (50 points)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#submission-requirements">Submission Requirements&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#étude-2---audio-mosaic">&lt;strong>Étude 2 - Audio Mosaic&lt;/strong>&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#objective">&lt;strong>Objective&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#understanding-the-base-project">&lt;strong>Understanding the Base Project&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#step-1-experiment-with-feature-extraction-skip-if-choosing-option-4">&lt;strong>Step 1: Experiment with Feature Extraction (Skip if Choosing Option 4)&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#step-2-modify-the-similar-sound-search-skip-if-choosing-option-4">&lt;strong>Step 2: Modify the Similar Sound Search (Skip if Choosing Option 4)&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#step-3-choose-one-of-four-playback-and-sound-processing-variations">&lt;strong>Step 3: Choose One of Four Playback and Sound Processing Variations&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#step-4-create-a-composition">&lt;strong>Step 4: Create a Composition&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#step-5-write-a-reflection">&lt;strong>Step 5: Write a Reflection&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#evaluation-criteria-50-points-total">&lt;strong>Evaluation Criteria (50 Points Total)&lt;/strong>&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#etude-3---interactive-machine-learning-with-wekinator">Etude 3 - Interactive Machine Learning with Wekinator&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#overview-4">Overview&lt;/a>&lt;/li>
&lt;li>&lt;a href="#learning-objectives">Learning Objectives&lt;/a>&lt;/li>
&lt;li>&lt;a href="#project-components">Project Components&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-model-training--implementation">&lt;strong>3. Model Training &amp;amp; Implementation&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#4-documentation--presentation">&lt;strong>4. Documentation &amp;amp; Presentation&lt;/strong>&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rubric-evaluation-criteria">&lt;strong>Rubric: Evaluation Criteria&lt;/strong>&lt;/a>&lt;/li>
&lt;/ul>
&lt;/nav>
&lt;/div>
&lt;h1 id="etude-1---sonic-poetry-generator">Etude 1 - Sonic Poetry Generator&lt;/h1>
&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>In this assignment, you will create a sonic poetry generator that explores the relationship between words and sound. Building upon our &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-2/word2vec-intro/">in-class examples&lt;/a>, you will implement one musical extension that demonstrates your understanding of synthesis, sound design, or music theory.&lt;/p>
&lt;h2 id="core-requirements">Core Requirements&lt;/h2>
&lt;h3 id="basic-implementation-required">Basic Implementation (Required)&lt;/h3>
&lt;ol>
&lt;li>Load and use the word2vec model to find related words&lt;/li>
&lt;li>Create a basic melody system&lt;/li>
&lt;li>Display words on screen with animation&lt;/li>
&lt;li>Include start/stop functionality&lt;/li>
&lt;li>Handle errors appropriately&lt;/li>
&lt;/ol>
&lt;h3 id="musical-extension-choose-one">Musical Extension (Choose One)&lt;/h3>
&lt;p>Select one of these extensions to make the poetry generator your own. Each option emphasizes different aspects of sound design or music theory.&lt;/p>
&lt;h4 id="extension-1-timbre-evolution">Extension 1: Timbre Evolution&lt;/h4>
&lt;p>Create meaningful relationships between words and synthesizer timbre.&lt;/p>
&lt;p>Implementation guidance:&lt;/p>
&lt;ul>
&lt;li>Start by modifying the oscillator type between sine and triangle for different words&lt;/li>
&lt;li>Experiment with attack and release times to create different note characteristics&lt;/li>
&lt;li>Consider how word relationships might map to timbral qualities (e.g., similar words = warm tones, distant words = bright tones)&lt;/li>
&lt;/ul>
&lt;h4 id="extension-2-musical-intervals">Extension 2: Musical Intervals&lt;/h4>
&lt;p>Design melodic relationships using specific musical intervals based on word relationships.&lt;/p>
&lt;p>Implementation guidance:&lt;/p>
&lt;ul>
&lt;li>Begin with simple mappings like major thirds for similar words&lt;/li>
&lt;li>Add minor intervals for more distant relationships&lt;/li>
&lt;li>Create small collections of intervals that work well together&lt;/li>
&lt;li>Consider using pentatonic scales to ensure pleasant combinations&lt;/li>
&lt;/ul>
&lt;h4 id="extension-3-effects-processing">Extension 3: Effects Processing&lt;/h4>
&lt;p>Change audio effects as the poem progresses depending on the word relationships.&lt;/p>
&lt;p>Implementation guidance:&lt;/p>
&lt;ul>
&lt;li>Start with subtle reverb adjustments&lt;/li>
&lt;li>Add delay for more distant word relationships&lt;/li>
&lt;li>Keep effect levels moderate to maintain clarity&lt;/li>
&lt;li>Consider how the space changes with different word combinations&lt;/li>
&lt;/ul>
&lt;h2 id="assessment-rubric-50-points">Assessment Rubric (50 points)&lt;/h2>
&lt;h3 id="core-functionality-25-points">Core Functionality (25 points)&lt;/h3>
&lt;ul>
&lt;li>Word generation works correctly (7 points)&lt;/li>
&lt;li>Basic audio plays reliably (7 points)&lt;/li>
&lt;li>Visual display functions (7 points)&lt;/li>
&lt;li>Start/stop works properly (4 points)&lt;/li>
&lt;/ul>
&lt;h3 id="musical-extension-17-points">Musical Extension (17 points)&lt;/h3>
&lt;ul>
&lt;li>Sonic implementation (6 points)&lt;/li>
&lt;li>Musical effectiveness (6 points)&lt;/li>
&lt;li>Creative use of parameters (5 points)&lt;/li>
&lt;/ul>
&lt;h3 id="documentation-and-process-8-points">Documentation and Process (8 points)&lt;/h3>
&lt;ul>
&lt;li>Documentation of musical choices (3 points)&lt;/li>
&lt;li>Clear explanation of parameters (3 points)&lt;/li>
&lt;li>Thoughtful sound design decisions (2 points)&lt;/li>
&lt;/ul>
&lt;h2 id="submission-requirements">Submission Requirements&lt;/h2>
&lt;ol>
&lt;li>Your code with clear comments explaining audio parameters&lt;/li>
&lt;li>A brief write-up explaining:
&lt;ul>
&lt;li>Which extension you chose and why&lt;/li>
&lt;li>How your sound design relates to word relationships&lt;/li>
&lt;li>Your musical decision-making process&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>A short video demonstration with audio&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h1 id="étude-2---audio-mosaic">&lt;strong>Étude 2 - Audio Mosaic&lt;/strong>&lt;/h1>
&lt;h2 id="objective">&lt;strong>Objective&lt;/strong>&lt;/h2>
&lt;p>In this project you will create a piece of music using MIR features from the Freesound API. You have two routes to choose from: coding or non-coding.&lt;/p>
&lt;p>If you choose the &lt;strong>coding route&lt;/strong>, you will extend the &lt;strong>Audio Mosaic App&lt;/strong> by incorporating &lt;strong>sound selection and playback techniques using Tone.js&lt;/strong>. Instead of selecting sounds randomly, you will extract &lt;strong>low-level sound features&lt;/strong> from an initial sound to retrieve similar sounds dynamically. You will also explore &lt;strong>different playback and processing methods&lt;/strong> using &lt;strong>Tone.js&lt;/strong> and &lt;strong>p5.js&lt;/strong>.&lt;/p>
&lt;p>If you &lt;strong>do not have coding experience&lt;/strong>, you may choose &lt;strong>Option 4&lt;/strong> for your sound variation, which does not require modifying code. Instead, you will use the Freesound search app to explore sound features and create a short composition.&lt;/p>
&lt;p>If you choose &lt;strong>Option 4&lt;/strong>, &lt;strong>skip Step 1 and Step 2&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="understanding-the-base-project">&lt;strong>Understanding the Base Project&lt;/strong>&lt;/h2>
&lt;p>&lt;a href="https://glitch.com/~5-content-search-based-on-analysis">&lt;strong>Starter Project&lt;/strong>&lt;/a>&lt;/p>
&lt;p>The base project includes a &lt;strong>search-and-playback system&lt;/strong> using &lt;strong>Freesound API&lt;/strong> and &lt;strong>Tone.js&lt;/strong>.&lt;/p>
&lt;details>
&lt;summary>How the Base App Works (Click to Expand)&lt;/summary>
&lt;h3 id="retrieves-an-initial-sound">&lt;strong>Retrieves an Initial Sound:&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Searches &lt;strong>Freesound&lt;/strong> based on an instrument tag and duration constraint.&lt;/li>
&lt;li>Extracts &lt;strong>low-level sound features&lt;/strong> from the selected sound:
&lt;ul>
&lt;li>&lt;strong>Spectral Centroid&lt;/strong> (brightness)&lt;/li>
&lt;li>&lt;strong>Spectral Complexity&lt;/strong> (tonal vs. noisy content)&lt;/li>
&lt;li>&lt;strong>Zero Crossing Rate&lt;/strong> (percussive vs. tonal sound)&lt;/li>
&lt;li>&lt;strong>MFCCs&lt;/strong> (Mel-Frequency Cepstral Coefficients - timbral characteristics)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Displays the &lt;strong>sound’s metadata&lt;/strong> and provides basic playback controls.&lt;/li>
&lt;/ul>
&lt;h3 id="finds-similar-sounds-based-on-features">&lt;strong>Finds Similar Sounds Based on Features:&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Uses &lt;strong>content-based search&lt;/strong> to retrieve &lt;strong>sonically similar sounds&lt;/strong>.&lt;/li>
&lt;li>The search is based on extracted &lt;strong>low-level descriptors&lt;/strong> (e.g., spectral centroid, pitch, MFCCs, etc.).&lt;/li>
&lt;li>Displays a &lt;strong>list of similar sounds&lt;/strong> with playback controls.&lt;/li>
&lt;/ul>
&lt;h3 id="manages-audio-playback">&lt;strong>Manages Audio Playback:&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Uses &lt;strong>Tone.js&lt;/strong> to create and manage multiple &lt;strong>Tone.Player&lt;/strong> instances.&lt;/li>
&lt;li>Implements &lt;strong>play and stop functionality&lt;/strong> for each retrieved sound.&lt;/li>
&lt;li>Uses a &lt;strong>map-based structure&lt;/strong> to track active players.&lt;/li>
&lt;/ul>
&lt;/details>
&lt;hr>
&lt;h2 id="step-1-experiment-with-feature-extraction-skip-if-choosing-option-4">&lt;strong>Step 1: Experiment with Feature Extraction (Skip if Choosing Option 4)&lt;/strong>&lt;/h2>
&lt;p>The base project retrieves a fixed set of features (&lt;strong>spectral centroid, spectral complexity, zero crossing rate, and MFCCs&lt;/strong>). You must &lt;strong>experiment with additional low-level features&lt;/strong> from &lt;a href="https://freesound.org/docs/api/analysis_docs.html">Freesound&amp;rsquo;s API Analysis documentation&lt;/a>.&lt;/p>
&lt;details>
&lt;summary>Low-Level Features to Experiment With (Click to Expand)&lt;/summary>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Spectral Features:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Spectral Centroid&lt;/strong> (Brightness - perceived pitch distribution)&lt;/li>
&lt;li>&lt;strong>Spectral Complexity&lt;/strong> (Amount of tonal vs. noisy content)&lt;/li>
&lt;li>&lt;strong>Spectral Flatness&lt;/strong> (How noisy or tonal a sound is)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Temporal Features:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Zero Crossing Rate&lt;/strong> (How percussive or tonal a sound is)&lt;/li>
&lt;li>&lt;strong>Spectral Flux&lt;/strong> (How fast the spectrum changes over time)&lt;/li>
&lt;li>&lt;strong>Temporal Centroid&lt;/strong> (Where the energy is concentrated in time)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Rhythmic Features:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Onset Rate&lt;/strong> (Number of detected note attacks)&lt;/li>
&lt;li>&lt;strong>BPM Estimation&lt;/strong> (Tempo detection)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Timbre Features:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>MFCCs&lt;/strong> (Timbral characteristics, useful for classifying sound types)&lt;/li>
&lt;li>&lt;strong>Loudness Curve&lt;/strong> (Loudness over time)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/details>
&lt;p>Modify &lt;code>handleFirstSearchResult()&lt;/code> to extract new features and log them to the console.&lt;/p>
&lt;hr>
&lt;h2 id="step-2-modify-the-similar-sound-search-skip-if-choosing-option-4">&lt;strong>Step 2: Modify the Similar Sound Search (Skip if Choosing Option 4)&lt;/strong>&lt;/h2>
&lt;p>Once you&amp;rsquo;ve experimented with extracting features, modify &lt;code>searchSimilarSounds()&lt;/code> to use new feature combinations for retrieving similar sounds.&lt;/p>
&lt;details>
&lt;summary>Example Adjustments to the Content-Based Search Query (Click to Expand)&lt;/summary>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Retrieve sounds with similar timbre characteristics:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-js" data-lang="js">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">target&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">`.lowlevel.mfcc.mean:&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>&lt;span style="color:#a6e22e">mfccMean&lt;/span>&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74"> + .lowlevel.spectral_complexity.mean:&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>&lt;span style="color:#a6e22e">complexityMean&lt;/span>&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">`&lt;/span>;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Retrieve rhythmically similar sounds:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-js" data-lang="js">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">target&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">`.lowlevel.rhythm.bpm.mean:&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>&lt;span style="color:#a6e22e">bpm&lt;/span>&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74"> + .lowlevel.onset_rate.mean:&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>&lt;span style="color:#a6e22e">onsetRate&lt;/span>&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">`&lt;/span>;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Retrieve percussive sounds with similar spectral characteristics:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-js" data-lang="js">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">target&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">`.lowlevel.spectral_flux.mean:&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>&lt;span style="color:#a6e22e">fluxMean&lt;/span>&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74"> + .lowlevel.zero_crossing_rate.mean:&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>&lt;span style="color:#a6e22e">zcr&lt;/span>&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">`&lt;/span>;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ul>
&lt;/details>
&lt;hr>
&lt;h2 id="step-3-choose-one-of-four-playback-and-sound-processing-variations">&lt;strong>Step 3: Choose One of Four Playback and Sound Processing Variations&lt;/strong>&lt;/h2>
&lt;p>Once you have modified the search behavior (or if you are skipping coding and choosing &lt;strong>Option 4&lt;/strong>), implement &lt;strong>one of the following playback variations&lt;/strong>. Each variation explores a different &lt;strong>Tone.js event type&lt;/strong> for triggering and manipulating sounds while incorporating &lt;strong>p5.js&lt;/strong> for interactive control.&lt;/p>
&lt;details>
&lt;summary>Option 1: Sequenced Playback with Sound Feature Modulation&lt;/summary>
&lt;h3 id="overview-1">&lt;strong>Overview&lt;/strong>&lt;/h3>
&lt;p>Transform retrieved sounds into a &lt;strong>pattern-based composition&lt;/strong>, where playback is triggered at regular intervals using &lt;strong>Tone.js sequencing tools&lt;/strong>.&lt;/p>
&lt;h3 id="implementation-steps">&lt;strong>Implementation Steps:&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Use &lt;strong>&lt;code>Tone.Sequence&lt;/code>&lt;/strong> to create a rhythmic or evolving playback sequence.&lt;/li>
&lt;li>Modify playback order based on &lt;strong>spectral centroid&lt;/strong> or another extracted feature.&lt;/li>
&lt;li>Apply &lt;strong>LFOs (&lt;code>Tone.LFO&lt;/code>)&lt;/strong> to automate &lt;strong>pitch, filter sweeps, or volume&lt;/strong> over time.&lt;/li>
&lt;li>Use effects like &lt;strong>reverb (&lt;code>Tone.Reverb&lt;/code>)&lt;/strong>, &lt;strong>delay (&lt;code>Tone.FeedbackDelay&lt;/code>)&lt;/strong>, or &lt;strong>distortion (&lt;code>Tone.Distortion&lt;/code>)&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>🎼 Example Use Case:&lt;/strong>&lt;br>
An evolving &lt;strong>ambient soundscape&lt;/strong> where retrieved sounds play in a &lt;strong>repeating pattern&lt;/strong>, shifting in timbre and position over time.&lt;/p>
&lt;/details>
&lt;details>
&lt;summary>Option 2: Performance-Based Triggering with Keyboard Input&lt;/summary>
&lt;h3 id="overview-2">&lt;strong>Overview&lt;/strong>&lt;/h3>
&lt;p>Allows users to &lt;strong>trigger and manipulate sounds in real time&lt;/strong> using &lt;strong>p5.js keyboard input functions&lt;/strong>.&lt;/p>
&lt;h3 id="implementation-steps-1">&lt;strong>Implementation Steps:&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Use &lt;code>p5.js keyPressed()&lt;/code> to trigger different retrieved sounds.&lt;/li>
&lt;li>Implement &lt;strong>&lt;code>Tone.Player&lt;/code>&lt;/strong> to load and play sounds dynamically.&lt;/li>
&lt;li>Allow &lt;strong>real-time pitch shifting (&lt;code>Tone.PitchShift&lt;/code>)&lt;/strong> or filtering (&lt;code>Tone.Filter&lt;/code>).&lt;/li>
&lt;li>Map keys to different effects (e.g., pressing ‘A’ applies &lt;strong>delay&lt;/strong>, ‘B’ triggers a &lt;strong>filter sweep&lt;/strong>).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>🎼 Example Use Case:&lt;/strong>&lt;br>
An &lt;strong>interactive sampler&lt;/strong> where retrieved sounds are played and manipulated &lt;strong>based on keyboard input&lt;/strong>.&lt;/p>
&lt;/details>
&lt;details>
&lt;summary>Option 3: Interactive Layered Textures with Randomized Playback&lt;/summary>
&lt;h3 id="overview-3">&lt;strong>Overview&lt;/strong>&lt;/h3>
&lt;p>Focuses on &lt;strong>asynchronous, layered playback&lt;/strong>, where retrieved sounds are triggered at varying intervals to create a more organic composition.&lt;/p>
&lt;h3 id="implementation-steps-2">&lt;strong>Implementation Steps:&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Use &lt;strong>randomized scheduling&lt;/strong> with &lt;code>setTimeout()&lt;/code> or &lt;code>Tone.Transport.schedule&lt;/code>.&lt;/li>
&lt;li>Layer multiple sounds with slight timing offsets for a &lt;strong>shifting texture&lt;/strong>.&lt;/li>
&lt;li>Introduce &lt;strong>probability-based triggering&lt;/strong>, where some sounds play more frequently than others.&lt;/li>
&lt;li>Apply &lt;strong>granular processing (&lt;code>Tone.GrainPlayer&lt;/code>)&lt;/strong> and &lt;strong>spatialization (&lt;code>Tone.Panner3D&lt;/code>)&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>🎼 Example Use Case:&lt;/strong>&lt;br>
A &lt;strong>constantly shifting sound collage&lt;/strong>, with each playback slightly different, creating an &lt;strong>unpredictable yet cohesive texture&lt;/strong>.&lt;/p>
&lt;/details>
&lt;details open>
&lt;summary>Option 4: Feature-Based Sample Collage (No Coding Required)&lt;/summary>
&lt;h3 id="option-4-feature-based-sample-collage-no-coding-required">&lt;strong>Option 4: Feature-Based Sample Collage (No Coding Required)&lt;/strong>&lt;/h3>
&lt;p>This option allows you to explore &lt;strong>sound selection using audio features&lt;/strong> without modifying code. Instead, you will use the &lt;strong>Freesound API AC Filter Search&lt;/strong> app to find and filter sounds based on their &lt;strong>acoustic characteristics&lt;/strong>, then create a short composition using those sounds.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>App Link&lt;/strong>: &lt;a href="https://glitch.com/~freesound-api-ac-filter-search">&lt;strong>Freesound API AC Filter Search&lt;/strong>&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h3 id="implementation-steps-3">&lt;strong>Implementation Steps&lt;/strong>&lt;/h3>
&lt;h4 id="1-search-for-sounds-using-the-app">&lt;strong>1. Search for Sounds Using the App&lt;/strong>&lt;/h4>
&lt;ul>
&lt;li>Experiment with available &lt;strong>AC filters&lt;/strong>, or add ones from this list that aren&amp;rsquo;t in the app, such as:
&lt;ul>
&lt;li>&lt;strong>Timbre &amp;amp; Spectral Features&lt;/strong>: &lt;code>ac_brightness&lt;/code>, &lt;code>ac_sharpness&lt;/code>, &lt;code>ac_warmth&lt;/code>, &lt;code>ac_roughness&lt;/code>, &lt;code>ac_hardness&lt;/code>&lt;/li>
&lt;li>&lt;strong>Loudness &amp;amp; Dynamics&lt;/strong>: &lt;code>ac_loudness&lt;/code>, &lt;code>ac_dynamic_range&lt;/code>&lt;/li>
&lt;li>&lt;strong>Time &amp;amp; Envelope Features&lt;/strong>: &lt;code>ac_log_attack_time&lt;/code>, &lt;code>ac_temporal_centroid&lt;/code>&lt;/li>
&lt;li>&lt;strong>Rhythm &amp;amp; Pitch Features&lt;/strong>: &lt;code>ac_tempo&lt;/code>, &lt;code>ac_tonality&lt;/code>, &lt;code>ac_note_midi&lt;/code>, &lt;code>ac_note_frequency&lt;/code>&lt;/li>
&lt;li>&lt;strong>Other Descriptors&lt;/strong>: &lt;code>ac_reverb&lt;/code>, &lt;code>ac_loop&lt;/code>, &lt;code>ac_single_event&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Click on the provided link to go to freesound.org and download the sounds for your composition.&lt;/li>
&lt;li>Observe how changing the filters impacts the types of sounds retrieved.&lt;/li>
&lt;li>Tip: If you want to find a similar sound, just change one parameter at a time.&lt;/li>
&lt;/ul>
&lt;h4 id="2-create-a-composition">&lt;strong>2. Create a Composition&lt;/strong>&lt;/h4>
&lt;ul>
&lt;li>Import the selected sounds into a &lt;strong>DAW&lt;/strong>.&lt;/li>
&lt;li>Arrange them into a &lt;strong>one-minute composition&lt;/strong> that explores &lt;strong>sound relationships&lt;/strong> and &lt;strong>textures&lt;/strong>.&lt;/li>
&lt;li>You may apply &lt;strong>effects&lt;/strong> (EQ, reverb, pitch shift, etc.), but focus on using the &lt;strong>original characteristics&lt;/strong> of the sounds.&lt;/li>
&lt;/ul>
&lt;h4 id="3-write-a-short-reflection">&lt;strong>3. Write a Short Reflection&lt;/strong>&lt;/h4>
&lt;ul>
&lt;li>How did &lt;strong>AC features&lt;/strong> influence your composition?&lt;/li>
&lt;li>What were your &lt;strong>challenges in selecting sounds&lt;/strong>?&lt;/li>
&lt;li>How did your &lt;strong>audio choices&lt;/strong> shape the final piece?&lt;/li>
&lt;/ul>
&lt;/details>
&lt;hr>
&lt;h2 id="step-4-create-a-composition">&lt;strong>Step 4: Create a Composition&lt;/strong>&lt;/h2>
&lt;p>All students must create a &lt;strong>one-minute composition&lt;/strong> using their selected sounds.&lt;/p>
&lt;hr>
&lt;h2 id="step-5-write-a-reflection">&lt;strong>Step 5: Write a Reflection&lt;/strong>&lt;/h2>
&lt;p>Write a &lt;strong>short (1-2 paragraph) reflection&lt;/strong> addressing:&lt;/p>
&lt;ul>
&lt;li>How did using &lt;strong>low-level features&lt;/strong> or &lt;strong>search filters&lt;/strong> in the search process influence your composition?&lt;/li>
&lt;li>What changes did you make (if applicable) to the search algorithm?&lt;/li>
&lt;li>How did the &lt;strong>audio characteristics&lt;/strong> of your chosen sounds shape your creative decisions?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="evaluation-criteria-50-points-total">&lt;strong>Evaluation Criteria (50 Points Total)&lt;/strong>&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;strong>Criteria&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Points&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Description&lt;/strong>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Feature-Based Searching&lt;/strong>&lt;/td>
&lt;td>15&lt;/td>
&lt;td>Successfully finds and uses sounds based on their features.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Code Modification&lt;/strong> (if applicable)&lt;/td>
&lt;td>10&lt;/td>
&lt;td>Successfully modifies the search system.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Composition Quality&lt;/strong>&lt;/td>
&lt;td>15&lt;/td>
&lt;td>Effectively integrates selected sounds into a cohesive piece.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Reflection &amp;amp; Analysis&lt;/strong>&lt;/td>
&lt;td>10&lt;/td>
&lt;td>Thoughtful discussion of feature-based searching and creative decisions.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h1 id="etude-3---interactive-machine-learning-with-wekinator">Etude 3 - Interactive Machine Learning with Wekinator&lt;/h1>
&lt;h2 id="overview-4">Overview&lt;/h2>
&lt;p>In this project, you will design an interactive system that uses Wekinator to process real-time inputs and generate musical or sound design outputs. You may develop:&lt;/p>
&lt;ul>
&lt;li>A live performance tool&lt;/li>
&lt;li>A generative composition&lt;/li>
&lt;li>An interactive sound installation&lt;/li>
&lt;li>A sound design tool&lt;/li>
&lt;/ul>
&lt;h2 id="learning-objectives">Learning Objectives&lt;/h2>
&lt;p>By completing this project, you will:&lt;/p>
&lt;ul>
&lt;li>Apply interactive machine learning concepts to sound and music.&lt;/li>
&lt;li>Design a custom AI model that maps inputs (gesture, motion, facial expression, etc.) to musical outputs.&lt;/li>
&lt;li>Train, evaluate, and refine a real-time machine learning system using Wekinator.&lt;/li>
&lt;li>Experiment with MIDI mapping, automation, and sound synthesis in Reaper.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="project-components">Project Components&lt;/h2>
&lt;h3 id="1-concept-development">&lt;strong>1. Concept Development&lt;/strong>&lt;/h3>
&lt;p>&lt;strong>Refer to the course lectures and resources for inspiration and ideas.&lt;/strong>&lt;/p>
&lt;blockquote>
&lt;ul>
&lt;li>&lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-7/hil-wekinator-intro/">Introduction to Wekinator for Interactive Machine Learning in Music&lt;/a>&lt;/li>
&lt;li>The guide for connecting Wekinator to Reaper - &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-8/wek-reaper/">Wekinator to Reaper&lt;/a>&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;ul>
&lt;li>&lt;strong>Brainstorm an idea&lt;/strong> for how machine learning can be applied to sound.&lt;/li>
&lt;li>Choose between:
&lt;ul>
&lt;li>&lt;strong>Performance&lt;/strong>: A live interactive system controlled by movement, gestures, or sound.&lt;/li>
&lt;li>&lt;strong>Composition&lt;/strong>: A fixed work in any style that used Wekinator in some substantial way in the compositional process.&lt;/li>
&lt;li>A &lt;strong>sound design tool&lt;/strong> that uses machine learning to generate or manipulate sounds for a film or game project.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Examples to Consider&lt;/strong>:
&lt;ul>
&lt;li>&lt;strong>Body Tracking Instrument&lt;/strong> – Move your hands or full body to shape a live instrument.&lt;/li>
&lt;li>&lt;strong>Facial Expression Mapping&lt;/strong> – Control parameters (reverb, delay, EQ) using eyebrow raises, mouth shapes, or head tilts.&lt;/li>
&lt;li>&lt;strong>Dynamic Mixing System&lt;/strong> – Adjust levels based on detected movement intensity.&lt;/li>
&lt;li>&lt;strong>Gesture-Based Synth Controller&lt;/strong> – Create a synth patch that is controlled by motion.&lt;/li>
&lt;li>&lt;strong>Mouse/Trackpad-Based Effects Controller&lt;/strong> – Use drawn shapes or strokes to modulate sound effects.&lt;/li>
&lt;li>&lt;strong>Real-Time Sonification&lt;/strong> – Convert movement into real-time ambient or melodic structures.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="2-input--output-mapping">&lt;strong>2. Input &amp;amp; Output Mapping&lt;/strong>&lt;/h3>
&lt;blockquote>
&lt;p>See the &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-8/wek-reaper/">Wekinator to Reaper&lt;/a> guide for setting up communication between Wekinator and Reaper.&lt;/p>
&lt;p>Also - Explore input and output &lt;a href="http://www.wekinator.org/examples/">examples&lt;/a> compatible with Wekinator.&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>Choose &lt;strong>an input device&lt;/strong>:
&lt;ul>
&lt;li>&lt;strong>Face tracking&lt;/strong> (e.g., eye movement, smiles, head position)&lt;/li>
&lt;li>&lt;strong>Body tracking&lt;/strong> (e.g., webcam-based tracking)&lt;/li>
&lt;li>&lt;strong>Mouse/trackpad movements&lt;/strong>
&lt;ul>
&lt;li>Note: as this is the simplest, and least interesting input, your final project should have a very creative and compelling output to compensate.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Audio-based control&lt;/strong> (e.g., volume levels, voice analysis)&lt;/li>
&lt;li>&lt;strong>Custom sensors&lt;/strong> (e.g., Leap Motion, MIDI controllers)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Define your &lt;strong>output in Reaper&lt;/strong>:
&lt;ul>
&lt;li>&lt;strong>MIDI control&lt;/strong> (e.g., notes, CC messages, velocity, pitch bend)&lt;/li>
&lt;li>&lt;strong>Effects modulation&lt;/strong> (e.g., dynamic filtering, real-time reverb control)&lt;/li>
&lt;li>&lt;strong>Automation curves&lt;/strong> (e.g., map hand movement to volume fades)&lt;/li>
&lt;li>&lt;strong>Generative music triggers&lt;/strong> (e.g., movement-based sample triggering)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="3-model-training--implementation">&lt;strong>3. Model Training &amp;amp; Implementation&lt;/strong>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Train your Wekinator model&lt;/strong>:
&lt;ul>
&lt;li>Collect &lt;strong>training data&lt;/strong> with a variety of inputs.&lt;/li>
&lt;li>Assign &lt;strong>clear mappings&lt;/strong> between input features and outputs.&lt;/li>
&lt;li>Experiment with &lt;strong>classification, regression, or dynamic time warping&lt;/strong>.
&lt;ul>
&lt;li>We didn&amp;rsquo;t cover classification or dynamic time warping, but they might be useful for your project. See &lt;a href="http://www.wekinator.org/detailed-instructions/#Dynamic_time_warping_in_Wekinator">Understanding Wekinator’s output types
&lt;/a> for more information.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Connect Wekinator to Reaper&lt;/strong>:
&lt;ul>
&lt;li>See &lt;a href="https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/s-25-dad-492-topics-ai-music/lectures/week-8/wek-reaper/">Wekinator to Reaper&lt;/a> for detailed instructions.&lt;/li>
&lt;li>Use MIDI learning to map gestures to DAW parameters.&lt;/li>
&lt;li>Ensure latency and response time are optimized.&lt;/li>
&lt;li>Fine-tune input sensitivity and model responsiveness.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Test and Refine&lt;/strong>:
&lt;ul>
&lt;li>Identify strengths/weaknesses in the model.&lt;/li>
&lt;li>Gather feedback (from yourself and classmates).&lt;/li>
&lt;li>Adjust training data for &lt;strong>better accuracy and control&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="4-documentation--presentation">&lt;strong>4. Documentation &amp;amp; Presentation&lt;/strong>&lt;/h2>
&lt;h3 id="a-technical-documentation">&lt;strong>A. Technical Documentation&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Provide a &lt;strong>video walkthrough&lt;/strong> covering:
&lt;ul>
&lt;li>&lt;strong>Concept&lt;/strong>: What inspired your idea?&lt;/li>
&lt;li>&lt;strong>Technical Setup&lt;/strong>: What inputs and outputs were used?&lt;/li>
&lt;li>&lt;strong>Machine Learning Process&lt;/strong>: How did you train your model?&lt;/li>
&lt;li>&lt;strong>Challenges &amp;amp; Refinements&lt;/strong>: What issues arose, and how did you fix them?&lt;/li>
&lt;li>&lt;strong>Final Outcome&lt;/strong>: What does your system do?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="b-final-demonstration">&lt;strong>B. Final Demonstration&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>Prepare a &lt;strong>short demo to show the class&lt;/strong>.&lt;/li>
&lt;li>Be prepared to discuss how your &lt;strong>interactive system enhances (or hinders) musical creativity&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h1 id="rubric-evaluation-criteria">&lt;strong>Rubric: Evaluation Criteria&lt;/strong>&lt;/h1>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;strong>Category&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Excellent (A: 45-50)&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Good (B: 40-44)&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Satisfactory (C: 35-39)&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Needs Improvement (D/F: &amp;lt;34)&lt;/strong>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Creativity &amp;amp; Concept&lt;/strong>&lt;/td>
&lt;td>Highly innovative and clearly articulated idea demonstrating strong originality in applying interactive machine learning. Concept fully aligns with chosen area (performance, composition, sound design tool, or installation) and presents significant artistic or technical depth.&lt;/td>
&lt;td>Creative and well-articulated idea with clear exploration of interactive machine learning. Chosen area is evident, with notable artistic or technical depth, but may lack some originality or complexity.&lt;/td>
&lt;td>Adequately developed concept with a basic level of originality and clear area of focus. Demonstrates some understanding of interactive machine learning applications but lacks depth.&lt;/td>
&lt;td>Underdeveloped or unoriginal concept. Area of application unclear or poorly executed. Little meaningful use or understanding of interactive machine learning concepts.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Technical Execution&lt;/strong>&lt;/td>
&lt;td>Inputs and outputs are effectively mapped and work seamlessly with Wekinator and Reaper. System performs smoothly with minimal latency, clearly optimized for real-time interaction. All components function reliably in live settings.&lt;/td>
&lt;td>Inputs and outputs are mostly effective with minor technical issues. Some latency or minor integration problems, but these do not significantly impact usability or real-time interaction.&lt;/td>
&lt;td>Inputs and outputs function adequately but with noticeable latency or occasional errors. Somewhat inconsistent integration with Reaper, impacting real-time responsiveness.&lt;/td>
&lt;td>Significant technical issues prevent effective use. Inputs and outputs poorly integrated, frequent errors, and substantial latency make real-time interaction difficult or impossible.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Machine Learning Use&lt;/strong>&lt;/td>
&lt;td>Training data is thoughtfully designed, comprehensive, and effectively structured, resulting in an accurate and highly responsive Wekinator model. Clear mappings and successful experimentation with chosen ML methods (classification, regression, dynamic time warping).&lt;/td>
&lt;td>Adequately structured training data providing generally accurate model behavior, though some refinement needed. Effective mapping with occasional minor inaccuracies or responsiveness issues.&lt;/td>
&lt;td>Training data has noticeable gaps or inconsistencies, resulting in unpredictable or limited model accuracy and responsiveness. Minimal experimentation with ML methods beyond basic setup.&lt;/td>
&lt;td>Poorly structured or insufficient training data resulting in ineffective or unusable machine learning model. Little or no meaningful experimentation with Wekinator.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Musical/Sonic Outcome&lt;/strong>&lt;/td>
&lt;td>System produces compelling, expressive, and nuanced musical or sonic results. Thoughtful integration of machine learning significantly enhances the musical experience or sound design application.&lt;/td>
&lt;td>System produces musically engaging results with clear value added by machine learning, though certain aspects could be more fully developed or expressive.&lt;/td>
&lt;td>System generates some musical interaction but lacks expressiveness, nuance, or clear added value from machine learning integration. Results are predictable or overly simplistic.&lt;/td>
&lt;td>System fails to effectively demonstrate musical or sonic creativity. Little or no expressive interaction resulting from machine learning integration.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Documentation &amp;amp; Presentation&lt;/strong>&lt;/td>
&lt;td>Thorough, clear, and insightful documentation and video walkthrough. Clearly explains concept inspiration, detailed technical setup, ML training process, challenges encountered, and specific refinements made. Demonstration effectively communicates the project&amp;rsquo;s creative and technical achievements.&lt;/td>
&lt;td>Good quality documentation and video walkthrough, clearly explaining most elements, though some minor gaps in detail or clarity are present. Demonstration successfully showcases project outcomes with minor areas needing elaboration.&lt;/td>
&lt;td>Adequate documentation and video walkthrough covering basic process and project elements. Several details missing or insufficiently explained, leading to questions about training, setup, or refinements. Demonstration covers basic outcomes but lacks depth or clarity.&lt;/td>
&lt;td>Poorly executed documentation and presentation, lacking clarity or completeness. Significant details missing, unclear explanations, or minimal reflection on challenges and solutions. Demonstration fails to effectively communicate project outcomes or learning process.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></content></item><item><title>AI Music Final Project Guidelines</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-12/final-project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-12/final-project/</guid><description>You are invited to choose a final project that best reflects your learning, curiosity, and creative or critical response to the themes we&amp;rsquo;ve explored this semester. Each option includes guidance, prompts, and a set of reflection questions.
See the library for possible sources to use in your reflection. Also see the AI Tools overview if you want to use or critique the AI musical tools that we haven&amp;rsquo;t yet used in class.</description><content>&lt;p>You are invited to choose a final project that best reflects your learning, curiosity, and creative or critical response to the themes we&amp;rsquo;ve explored this semester. Each option includes guidance, prompts, and a set of reflection questions.&lt;/p>
&lt;ul>
&lt;li>See the &lt;a href="https://www.zotero.org/groups/5817982/ai_music_sources/library">library&lt;/a> for possible sources to use in your reflection.&lt;/li>
&lt;li>Also see the &lt;a href="../ai-tools">AI Tools overview&lt;/a> if you want to use or critique the AI musical tools that we haven&amp;rsquo;t yet used in class.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="proposal-document">&lt;strong>Proposal Document&lt;/strong>&lt;/h2>
&lt;p>Before beginning your final project, submit a brief proposal (approximately 1 page) explaining your chosen option and why it interests you. Include your initial ideas, goals, or questions you hope to explore. This proposal will help guide your process and our discussions.&lt;/p>
&lt;blockquote>
&lt;p>Submit this in the final project proposal dropbox on D2L by 4/8/25 at 1 pm.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h3 id="how-youll-be-assessed-an-ungrading-approach">How You’ll Be Assessed: An Ungrading Approach&lt;/h3>
&lt;p>This final project will &lt;strong>not be assessed using a traditional rubric or checklist&lt;/strong>. Instead, your evaluation will be based entirely on your own reflection of what you aimed to accomplish, how you feel about your own growth, and what you learned through engaging creatively or critically with class materials and ideas.&lt;/p>
&lt;p>In your &lt;strong>1–2 page reflection&lt;/strong>, clearly articulate:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Your intentions and goals&lt;/strong>: What did you set out to explore, create, or understand?&lt;/li>
&lt;li>&lt;strong>Your creative and critical process&lt;/strong>: Describe your journey, including key decisions, insights, and any challenges you encountered.&lt;/li>
&lt;li>&lt;strong>Your personal learning&lt;/strong>: How did this project contribute to your growth as a learner, thinker, or creator? What discoveries or surprises emerged?&lt;/li>
&lt;/ul>
&lt;p>Your reflection should demonstrate thoughtful effort and genuine engagement with the assignment. It’s not about perfection, but about curiosity, honesty, and meaningful interaction with the material.&lt;/p>
&lt;p>I will respond to your reflection by offering written feedback that highlights your strengths, acknowledges your process, and celebrates your thoughtful engagement with the project.&lt;/p>
&lt;p>&lt;strong>Optional Grade Recommendation:&lt;/strong>&lt;/p>
&lt;p>You may propose a letter grade that reflects your effort, creativity, and learning, along with a brief explanation. I will honor your suggested grade as long as your reflection thoughtfully aligns with the goals of the assignment.&lt;/p>
&lt;p>If you prefer not to suggest a grade, I will assign one based solely on your reflection and demonstrated engagement.&lt;/p>
&lt;hr>
&lt;h2 id="final-presentation">&lt;strong>Final Presentation&lt;/strong>&lt;/h2>
&lt;p>You will present your project briefly to the class (approximately 5–7 minutes) during exam time. You can share your creative work, discuss your critical reflections, or explain key findings from your process. Your presentation will help your peers engage with your ideas and offer insights or questions.&lt;/p>
&lt;hr>
&lt;h2 id="project-options">&lt;strong>Project Options:&lt;/strong>&lt;/h2>
&lt;h3 id="humans-vs-machines-a-sound-essay">&lt;strong>Humans vs. Machines: A Sound Essay&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Type&lt;/strong>: Creative or Critical&lt;/li>
&lt;li>&lt;strong>Prompt&lt;/strong>: Create an experimental audio piece or sonic essay that juxtaposes human-made and AI-generated music. Optionally include interviews or voice-overs. Reflect on what makes music feel “authentic” and how labor is involved in AI and human composition.&lt;/li>
&lt;li>&lt;strong>Related to concepts learned in Étude 1 - Sonic Poetry Generator&lt;/strong> - exploring sonic relationships and sound design through algorithmic or computational methods.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Reflection Questions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>What drew you to the topic?&lt;/li>
&lt;li>What choices did you make to highlight differences or similarities between AI and human expression?&lt;/li>
&lt;li>What new questions emerged from making this piece?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="remix-ethics-an-audio-collage--legal-analysis">&lt;strong>Remix Ethics: An Audio Collage &amp;amp; Legal Analysis&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Type&lt;/strong>: Creative + Critical&lt;/li>
&lt;li>&lt;strong>Prompt&lt;/strong>: Create a remix or sound collage using AI-generated or public domain samples. Accompany it with an analysis of originality and ownership in the age of AI.&lt;/li>
&lt;li>&lt;strong>Related to concepts learned in Étude 2 - Audio Mosaic&lt;/strong> - using audio features and sample-based retrieval to critically explore originality, ownership, and remix culture.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Reflection Questions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>How did you choose your sources and why?&lt;/li>
&lt;li>What tensions or contradictions did you discover about copyright, authorship, or remix culture?&lt;/li>
&lt;li>What do you think needs to change in the music industry to reflect current realities?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="hidden-layers-sonifying-ais-feature-space">&lt;strong>Hidden Layers: Sonifying AI’s Feature Space&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Type&lt;/strong>: Creative or Experimental&lt;/li>
&lt;li>&lt;strong>Prompt&lt;/strong>: Sonify or creatively use features from machine listening models (e.g., MFCCs, spectral centroid). Build a piece or system that explores how machines “hear.”&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Related to concepts learned in:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Étude 1 - Sonic Poetry Generator – mapping relationships between textual or sonic features and musical outcomes.&lt;/li>
&lt;li>Étude 2 - Audio Mosaic – using extracted audio features (MFCCs, spectral features) creatively in sonic composition.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Reflection Questions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>What did you learn by working with audio features directly?&lt;/li>
&lt;li>Did the machine&amp;rsquo;s perception align with your own?&lt;/li>
&lt;li>How do features limit or expand musical creativity?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="the-artist-in-the-machine-a-sonic-fiction">&lt;strong>The Artist in the Machine: A Sonic Fiction&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Type&lt;/strong>: Creative Narrative&lt;/li>
&lt;li>&lt;strong>Prompt&lt;/strong>: Create a speculative podcast or sound story imagining a future where AI reshapes music, labor, or identity. Mix narrative, fictional tools, and sound design.&lt;/li>
&lt;li>&lt;strong>Inspiration&lt;/strong>
&lt;ul>
&lt;li>Film: Her (2013), Ex Machina (2014), Blade Runner 2049 (2017)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Reflection Questions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>What future did you imagine, and why?&lt;/li>
&lt;li>How did you use audio to bring your ideas to life?&lt;/li>
&lt;li>What values guided your vision of this future?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="personal-toolkit-for-ai-music-creation">&lt;strong>Personal Toolkit for AI Music Creation&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Type&lt;/strong>: Portfolio + Reflection&lt;/li>
&lt;li>&lt;strong>Prompt&lt;/strong>: Create 3–5 short sketches using different &lt;a href="../ai-tools">AI Tools&lt;/a>. For each, reflect on your process and experience. For this project choose the tools that allow for co-creation. You can present these in any form (audio, video, web, etc.).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Related to concepts learned in:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Étude 2 - Audio Mosaic – practically experimenting with audio features and exploring their creative potential and limitations.&lt;/li>
&lt;li>Étude 3 - Interactive Machine Learning with Wekinator – using interactive machine learning tools to develop personalized approaches to music creation.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Reflection Questions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>What did you try, and what did you learn from each experiment?&lt;/li>
&lt;li>Which tools inspired you? Which didn’t?&lt;/li>
&lt;li>How would you explain your toolkit to someone new to this topic?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="ai-listening-journal--creative-response">&lt;strong>AI Listening Journal &amp;amp; Creative Response&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Type&lt;/strong>: Critical + Creative&lt;/li>
&lt;li>&lt;strong>Prompt&lt;/strong>: Keep a journal of your responses to AI music over several weeks. Then, create a short essay in response to one work that moved you, annoyed you, or changed your thinking.
&lt;ul>
&lt;li>Feel free to create your own AI music from Udio or Suno, or use some that already exists elsewhere on the internet.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Reflection Questions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>What emotions or ideas did AI music provoke in you?&lt;/li>
&lt;li>Did your thinking shift over time?&lt;/li>
&lt;li>What is missing in this AI generated music vs music made by humans?&lt;/li>
&lt;li>How did you channel your response into your final work?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="collaborative-experiment-what-happens-if">&lt;strong>Collaborative Experiment: What Happens If…&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Type&lt;/strong>: Group-Based Creative Inquiry&lt;/li>
&lt;li>&lt;strong>Prompt&lt;/strong>: Work in a small group to design and test an absurd, speculative, or playful musical experiment. Follow the thread of a weird question — what if an AI composed only with bird calls? What if a model misunderstood genre entirely?&lt;/li>
&lt;li>&lt;strong>Related to concepts learned in Étude 3 - Interactive Machine Learning with Wekinator&lt;/strong> – collaboratively exploring creative and experimental interactions between human inputs and machine-generated sound outputs.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Reflection Questions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>What was your initial question or spark?&lt;/li>
&lt;li>What did you discover through trying?&lt;/li>
&lt;li>What felt fun, frustrating, or unexpected?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="resisting-the-machine-a-critical-response-to-ai-and-music">&lt;strong>Resisting the Machine: A Critical Response to AI and Music&lt;/strong>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Type&lt;/strong>: Critical, Reflective, or Hybrid&lt;/li>
&lt;li>&lt;strong>Prompt&lt;/strong>: If you didn’t like the class or didn’t connect with AI and music, this is your space. Write a critique, create an artwork, or build a sound collage that expresses your concerns or discomfort. Your goal is not to please but to think deeply and honestly.&lt;/li>
&lt;li>&lt;strong>Inspiration:&lt;/strong> &lt;a href="https://www.ft.com/content/4cae1fa6-2e27-4000-b48c-b078a20bfea9?utm_source=chatgpt.com">A musical supergroup fights AI — with a silent protest album&lt;/a>&lt;/li>
&lt;li>&lt;strong>Related to concepts learned in:&lt;/strong>
&lt;ul>
&lt;li>Étude 2 - Audio Mosaic – critically examining how the reliance on computationally extracted audio features might influence or limit creative expression and musical authenticity.&lt;/li>
&lt;li>Étude 3 - Interactive Machine Learning with Wekinator – critically reflecting on the challenges, limitations, or alienation experienced when working with interactive machine learning tools and AI-driven musical outcomes.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Reflection Questions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>What felt alienating or unconvincing about AI and music?&lt;/li>
&lt;li>Did anything change your view, even slightly?&lt;/li>
&lt;li>What kind of musical future do you hope for?&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>&lt;strong>Final Submission Requirements&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Your creative or critical work (format is flexible)&lt;/li>
&lt;li>A short written reflection (1–2 pages or equivalent)&lt;/li>
&lt;li>Optional: any process notes, sketches, or code you&amp;rsquo;d like to include&lt;/li>
&lt;/ul></content></item><item><title>AI Tools for Creation and Co-Creation</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-12/ai-tools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-12/ai-tools/</guid><description>These free tools support AI-assisted music creation. Some tools assist in the creative process, and some can generate whole compositions from scratch.
Note: Inclusion of a project here is not an endorsement of how useful, creative, or ethical it is; just that it uses AI in some way to create sound or music.
Melody, Harmony, and Composition Assistants Magenta Studio A suite of AI tools for MIDI clip manipulation:
Continue melodies/harmonies Interpolate between two clips Drumify melodic rhythms into beats Groove humanizes drums Generate new ideas Use in: Standalone (drag-and-drop MIDI), or Ableton (Max for Live)</description><content>&lt;p>These free tools support AI-assisted music creation. Some tools assist in the creative process, and some can generate whole compositions from scratch.&lt;/p>
&lt;blockquote>
&lt;p>Note: Inclusion of a project here is not an endorsement of how useful, creative, or ethical it is; just that it uses AI in some way to create sound or music.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="melody-harmony-and-composition-assistants">&lt;strong>Melody, Harmony, and Composition Assistants&lt;/strong>&lt;/h2>
&lt;h3 id="magenta-studiohttpsmagentatensorfloworgstudio">&lt;a href="https://magenta.tensorflow.org/studio">Magenta Studio&lt;/a>&lt;/h3>
&lt;p>A suite of AI tools for MIDI clip manipulation:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Continue&lt;/strong> melodies/harmonies&lt;/li>
&lt;li>&lt;strong>Interpolate&lt;/strong> between two clips&lt;/li>
&lt;li>&lt;strong>Drumify&lt;/strong> melodic rhythms into beats&lt;/li>
&lt;li>&lt;strong>Groove&lt;/strong> humanizes drums&lt;/li>
&lt;li>&lt;strong>Generate&lt;/strong> new ideas&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Use in:&lt;/strong> &lt;a href="https://magenta.tensorflow.org/v1/studio">Standalone&lt;/a> (drag-and-drop MIDI), or Ableton (Max for Live)&lt;/p>
&lt;hr>
&lt;h3 id="bandlab-songstarterhttpswwwbandlabcomsongstarter">&lt;a href="https://www.bandlab.com/songstarter">BandLab SongStarter&lt;/a>&lt;/h3>
&lt;p>AI generates 8-bar musical ideas based on genre, mood, or lyrics/emoji.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> BandLab (web or app); export audio/MIDI to other DAWs&lt;/p>
&lt;hr>
&lt;h3 id="lemonaide-aihttpswwwlemonaideai">&lt;a href="https://www.lemonaide.ai/">Lemonaide AI&lt;/a>&lt;/h3>
&lt;p>AI-assisted songwriting tool for chords and melodies.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web-based sketchpad&lt;br>
&lt;strong>Great for:&lt;/strong> Quick harmonic/rhythmic inspiration, beat starters&lt;/p>
&lt;hr>
&lt;h3 id="ecrett-musichttpsecrettmusiccom">&lt;a href="https://ecrettmusic.com/">Ecrett Music&lt;/a>&lt;/h3>
&lt;p>Royalty-free background music generator for video, games, or streaming.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web platform&lt;br>
&lt;strong>Great for:&lt;/strong> Music for scene-based assignments, non-musician students&lt;/p>
&lt;hr>
&lt;h2 id="ai-for-rhythm-and-drums">&lt;strong>AI for Rhythm and Drums&lt;/strong>&lt;/h2>
&lt;h3 id="drumnet-by-sessionloopshttpswwwsessionloopscomdrumnet">&lt;a href="https://www.sessionloops.com/drumnet">DrumNet by SessionLoops&lt;/a>&lt;/h3>
&lt;p>AI drum machine plugin:&lt;/p>
&lt;ul>
&lt;li>Generates drum samples from scratch&lt;/li>
&lt;li>Includes built-in sequencer&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Use in:&lt;/strong> VST/AU plugin for Reaper, Ableton, etc.&lt;br>
&lt;strong>Great for:&lt;/strong> Original electronic drum kits, beat experimentation&lt;/p>
&lt;hr>
&lt;h2 id="ai-for-sound-design-and-timbre">&lt;strong>AI for Sound Design and Timbre&lt;/strong>&lt;/h2>
&lt;h3 id="neutone-inchttpsneutoneai">&lt;a href="https://neutone.ai/">Neutone Inc.&lt;/a>&lt;/h3>
&lt;p>Real-time tone manipulation and morphing:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Morpho:&lt;/strong> tone morphing&lt;/li>
&lt;li>&lt;strong>Neutone FX:&lt;/strong> multiple pretrained models&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Use in:&lt;/strong> VST/AU plugin&lt;br>
&lt;strong>Great for:&lt;/strong> Tone transfers, glitch aesthetics, creative FX&lt;/p>
&lt;hr>
&lt;h3 id="tone-transferhttpssitesresearchgoogletonetransfer">&lt;a href="https://sites.research.google/tonetransfer/">Tone Transfer&lt;/a>&lt;/h3>
&lt;p>Turn your humming or instrument into another instrument’s voice.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web-based&lt;br>
&lt;strong>Great for:&lt;/strong> Fast substitutions and experimental textures&lt;/p>
&lt;hr>
&lt;h3 id="magenta-ddsp-vsthttpsmagentatensorfloworgddsp-vst">&lt;a href="https://magenta.tensorflow.org/ddsp-vst">Magenta DDSP VST&lt;/a>&lt;/h3>
&lt;p>Turns MIDI into expressive sounds using learned instrument models.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> VST3-compatible DAWs&lt;br>
&lt;strong>Great for:&lt;/strong> Custom instrument voices, AI-aided timbral variation&lt;/p>
&lt;hr>
&lt;h3 id="scyclone-by-torsion-audiohttpsgithubcomtorsion-audioscyclone">&lt;a href="https://github.com/Torsion-Audio/scyclone">Scyclone by Torsion Audio&lt;/a>&lt;/h3>
&lt;p>Real-time neural timbre transfer using the RAVE model.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Open-source VST/AU plugin&lt;br>
&lt;strong>Great for:&lt;/strong> Ambient sound design, morphing hybrid sounds&lt;/p>
&lt;hr>
&lt;h3 id="rave-vst-by-ircamhttpsforumircamfrprojectsdetailrave-vst">&lt;a href="https://forum.ircam.fr/projects/detail/rave-vst/">RAVE VST by IRCAM&lt;/a>&lt;/h3>
&lt;p>Neural vocoder plugin for real-time timbral translation.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> VST; open-source&lt;br>
&lt;strong>Great for:&lt;/strong> Advanced sound design with pretrained AI models&lt;/p>
&lt;hr>
&lt;h3 id="nsynth-super-magentahttpsmagentatensorfloworgnsynth">&lt;a href="https://magenta.tensorflow.org/nsynth">NSynth Super (Magenta)&lt;/a>&lt;/h3>
&lt;p>Blends two sounds to generate new timbres using a neural network.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web demo or hardware synth&lt;br>
&lt;strong>Great for:&lt;/strong> Sonic hybridity, novel instruments&lt;/p>
&lt;hr>
&lt;h3 id="samplab-text-to-samplehttpswwwsamplabcom">&lt;a href="https://www.samplab.com/">Samplab Text-to-Sample&lt;/a>&lt;/h3>
&lt;p>Generates one-shots, instruments, or effects from &lt;strong>text prompts&lt;/strong>.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> VST/AU&lt;br>
&lt;strong>Great for:&lt;/strong> Creating sound effects or abstract samples from scratch&lt;/p>
&lt;hr>
&lt;h3 id="this-patch-does-not-exist--synth1-generatorhttpsthispatchdoesnotexistcom">&lt;a href="https://thispatchdoesnotexist.com/">This Patch Does Not Exist – Synth1 Generator&lt;/a>&lt;/h3>
&lt;p>AI-generated patches for Synth1 and Dexed.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Synth1/Dexed plugins&lt;br>
&lt;strong>Great for:&lt;/strong> New synth timbres, lo-fi textures, preset exploration&lt;/p>
&lt;hr>
&lt;h2 id="ai-mixing-mastering-and-stem-separation">&lt;strong>AI Mixing, Mastering, and Stem Separation&lt;/strong>&lt;/h2>
&lt;h3 id="bandlab-masteringhttpswwwbandlabcommastering">&lt;a href="https://www.bandlab.com/mastering">BandLab Mastering&lt;/a>&lt;/h3>
&lt;p>Upload a track and get a quick AI master with 4 style presets.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Polished rough mixes, free mastering examples&lt;/p>
&lt;hr>
&lt;h3 id="kitsai-masteringhttpswwwkitsaitoolsai-mastering">&lt;a href="https://www.kits.ai/tools/ai-mastering">Kits.AI Mastering&lt;/a>&lt;/h3>
&lt;p>AI mastering with genre-based presets and reference matching.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Streaming-ready polish, A/B mastering analysis&lt;/p>
&lt;hr>
&lt;h3 id="spleeter-via-githubhttpsgithubcomdeezerspleeter">&lt;a href="https://github.com/deezer/spleeter">Spleeter (via GitHub)&lt;/a>&lt;/h3>
&lt;p>Also try: &lt;a href="https://ezstems.com/">EZStem GUI&lt;/a>&lt;br>
Stem separation from mixed tracks (vocals, drums, bass, etc.).&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Python CLI or GUI&lt;br>
&lt;strong>Great for:&lt;/strong> Remixing, practice mixing, isolating parts&lt;/p>
&lt;hr>
&lt;h3 id="demucshttpsgithubcomfacebookresearchdemucs">&lt;a href="https://github.com/facebookresearch/demucs">Demucs&lt;/a>&lt;/h3>
&lt;p>More advanced stem separation model than Spleeter.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Python or GUI&lt;br>
&lt;strong>Great for:&lt;/strong> High-quality separation for remixing, repurposing stems&lt;/p>
&lt;hr>
&lt;h3 id="adobe-enhance-speechhttpspodcastadobecomenhance">&lt;a href="https://podcast.adobe.com/enhance">Adobe Enhance Speech&lt;/a>&lt;/h3>
&lt;p>Cleans up voice recordings using AI to remove noise and clarify speech.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web-based&lt;br>
&lt;strong>Great for:&lt;/strong> Podcasting, narration, voiceovers, field recordings&lt;/p>
&lt;hr>
&lt;h2 id="ai-lyrics-and-voice-models">&lt;strong>AI Lyrics and Voice Models&lt;/strong>&lt;/h2>
&lt;h3 id="these-lyrics-do-not-existhttpstheselyricsdonotexistcom">&lt;a href="https://theselyricsdonotexist.com/">These Lyrics Do Not Exist&lt;/a>&lt;/h3>
&lt;p>Random lyric generator based on genre, mood, and topic.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Prompt inspiration, songwriting exercises, lyric critique&lt;/p>
&lt;hr>
&lt;h3 id="voicefuliohttpswwwvoicefulio">&lt;a href="https://www.voiceful.io/">Voiceful.io&lt;/a>&lt;/h3>
&lt;p>Turn text or melody into expressive singing or spoken voice.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Prototyping vocal parts, exploring synthetic vocals&lt;/p>
&lt;hr>
&lt;h3 id="uberduck-legacyhttpsuberduckai">&lt;a href="https://uberduck.ai/">Uberduck (Legacy)&lt;/a>&lt;/h3>
&lt;p>Previously offered customizable AI rappers and voice models.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> (If reinstated) Web-based&lt;br>
&lt;strong>Great for:&lt;/strong> Analyzing synthetic identity and parody, rap lyric generation&lt;/p>
&lt;hr>
&lt;h2 id="ai-tools-that-generate-full-songs-for-analysis-projects">&lt;strong>AI Tools That Generate Full Songs (For Analysis Projects)&lt;/strong>&lt;/h2>
&lt;p>These tools generate complete songs (lyrics, melody, arrangement). Best for critique and evaluation—not for compositional assignments.&lt;/p>
&lt;h3 id="sunohttpssunoai">&lt;a href="https://suno.ai/">Suno&lt;/a>&lt;/h3>
&lt;p>Generates full songs from lyrics or short prompts.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Analyzing vocal synthesis, genre modeling, lyrical coherence&lt;/p>
&lt;hr>
&lt;h3 id="udiohttpswwwudiocom">&lt;a href="https://www.udio.com/">Udio&lt;/a>&lt;/h3>
&lt;p>Text-to-music AI with extended generation and genre control.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Comparative analysis, studying structure and flow&lt;/p>
&lt;hr>
&lt;h3 id="soundrawhttpssoundrawio">&lt;a href="https://soundraw.io/">Soundraw&lt;/a>&lt;/h3>
&lt;p>Generates modular, customizable royalty-free music for content.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Studying adaptive/production music structure&lt;/p>
&lt;hr>
&lt;h3 id="aivahttpswwwaivaai">&lt;a href="https://www.aiva.ai/">AIVA&lt;/a>&lt;/h3>
&lt;p>AI composer for orchestral, cinematic, and classical music.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Form and orchestration analysis, MIDI editing practice&lt;/p>
&lt;hr>
&lt;h3 id="boomyhttpswwwboomycom">&lt;a href="https://www.boomy.com/">Boomy&lt;/a>&lt;/h3>
&lt;p>One-click song generation with built-in styles and vocals.&lt;/p>
&lt;p>&lt;strong>Use in:&lt;/strong> Web&lt;br>
&lt;strong>Great for:&lt;/strong> Critiquing music as content, examining commercial AI production&lt;/p></content></item><item><title>Bibl</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-12/bibliography/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-12/bibliography/</guid><description/><content>&lt;iframe src="https://www.zotero.org/groups/5817982/ai_music_sources/library" width=700 height=1000>&lt;/iframe></content></item><item><title>Freesound API</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-4/freesound-api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-4/freesound-api/</guid><description>Overview On this page, we will explore the Freesound API, a platform for sharing and downloading Creative Commons-licensed sounds. We will learn how to search for sounds, download them, and use them in our projects.
What is the Freesound API? The Freesound API is a RESTful API that allows you to search, browse, and download sounds from the Freesound database. The API provides access to a wide range of sound-related data, including sound metadata, sound analysis data, and user data.</description><content>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>On this page, we will explore the &lt;a href="https://freesound.org/docs/api/resources_apiv2.html">Freesound API&lt;/a>, a platform for sharing and downloading Creative Commons-licensed sounds. We will learn how to search for sounds, download them, and use them in our projects.&lt;/p>
&lt;h2 id="what-is-the-freesound-api">What is the Freesound API?&lt;/h2>
&lt;p>The Freesound API is a RESTful API that allows you to search, browse, and download sounds from the Freesound database. The API provides access to a wide range of sound-related data, including sound metadata, sound analysis data, and user data.&lt;/p>
&lt;h2 id="getting-started">Getting Started&lt;/h2>
&lt;p>To get started with the Freesound API, you will need to create an account on the Freesound website and obtain an API key. You can create an account and obtain an API key &lt;a href="https://freesound.org/apiv2/apply/">here&lt;/a>.&lt;/p>
&lt;p>Once you have obtained an API key, you can start using the API to search for sounds, download them, and use them in your projects.&lt;/p>
&lt;h2 id="example-1">Example 1&lt;/h2>
&lt;p>This example shows finding a random sound from Freesound then finding 10 similar sounds. Sounds are played with the Tone.js Player object.&lt;/p>
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/freesound-random-similar?path=script.js&amp;previewSize=0"
title="freesound-random-similar on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="example-2">Example 2&lt;/h2>
&lt;p>Here&amp;rsquo;s an example project that queries the Freesound database for one random sound. Then the user can find similar sounds to that random sound.&lt;/p>
&lt;p>Finally, we can create a sequence out of the similar sounds.&lt;/p>
&lt;!-- Copy and Paste Me -->
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/freesound-random-similar-sequence?path=script.js&amp;previewSize=0"
title="freesound-random-similar-sequence on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h3 id="user-story">User Story&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>User clicks a button&lt;/strong> → Requests a &lt;strong>random sound&lt;/strong> from Freesound.&lt;/li>
&lt;li>&lt;strong>Sound is loaded&lt;/strong> into a Tone.js &lt;strong>Player&lt;/strong>.&lt;/li>
&lt;li>&lt;strong>User plays the sound&lt;/strong>, which is stored in a &lt;strong>Map&lt;/strong> for reuse.&lt;/li>
&lt;li>&lt;strong>User can stop the sound&lt;/strong> or request &lt;strong>similar sounds&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;h3 id="key-sections">Key Sections&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;strong>Concept&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Corresponding Code Section&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Explanation&lt;/strong>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Setup &amp;amp; Initialization&lt;/strong>&lt;/td>
&lt;td>&lt;code>setup()&lt;/code>&lt;/td>
&lt;td>Sets up event listeners and loads an initial sound.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Fetching Sounds&lt;/strong>&lt;/td>
&lt;td>&lt;code>getRandomSound()&lt;/code>&lt;/td>
&lt;td>Queries Freesound API for a random sound and loads it.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Creating a Sound Player&lt;/strong>&lt;/td>
&lt;td>&lt;code>createTonePlayer()&lt;/code>&lt;/td>
&lt;td>Uses Tone.js to load and manage sounds.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Playing and Stopping Sounds&lt;/strong>&lt;/td>
&lt;td>&lt;code>playSound()&lt;/code> and &lt;code>stopSound()&lt;/code>&lt;/td>
&lt;td>Plays or stops the currently loaded sound.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Finding Similar Sounds&lt;/strong>&lt;/td>
&lt;td>&lt;code>getSimilarSounds()&lt;/code>&lt;/td>
&lt;td>Searches for and loads sounds similar to the current one.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h3 id="interactive-debugging-with-console-logs">Interactive Debugging with Console Logs&lt;/h3>
&lt;p>Add console logs to show the &lt;strong>sound fetching process&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-javascript" data-lang="javascript">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">console&lt;/span>.&lt;span style="color:#a6e22e">log&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Fetching a random sound:&amp;#34;&lt;/span>, &lt;span style="color:#a6e22e">query&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">console&lt;/span>.&lt;span style="color:#a6e22e">log&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Loaded sound object:&amp;#34;&lt;/span>, &lt;span style="color:#a6e22e">sound&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">console&lt;/span>.&lt;span style="color:#a6e22e">log&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Playing sound:&amp;#34;&lt;/span>, &lt;span style="color:#a6e22e">id&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">console&lt;/span>.&lt;span style="color:#a6e22e">log&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Stopping current sound&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This helps you &lt;strong>see what’s happening step by step&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h3 id="sound-design-modifications">Sound Design Modifications&lt;/h3>
&lt;p>Let&amp;rsquo;s make a few modifications to the sound design:&lt;/p>
&lt;h4 id="task-1-change-the-sound-categories">&lt;strong>Task 1: Change the Sound Categories&lt;/strong>&lt;/h4>
&lt;p>Modify this line in &lt;code>getRandomSound()&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-javascript" data-lang="javascript">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">queries&lt;/span> &lt;span style="color:#f92672">=&lt;/span> [&lt;span style="color:#e6db74">&amp;#34;dog&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;cat&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;water&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wind&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;fire&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;music&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;bird&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;rain&amp;#34;&lt;/span>];
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Challenge:&lt;/strong> Replace with different sound categories, such as:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-javascript" data-lang="javascript">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">queries&lt;/span> &lt;span style="color:#f92672">=&lt;/span> [&lt;span style="color:#e6db74">&amp;#34;bells&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;guitar&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;thunder&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;clapping&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;footsteps&amp;#34;&lt;/span>];
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then test how the changes affect the results.&lt;/p>
&lt;hr>
&lt;h4 id="task-2-modify-playback-behavior">&lt;strong>Task 2: Modify Playback Behavior&lt;/strong>&lt;/h4>
&lt;p>Find this part of the &lt;code>createTonePlayer()&lt;/code> function:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-javascript" data-lang="javascript">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">player&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">new&lt;/span> &lt;span style="color:#a6e22e">Tone&lt;/span>.&lt;span style="color:#a6e22e">Player&lt;/span>({
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">url&lt;/span>&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#a6e22e">url&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">autostart&lt;/span>&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#66d9ef">false&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}).&lt;span style="color:#a6e22e">toDestination&lt;/span>();
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Challenge:&lt;/strong> Modify playback settings by adding effects:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-javascript" data-lang="javascript">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">reverb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">new&lt;/span> &lt;span style="color:#a6e22e">Tone&lt;/span>.&lt;span style="color:#a6e22e">Reverb&lt;/span>().&lt;span style="color:#a6e22e">toDestination&lt;/span>();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">player&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">new&lt;/span> &lt;span style="color:#a6e22e">Tone&lt;/span>.&lt;span style="color:#a6e22e">Player&lt;/span>({
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">url&lt;/span>&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#a6e22e">url&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">autostart&lt;/span>&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#66d9ef">false&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}).&lt;span style="color:#a6e22e">connect&lt;/span>(&lt;span style="color:#a6e22e">reverb&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>&lt;strong>How does reverb change the sound?&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h3 id="task-3-add-a-loop-button">&lt;strong>Task 3: Add a Loop Button&lt;/strong>&lt;/h3>
&lt;p>Add a &lt;strong>looping feature&lt;/strong> to the player.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-javascript" data-lang="javascript">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">const&lt;/span> &lt;span style="color:#a6e22e">loopButton&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#a6e22e">createButton&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Loop&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">loopButton&lt;/span>.&lt;span style="color:#a6e22e">mousePressed&lt;/span>(() =&amp;gt; {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (&lt;span style="color:#a6e22e">currentPlayer&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">currentPlayer&lt;/span>.&lt;span style="color:#a6e22e">loop&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#f92672">!&lt;/span>&lt;span style="color:#a6e22e">currentPlayer&lt;/span>.&lt;span style="color:#a6e22e">loop&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">loopButton&lt;/span>.&lt;span style="color:#a6e22e">html&lt;/span>(&lt;span style="color:#a6e22e">currentPlayer&lt;/span>.&lt;span style="color:#a6e22e">loop&lt;/span> &lt;span style="color:#f92672">?&lt;/span> &lt;span style="color:#e6db74">&amp;#34;Stop Loop&amp;#34;&lt;/span> &lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#e6db74">&amp;#34;Loop&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>});
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Challenge:&lt;/strong> Add this to the &lt;code>container&lt;/code> so it appears in the UI.&lt;/p>
&lt;hr>
&lt;h3 id="task-4-change-the-sound-playback-speed">&lt;strong>Task 4: Change the Sound Playback Speed&lt;/strong>&lt;/h3>
&lt;p>Modify &lt;code>playSound()&lt;/code> to alter the playback speed:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-javascript" data-lang="javascript">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">currentPlayer&lt;/span>.&lt;span style="color:#a6e22e">playbackRate&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#a6e22e">random&lt;/span>(&lt;span style="color:#ae81ff">0.5&lt;/span>, &lt;span style="color:#ae81ff">2&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>How does speed affect pitch?&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="5-group-challenge-customizing-sound-effects">&lt;strong>5. Group Challenge: Customizing Sound Effects&lt;/strong>&lt;/h2>
&lt;p>Now, lets try a group challenge:&lt;/p>
&lt;p>See: &lt;a href="https://tonejs.github.io/docs/15.0.4/classes/Player.html">Player&lt;/a>&lt;/p>
&lt;ul>
&lt;li>Group 1: Add a &lt;strong>delay effect&lt;/strong> using &lt;code>Tone.FeedbackDelay()&lt;/code>.&lt;/li>
&lt;li>Group 2: Make sounds &lt;strong>fade in and out&lt;/strong> using the built in envelope on the &lt;code>Tone.Player&lt;/code>.&lt;/li>
&lt;li>Group 3: Play &lt;strong>multiple sounds at once&lt;/strong> in a sequence.&lt;/li>
&lt;li>Group 4: Alter the &lt;code>Tone.Player&lt;/code> start offset to play a different part of the sample.&lt;/li>
&lt;/ul>
&lt;p>Each group presents their changes and demonstrates the effect.&lt;/p></content></item><item><title>Freesound API Search</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-5/freesound-api-search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-5/freesound-api-search/</guid><description>Freesound API Search Example 1 - Text Search Example 2 - Content Search Example 3 - Combined</description><content>&lt;h1 id="freesound-api-search">Freesound API Search&lt;/h1>
&lt;h2 id="example-1---text-search">Example 1 - Text Search&lt;/h2>
&lt;!-- Copy and Paste Me -->
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/3-search-control-centroid?path=script.js&amp;previewSize=0"
title="3-search-control-centroid on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="example-2---content-search">Example 2 - Content Search&lt;/h2>
&lt;!-- Copy and Paste Me -->
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/4-content-search?path=script.js&amp;previewSize=0"
title="4-content-search on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="example-3---combined">Example 3 - Combined&lt;/h2>
&lt;!-- Copy and Paste Me -->
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/5-content-search-based-on-analysis?path=script.js&amp;previewSize=0"
title="5-content-search-based-on-analysis on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div></content></item><item><title>Interactive Machine Learning in Music</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-10/iml-resources/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-10/iml-resources/</guid><description>Resources for Interactive Machine Learning in Music Wekinator: Interactive Machine Learning for Artists Official Website: Access downloads, tutorials, and comprehensive guides. Wekinator Downloads Overview Step-by-Step Walkthrough Detailed Instructions: Learn how to set up communication between inputs, outputs, and Wekinator, and explore various application examples. Detailed Instructions Example Projects: Explore input and output examples compatible with Wekinator. Examples Tutorials and Courses Machine Learning for Musicians and Artists: An online course offering fundamental machine learning techniques applicable to real-time data in the arts.</description><content>&lt;h1 id="resources-for-interactive-machine-learning-in-music">Resources for Interactive Machine Learning in Music&lt;/h1>
&lt;h2 id="wekinator-interactive-machine-learning-for-artists">Wekinator: Interactive Machine Learning for Artists&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Official Website:&lt;/strong> Access downloads, tutorials, and comprehensive guides.
&lt;ul>
&lt;li>&lt;a href="http://www.wekinator.org/downloads/">Wekinator Downloads&lt;/a>&lt;/li>
&lt;li>&lt;a href="http://www.wekinator.org/instructions/">Overview&lt;/a>&lt;/li>
&lt;li>&lt;a href="http://www.wekinator.org/walkthrough/">Step-by-Step Walkthrough&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Detailed Instructions:&lt;/strong> Learn how to set up communication between inputs, outputs, and Wekinator, and explore various application examples.
&lt;ul>
&lt;li>&lt;a href="http://www.wekinator.org/detailed-instructions/">Detailed Instructions&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Example Projects:&lt;/strong> Explore input and output examples compatible with Wekinator.
&lt;ul>
&lt;li>&lt;a href="http://www.wekinator.org/examples/">Examples&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="tutorials-and-courses">Tutorials and Courses&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Machine Learning for Musicians and Artists:&lt;/strong> An online course offering fundamental machine learning techniques applicable to real-time data in the arts.
&lt;ul>
&lt;li>&lt;a href="https://www.kadenze.com/courses/machine-learning-for-musicians-and-artists/info">Kadenze Course&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Interactive Machine Learning for Music by Prof. Rebecca Fiebrink:&lt;/strong> A lecture discussing the application of interactive machine learning in music.
&lt;ul>
&lt;li>&lt;a href="https://www.youtube.com/watch?v=nQtG2uNazC0">YouTube Lecture&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>How to Run Wekinator Examples in Processing:&lt;/strong> A video tutorial demonstrating the execution of input and output examples for Wekinator using Processing.
&lt;ul>
&lt;li>&lt;a href="https://www.youtube.com/watch?v=bE2EimjdUmM">YouTube Tutorial&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="academic-papers-and-articles">Academic Papers and Articles&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Exploring the Potential of Interactive Machine Learning for Sound Design:&lt;/strong> This article presents the prototype ASCIML, allowing musicians to use IML to create personalized datasets and generate new sounds.
&lt;ul>
&lt;li>&lt;a href="https://nime.org/proc/nime2023_88/">Read the Article&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Integrating Machine Learning in Interactive Musical Works:&lt;/strong> Discusses systems using machine learning to interpret audio data in real-time, responding to musicians&amp;rsquo; actions.
&lt;ul>
&lt;li>&lt;a href="https://www.widsvillach.org/integrating-machine-learning-in-interactive-musical-works/">Read the Article&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="daw-specific-tools">DAW Specific Tools&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://www.maxforlive.com/library/device/5628/wekitrainer">WekiTrainer version 0.9 by moih on maxforlive.com&lt;/a>&lt;/li>
&lt;/ul></content></item><item><title>Sequencing with Tone.js</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-6/sequencing-with-tonejs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-6/sequencing-with-tonejs/</guid><description>Euclidean Rhythms This example demonstrates how to create rhythmic patterns using the Euclidean algorithm, which distributes a number of beats as evenly as possible across a given number of steps.
Random Walk Melody Generator This example shows how to generate melodies using a random walk algorithm.
L-System Music Generation This example uses Lindenmayer Systems (L-Systems) to generate musical patterns. L-Systems are a type of formal grammar that can create complex, organic-like structures through simple recursive rules.</description><content>&lt;h2 id="euclidean-rhythms">Euclidean Rhythms&lt;/h2>
&lt;p>This example demonstrates how to create rhythmic patterns using the Euclidean algorithm, which distributes a number of beats as evenly as possible across a given number of steps.&lt;/p>
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/tonejs-total-serialism-euclidian-rhythms?path=&amp;previewSize=0"
title="tonejs-total-serialism-euclidian-rhythms on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="random-walk-melody-generator">Random Walk Melody Generator&lt;/h2>
&lt;p>This example shows how to generate melodies using a random walk algorithm.&lt;/p>
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/tonejs-total-serialism-random-walk?path=README.md&amp;previewSize=0"
title="tonejs-total-serialism-random-walk on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="l-system-music-generation">L-System Music Generation&lt;/h2>
&lt;p>This example uses Lindenmayer Systems (L-Systems) to generate musical patterns. L-Systems are a type of formal grammar that can create complex, organic-like structures through simple recursive rules.&lt;/p>
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/tonejs-total-serialism-linden?path=README.md&amp;previewSize=0"
title="tonejs-total-serialism-linden on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="granular-synthesis">Granular Synthesis&lt;/h2>
&lt;p>This example showcases granular synthesis using Tone.js. Granular synthesis is a sound synthesis method that operates on microscopic pieces of sound (grains). This demo allows you to experiment with various parameters of granular synthesis in real-time.&lt;/p>
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/grainsynth-tonejs?path=script.js&amp;previewSize=0"
title="grainsynth-tonejs on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div></content></item><item><title>Wekinator to Reaper</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-8/wek-reaper/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-8/wek-reaper/</guid><description>Download Processing and run this code. This code listens for OSC messages from Wekinator and forwards them to Reaper. It also splits them into individual parameters and only sends them if they have changed beyond a certain threshold. This is useful for controlling individual parameters in Reaper, such as volume, pan, or effects.
import oscP5.*; import netP5.*; OscP5 oscP5; NetAddress reaperDest; // Reaper destination float[] lastValues; float threshold = 0.001; // Minimum change required to send an update void setup() { size(400, 200); // Start listening for OSC messages on port 12000 (per Wekinator settings) oscP5 = new OscP5(this, 12000); // Set Reaper as the OSC destination (default port for Reaper OSC input is 8000) reaperDest = new NetAddress(&amp;#34;127.</description><content>&lt;p>Download &lt;a href="https://processing.org">Processing&lt;/a> and run this code. This code listens for OSC messages from Wekinator and forwards them to Reaper. It also splits them into individual parameters and only sends them if they have changed beyond a certain threshold. This is useful for controlling individual parameters in Reaper, such as volume, pan, or effects.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> oscP5.*;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> netP5.*;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>OscP5 oscP5;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>NetAddress reaperDest; &lt;span style="color:#75715e">// Reaper destination&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">float&lt;/span>&lt;span style="color:#f92672">[]&lt;/span> lastValues;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">float&lt;/span> threshold &lt;span style="color:#f92672">=&lt;/span> 0.&lt;span style="color:#a6e22e">001&lt;/span>; &lt;span style="color:#75715e">// Minimum change required to send an update&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">void&lt;/span> &lt;span style="color:#a6e22e">setup&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> size(400, 200);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">// Start listening for OSC messages on port 12000 (per Wekinator settings)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> oscP5 &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">new&lt;/span> OscP5(&lt;span style="color:#66d9ef">this&lt;/span>, 12000);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">// Set Reaper as the OSC destination (default port for Reaper OSC input is 8000)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> reaperDest &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">new&lt;/span> NetAddress(&lt;span style="color:#e6db74">&amp;#34;127.0.0.1&amp;#34;&lt;/span>, 8000);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#e6db74">&amp;#34;Listening for OSC messages on port 12000...&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#e6db74">&amp;#34;Forwarding processed messages to Reaper on port 8000...&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">void&lt;/span> &lt;span style="color:#a6e22e">draw&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> background(0);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fill(255);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> text(&lt;span style="color:#e6db74">&amp;#34;Receiving OSC from Wekinator on port 12000...&amp;#34;&lt;/span>, 20, 50);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> text(&lt;span style="color:#e6db74">&amp;#34;Sending OSC to Reaper on port 8000...&amp;#34;&lt;/span>, 20, 70);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// Handle incoming OSC messages from Wekinator&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">void&lt;/span> &lt;span style="color:#a6e22e">oscEvent&lt;/span>(OscMessage msg) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (msg.&lt;span style="color:#a6e22e">checkAddrPattern&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;/wek/outputs&amp;#34;&lt;/span>)) { &lt;span style="color:#75715e">// Match Wekinator&amp;#39;s output path&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#e6db74">&amp;#34;Received OSC: &amp;#34;&lt;/span> &lt;span style="color:#f92672">+&lt;/span> msg);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">int&lt;/span> numParams &lt;span style="color:#f92672">=&lt;/span> msg.&lt;span style="color:#a6e22e">arguments&lt;/span>().&lt;span style="color:#a6e22e">length&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (lastValues &lt;span style="color:#f92672">==&lt;/span> &lt;span style="color:#66d9ef">null&lt;/span> &lt;span style="color:#f92672">||&lt;/span> lastValues.&lt;span style="color:#a6e22e">length&lt;/span> &lt;span style="color:#f92672">!=&lt;/span> numParams) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> lastValues &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">new&lt;/span> &lt;span style="color:#66d9ef">float&lt;/span>&lt;span style="color:#f92672">[&lt;/span>numParams&lt;span style="color:#f92672">]&lt;/span>; &lt;span style="color:#75715e">// Initialize if necessary&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">// Parse each value and send only if it has changed beyond the threshold&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">for&lt;/span> (&lt;span style="color:#66d9ef">int&lt;/span> i &lt;span style="color:#f92672">=&lt;/span> 0; i &lt;span style="color:#f92672">&amp;lt;&lt;/span> numParams; i&lt;span style="color:#f92672">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">float&lt;/span> value &lt;span style="color:#f92672">=&lt;/span> msg.&lt;span style="color:#a6e22e">get&lt;/span>(i).&lt;span style="color:#a6e22e">floatValue&lt;/span>();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> (abs(value &lt;span style="color:#f92672">-&lt;/span> lastValues&lt;span style="color:#f92672">[&lt;/span>i&lt;span style="color:#f92672">]&lt;/span>) &lt;span style="color:#f92672">&amp;gt;&lt;/span> threshold) { &lt;span style="color:#75715e">// Only send if value has changed&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#e6db74">&amp;#34;Value &amp;#34;&lt;/span> &lt;span style="color:#f92672">+&lt;/span> (i &lt;span style="color:#f92672">+&lt;/span> 1) &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#e6db74">&amp;#34; changed: &amp;#34;&lt;/span> &lt;span style="color:#f92672">+&lt;/span> value);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sendToReaper(i &lt;span style="color:#f92672">+&lt;/span> 1, value);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> lastValues&lt;span style="color:#f92672">[&lt;/span>i&lt;span style="color:#f92672">]&lt;/span> &lt;span style="color:#f92672">=&lt;/span> value; &lt;span style="color:#75715e">// Update last known value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// Send an OSC message to Reaper&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">void&lt;/span> &lt;span style="color:#a6e22e">sendToReaper&lt;/span>(&lt;span style="color:#66d9ef">int&lt;/span> parameterIndex, &lt;span style="color:#66d9ef">float&lt;/span> value) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> String oscAddress &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#34;/wek/param&amp;#34;&lt;/span> &lt;span style="color:#f92672">+&lt;/span> parameterIndex;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> OscMessage reaperMsg &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#66d9ef">new&lt;/span> OscMessage(oscAddress);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> reaperMsg.&lt;span style="color:#a6e22e">add&lt;/span>(value);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> oscP5.&lt;span style="color:#a6e22e">send&lt;/span>(reaperMsg, reaperDest);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#e6db74">&amp;#34;Sent to Reaper: &amp;#34;&lt;/span> &lt;span style="color:#f92672">+&lt;/span> oscAddress &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#e6db74">&amp;#34; -&amp;gt; &amp;#34;&lt;/span> &lt;span style="color:#f92672">+&lt;/span> value);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then, setup your Reaper settings like this:&lt;/p>
&lt;p>&lt;img alt="alt text" src="../reaper-osc.png">&lt;/p></content></item><item><title>Word2vec Intro</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-2/word2vec-intro/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/week-2/word2vec-intro/</guid><description>Introduction to Word2vec Word2vec is a technique for creating word vectors, which are numerical representations of words. These vectors capture the semantic relationships between words, allowing us to perform operations like word similarity and analogy. Distance in the vector space corresponds to similarity between words. Words that are close together in the vector space are similar in meaning. example: &amp;ldquo;king&amp;rdquo; and &amp;ldquo;queen&amp;rdquo; are close together, while &amp;ldquo;king&amp;rdquo; and &amp;ldquo;car&amp;rdquo; are far apart.</description><content>&lt;h2 id="introduction-to-word2vec">Introduction to Word2vec&lt;/h2>
&lt;ul>
&lt;li>Word2vec is a technique for creating word vectors, which are numerical representations of words. These vectors capture the semantic relationships between words, allowing us to perform operations like word similarity and analogy.&lt;/li>
&lt;li>Distance in the vector space corresponds to similarity between words. Words that are close together in the vector space are similar in meaning.
&lt;ul>
&lt;li>example: &amp;ldquo;king&amp;rdquo; and &amp;ldquo;queen&amp;rdquo; are close together, while &amp;ldquo;king&amp;rdquo; and &amp;ldquo;car&amp;rdquo; are far apart.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="documentation-and-resources">Documentation and Resources&lt;/h2>
&lt;ul>
&lt;li>Tone.js
&lt;ul>
&lt;li>&lt;a href="https://tonejs.github.io/">tone.js&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://tonejs.github.io/docs/15.0.4/index.html">tone.js - API&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.guitarland.com/MusicTheoryWithToneJS/Presets-gh-pages/">Presets&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://tonejs.github.io/docs/15.0.4/classes/OmniOscillator.html#type">Oscillator type&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>word2vec
&lt;ul>
&lt;li>&lt;a href="https://en.wikipedia.org/wiki/Word2vec">Word2vec&lt;/a> - Wikipedia&lt;/li>
&lt;li>&lt;a href="https://archive-docs.ml5js.org/#/reference/word2vec">ml5.js word2vec&lt;/a> - ml5.js Word2Vec&lt;/li>
&lt;li>Allison Parrish&amp;rsquo;s &lt;a href="https://gist.github.com/aparrish/2f562e3737544cf29aaf1af30362f469">word2vec tutorial&lt;/a> - a great resource for understanding word2vec&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="step-1-basic-word-display">Step 1: Basic Word Display&lt;/h2>
&lt;p>Let&amp;rsquo;s start with the simplest version - displaying a word and finding related words using word2vec. This establishes our foundation. This first step introduces the core concepts of&lt;/p>
&lt;ul>
&lt;li>Setting up a basic p5.js canvas&lt;/li>
&lt;li>Loading the word2vec model&lt;/li>
&lt;li>Creating a simple user interface&lt;/li>
&lt;li>Finding and displaying related words&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Try running this code and enter different words to see their associations. Notice how we&amp;rsquo;re just randomly positioning the related words on the canvas for now.&lt;/p>
&lt;/blockquote>
&lt;!-- Copy and Paste Me -->
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/1-basic-waveform-word2vec?path=TODO.md&amp;previewSize=0"
title="1-basic-waveform-word2vec on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="step-2-adding-basic-sound">Step 2: Adding Basic Sound&lt;/h2>
&lt;p>Now let&amp;rsquo;s add our first synthesizer to create sound when words appear. We&amp;rsquo;ll start with just a simple melody synth. to open codeIn this second step, we&amp;rsquo;ve added:&lt;/p>
&lt;ul>
&lt;li>A basic synthesizer using Tone.js&lt;/li>
&lt;li>A mapping between word similarity and musical notes&lt;/li>
&lt;li>Sequential playback of notes as words appear&lt;/li>
&lt;li>Visual sizing of words based on their similarity&lt;/li>
&lt;/ul>
&lt;p>The words now play notes when they appear, with more similar words playing higher notes. Try different words and notice how the sound helps represent the semantic relationships.&lt;/p>
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/2-adding-basic-sound?path=script.js&amp;previewSize=0"
title="2-adding-basic-sound on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="step-3-adding-chords-and-effects">Step 3: Adding Chords and Effects&lt;/h2>
&lt;p>Let&amp;rsquo;s enhance the musical experience by adding chord progressions and audio effects.UntitledClick to open codeIn this third step, we&amp;rsquo;ve added:&lt;/p>
&lt;ul>
&lt;li>A chord progression that cycles continuously&lt;/li>
&lt;li>Reverb and delay effects for depth&lt;/li>
&lt;li>Fade-out animations for the words&lt;/li>
&lt;li>Rhythmic variations in the melody&lt;/li>
&lt;/ul>
&lt;p>Notice how the chords create a harmonic foundation while the melody notes dance on top. The audio effects add space and atmosphere to the sound.&lt;/p>
&lt;!-- Copy and Paste Me -->
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/3-adding-chords-and-effects?path=script.js&amp;previewSize=0"
title="3-adding-chords-and-effects on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div>
&lt;h2 id="step-4-the-final-poetry-generator">Step 4: The Final Poetry Generator&lt;/h2>
&lt;p>Now we&amp;rsquo;re ready to combine everything into the final poetry generator. You can find this complete version in the original code, which adds:&lt;/p>
&lt;ul>
&lt;li>Structured poetry generation with stanzas and lines&lt;/li>
&lt;li>More sophisticated word selection&lt;/li>
&lt;li>Coordinated visual and musical elements&lt;/li>
&lt;li>Advanced animation effects&lt;/li>
&lt;/ul>
&lt;p>Each step builds upon the previous one, helping you understand how the pieces fit together. Try running each version, experiment with the code, and make your own modifications. You might:&lt;/p>
&lt;ul>
&lt;li>Change the chord progression for a different mood&lt;/li>
&lt;li>Modify the animation effects&lt;/li>
&lt;li>Adjust the timing of word generation&lt;/li>
&lt;li>Create different visual layouts&lt;/li>
&lt;li>Experiment with different synthesizer settings&lt;/li>
&lt;/ul>
&lt;!-- Copy and Paste Me -->
&lt;div class="glitch-embed-wrap" style="height: 420px; width: 100%;">
&lt;iframe
src="https://glitch.com/embed/#!/embed/4-everything-together-word2vec?path=&amp;previewSize=0"
title="4-everything-together-word2vec on Glitch"
allow="geolocation; microphone; camera; midi; encrypted-media; xr-spatial-tracking; fullscreen"
allowFullScreen
style="height: 100%; width: 100%; border: 0;">
&lt;/iframe>
&lt;/div></content></item><item><title>Word2vec Sound Poetry</title><link>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/etudes/etude-1-word2vec/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dsu-digital-sound-design.github.io/s-25-dad-492-topics-ai-music/lectures/etudes/etude-1-word2vec/</guid><description>Sonic Poetry Generator - One Week Assignment Overview In this week-long assignment, you will create a sonic poetry generator that explores the relationship between words and sound. Building upon our in-class examples, you will implement one musical extension that demonstrates your understanding of synthesis, sound design, or music theory.
Core Requirements Basic Implementation (Required) Load and use the word2vec model to find related words Create a basic melody system Display words on screen with animation Include start/stop functionality Handle errors appropriately Musical Extension (Choose One) Select one of these extensions to enhance the sonic qualities of your generator.</description><content>&lt;h1 id="sonic-poetry-generator---one-week-assignment">Sonic Poetry Generator - One Week Assignment&lt;/h1>
&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>In this week-long assignment, you will create a sonic poetry generator that explores the relationship between words and sound. Building upon our in-class examples, you will implement one musical extension that demonstrates your understanding of synthesis, sound design, or music theory.&lt;/p>
&lt;h2 id="core-requirements">Core Requirements&lt;/h2>
&lt;h3 id="basic-implementation-required">Basic Implementation (Required)&lt;/h3>
&lt;ol>
&lt;li>Load and use the word2vec model to find related words&lt;/li>
&lt;li>Create a basic melody system&lt;/li>
&lt;li>Display words on screen with animation&lt;/li>
&lt;li>Include start/stop functionality&lt;/li>
&lt;li>Handle errors appropriately&lt;/li>
&lt;/ol>
&lt;h3 id="musical-extension-choose-one">Musical Extension (Choose One)&lt;/h3>
&lt;p>Select one of these extensions to enhance the sonic qualities of your generator. Each option emphasizes different aspects of sound design and music theory.&lt;/p>
&lt;h4 id="extension-1-timbre-evolution">Extension 1: Timbre Evolution&lt;/h4>
&lt;p>Create meaningful relationships between words and synthesizer timbre. This extension is ideal if you understand sound synthesis basics and how different waveforms and envelope settings create distinct tonal qualities.&lt;/p>
&lt;p>Implementation guidance:&lt;/p>
&lt;ul>
&lt;li>Start by modifying the oscillator type between sine and triangle for different words&lt;/li>
&lt;li>Experiment with attack and release times to create different note characteristics&lt;/li>
&lt;li>Consider how word relationships might map to timbral qualities (e.g., similar words = warm tones, distant words = bright tones)&lt;/li>
&lt;/ul>
&lt;h4 id="extension-2-musical-intervals">Extension 2: Musical Intervals&lt;/h4>
&lt;p>Design melodic relationships using specific musical intervals based on word relationships. This extension works well if you have a strong understanding of music theory and how different intervals create various emotional qualities.&lt;/p>
&lt;p>Implementation guidance:&lt;/p>
&lt;ul>
&lt;li>Begin with simple mappings like major thirds for similar words&lt;/li>
&lt;li>Add minor intervals for more distant relationships&lt;/li>
&lt;li>Create small collections of intervals that work well together&lt;/li>
&lt;li>Consider using pentatonic scales to ensure pleasant combinations&lt;/li>
&lt;/ul>
&lt;h4 id="extension-3-effects-processing">Extension 3: Effects Processing&lt;/h4>
&lt;p>Create an evolving sonic space using audio effects. This extension is appropriate if you understand reverb, delay, and how they contribute to sound design.&lt;/p>
&lt;p>Implementation guidance:&lt;/p>
&lt;ul>
&lt;li>Start with subtle reverb adjustments&lt;/li>
&lt;li>Add delay for more distant word relationships&lt;/li>
&lt;li>Keep effect levels moderate to maintain clarity&lt;/li>
&lt;li>Consider how the space changes with different word combinations&lt;/li>
&lt;/ul>
&lt;h2 id="development-schedule">Development Schedule&lt;/h2>
&lt;h3 id="day-1-2-core-setup">Day 1-2: Core Setup&lt;/h3>
&lt;ul>
&lt;li>Get the basic word generation working&lt;/li>
&lt;li>Implement fundamental audio playback&lt;/li>
&lt;/ul>
&lt;h3 id="day-3-4-basic-sonification">Day 3-4: Basic Sonification&lt;/h3>
&lt;ul>
&lt;li>Create simple melody system&lt;/li>
&lt;li>Ensure audio triggers correctly with words&lt;/li>
&lt;/ul>
&lt;h3 id="day-5-6-musical-extension">Day 5-6: Musical Extension&lt;/h3>
&lt;ul>
&lt;li>Implement your chosen extension&lt;/li>
&lt;li>Test different parameter settings&lt;/li>
&lt;/ul>
&lt;h3 id="day-7-refinement">Day 7: Refinement&lt;/h3>
&lt;ul>
&lt;li>Adjust and fine-tune your sound design&lt;/li>
&lt;li>Document your creative decisions&lt;/li>
&lt;/ul>
&lt;h2 id="assessment-rubric-15-points">Assessment Rubric (15 points)&lt;/h2>
&lt;h3 id="core-functionality-7-points">Core Functionality (7 points)&lt;/h3>
&lt;ul>
&lt;li>Word generation works correctly (2 points)&lt;/li>
&lt;li>Basic audio plays reliably (2 points)&lt;/li>
&lt;li>Visual display functions (2 points)&lt;/li>
&lt;li>Start/stop works properly (1 point)&lt;/li>
&lt;/ul>
&lt;h3 id="musical-extension-5-points">Musical Extension (5 points)&lt;/h3>
&lt;ul>
&lt;li>Sonic implementation (2 points)&lt;/li>
&lt;li>Musical effectiveness (2 points)&lt;/li>
&lt;li>Creative use of parameters (1 point)&lt;/li>
&lt;/ul>
&lt;h3 id="documentation-and-process-3-points">Documentation and Process (3 points)&lt;/h3>
&lt;ul>
&lt;li>Documentation of musical choices (1 point)&lt;/li>
&lt;li>Clear explanation of parameters (1 point)&lt;/li>
&lt;li>Thoughtful sound design decisions (1 point)&lt;/li>
&lt;/ul>
&lt;h2 id="submission-requirements">Submission Requirements&lt;/h2>
&lt;ol>
&lt;li>Your code with clear comments explaining audio parameters&lt;/li>
&lt;li>A brief write-up explaining:
&lt;ul>
&lt;li>Which extension you chose and why&lt;/li>
&lt;li>How your sound design relates to word relationships&lt;/li>
&lt;li>Your musical decision-making process&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>A short video demonstration with audio (1-2 minutes)&lt;/li>
&lt;/ol>
&lt;h2 id="tips-for-success">Tips for Success&lt;/h2>
&lt;ul>
&lt;li>Focus on making meaningful sonic relationships&lt;/li>
&lt;li>Keep your parameter changes moderate and musical&lt;/li>
&lt;li>Test your sounds with different words&lt;/li>
&lt;li>Document which parameter settings worked best&lt;/li>
&lt;li>Consider the overall musical experience&lt;/li>
&lt;li>Make intentional choices about your sound design&lt;/li>
&lt;/ul>
&lt;p>Remember that your grade will focus more on thoughtful sound design and musical choices than on coding complexity. Take time to experiment with different parameters and document what works best for your artistic goals.&lt;/p></content></item></channel></rss>