Chapter 1

What is Code?

Learning Objectives

  • Understand what programming code actually is
  • Learn how computers execute instructions
  • Grasp the relationship between code and software
  • See how MixMind is built from code

What is Code?

Code is a set of instructions that tells a computer exactly what to do. Think of it like a recipe, but instead of cooking food, you're "cooking" behavior. Each line of code is a precise instruction that the computer follows step-by-step.

The Cooking Analogy

Imagine you're teaching someone to make a sandwich who has never seen food before. You'd need to be incredibly specific:

1. Take two slices of bread
2. Place them on a plate
3. Open the peanut butter jar
4. Use a knife to scoop out peanut butter
5. Spread it on one slice of bread
6. Repeat steps 3-5 for the second slice
7. Press the two slices together
8. Your sandwich is ready

This is essentially what code does—but for computers. Instead of making sandwiches, we might be processing audio, displaying graphics, or calculating beat matches.

Why Computers Need Code

Computers are incredibly fast but incredibly "dumb." They can only do exactly what they're told, nothing more. They don't understand concepts like "make a sandwich" or "mix these songs together." They need every single step spelled out.

💡 Key Insight:

A computer has no intelligence or understanding. It just follows instructions at lightning speed. The "intelligence" of software like MixMind comes entirely from how cleverly the instructions are written.

Programming Languages

Just as humans speak different languages (English, Spanish, French), there are many programming languages. Each has its own syntax (grammar) and is suited for different tasks:

Language Used For MixMind Uses It?
JavaScript Websites, web apps, browser-based software ✓ Primary language
HTML Structuring web pages ✓ User interface
CSS Styling web pages ✓ Visual design
Python Data science, machine learning, backend ✗ Not used directly
C/C++ High-performance software, games ✗ Compiled to WebAssembly
WebAssembly (WASM) High-performance web code ✓ Stem separation engine

Why MixMind Uses JavaScript

MixMind runs in your web browser, so it needs to use languages that browsers understand. JavaScript is the primary programming language of the web. It's the only language that can run directly in browsers without plugins.

However, JavaScript isn't always fast enough for heavy number-crunching like audio processing. That's where WebAssembly comes in—it lets us run code written in C++ at near-native speeds in the browser.

How MixMind Uses Code

When you open MixMind in your browser, here's what happens:

  1. HTML creates the structure (buttons, upload areas, visualizers)
  2. CSS makes it look good (dark theme, animations, layout)
  3. JavaScript makes it interactive (file uploads, analysis, playback)
  4. WebAssembly handles the heavy lifting (stem separation, audio processing)

All of these work together to create the MixMind experience.

How Code Becomes Software

Code starts as text files that humans write and read. But computers don't understand text—they understand binary (1s and 0s). So there's a translation step:

Human writes code
→
Code is translated
→
Computer executes

The translation method depends on the language:

  • Interpreted languages (JavaScript): Translated line-by-line as the program runs
  • Compiled languages (C++): Translated all at once before running, creating a binary file
  • Hybrid (WebAssembly): Compiled to a special format that browsers can execute quickly

Example: JavaScript Execution

When you open MixMind, your browser:

  1. Downloads the HTML file (the structure)
  2. Downloads the CSS file (the styles)
  3. Downloads the JavaScript files (the logic)
  4. Starts executing the JavaScript
  5. JavaScript tells the browser what to display and how to respond to your actions
// Example: Simple JavaScript that MixMind might use
function greetUser(name) {
    console.log("Hello, " + name + "!");
    console.log("Welcome to MixMind");
}

greetUser("DJ"); 
// This would print:
// Hello, DJ!
// Welcome to MixMind

Types of Software

Software generally falls into categories based on where it runs:

Type Where It Runs Example
Native Apps Your computer's operating system Photoshop, Spotify desktop app
Web Apps Your web browser Gmail, Google Docs, MixMind
Mobile Apps Phone/tablet operating system Instagram, TikTok
Server Software Remote computers (servers) Netflix backend, banking systems
🎵 MixMind is a Web App

This is crucial because it means:

  • Runs in any modern browser (Chrome, Firefox, Safari, Edge)
  • No installation required—just visit the URL
  • Works on any device with a browser
  • All processing happens in YOUR browser (privacy-friendly!)
  • Limited by what browsers can do

The Development Process

Creating software like MixMind involves several steps:

  1. Planning: Decide what features to build and how they'll work
  2. Design: Plan the user interface and user experience
  3. Coding: Write the actual code (what you'll learn in this guide)
  4. Testing: Make sure everything works correctly
  5. Deployment: Put the software online where users can access it
  6. Maintenance: Fix bugs and add new features over time

MixMind's Development Journey

MixMind went through all these phases:

  • Planning: "I want to create an AI DJ that can mix songs automatically and separate stems"
  • Design: Sketching the interface, planning the workflow (upload → analyze → mix → export)
  • Coding: Writing thousands of lines of JavaScript, HTML, CSS
  • Testing: Trying it with real songs, fixing bugs, improving algorithms
  • Deployment: Putting it on Cloudflare Pages so you can access it
  • Maintenance: Fixing the errors you encountered (WASM loading, download bugs)

Exercise 1.1: See Code in Action

Goal: Understand that websites are made of code

  1. Open your web browser
  2. Go to any website (try google.com)
  3. Right-click anywhere on the page
  4. Select "View Page Source" or "View Source"
  5. You'll see the HTML code that makes up that page!

Questions to think about:

  • Can you spot any familiar words like "head", "body", "div"?
  • Do you see any <style> tags? (That's CSS)
  • Do you see any <script> tags? (That's JavaScript)

Exercise 1.2: Open Developer Tools

Goal: See the live code running in your browser

  1. Go to mixmind.pages.dev
  2. Press F12 (or right-click → "Inspect" or "Inspect Element")
  3. Click on the "Console" tab
  4. You'll see logs from MixMind running!
  5. Try clicking the "Elements" tab to see the HTML structure
  6. Try the "Sources" tab to see the actual JavaScript files

What you're seeing: This is the actual code that powers MixMind, running live in your browser.

📝 Quick Reference:
  • Code: Instructions that tell computers what to do
  • Programming Language: A specific syntax for writing code
  • JavaScript: The language MixMind primarily uses
  • Web App: Software that runs in a browser
  • Execution: When the computer actually runs the code

Summary

In this chapter, you learned:

  • Code is a set of precise instructions for computers
  • Different programming languages exist for different purposes
  • MixMind uses JavaScript (with WebAssembly for performance)
  • Code goes through translation before computers can execute it
  • Web apps run in browsers and have specific advantages/limitations
  • You can view the code of any website using browser developer tools
🎯 What's Next?

Now that you understand what code is, in the next chapter you'll learn HTML—the language that structures web pages. You'll see how MixMind's interface is built from HTML elements.