172 lines
7.7 KiB
HTML
172 lines
7.7 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>MIDI Breadboard Instrument — Projects — Ertunç Özbay</title>
|
||
<meta name="description" content="Project notes for the MIDI Breadboard Instrument by Ertunç Özbay: playing MIDI melodies via C code on a breadboard with buzzers, a 1.3-inch AMOLED display, and rotary encoder.">
|
||
<link rel="icon" type="image/svg+xml" href="../assets/images/favicon.svg">
|
||
<link rel="stylesheet" href="../assets/css/style.css">
|
||
</head>
|
||
<body>
|
||
<a class="skip-link" href="#main-content">Skip to main content</a>
|
||
|
||
<header class="site-header">
|
||
<div class="container header-inner">
|
||
<a class="site-brand" href="../index.html">
|
||
<span class="brand-mark" aria-hidden="true">EÖ</span>
|
||
<span>
|
||
Ertunç Özbay
|
||
<span class="brand-subtitle">workshop // notebook // lab</span>
|
||
</span>
|
||
</a>
|
||
|
||
<button class="nav-toggle" type="button" data-nav-toggle aria-expanded="false" aria-controls="primary-navigation">
|
||
<span aria-hidden="true">☰</span>
|
||
<span data-nav-label>Menu</span>
|
||
</button>
|
||
|
||
<nav id="primary-navigation" class="site-nav" data-site-nav aria-label="Main navigation">
|
||
<ul class="nav-list">
|
||
<li><a class="nav-link" href="../index.html">Home</a></li>
|
||
<li><a class="nav-link" href="../about.html">About</a></li>
|
||
<li><a class="nav-link" href="../projects/index.html" aria-current="page">Projects</a></li>
|
||
<li><a class="nav-link" href="../blog/index.html">Blog</a></li>
|
||
<li><a class="nav-link" href="../lab.html">Lab</a></li>
|
||
<li><a class="nav-link" href="../contact.html">Contact</a></li>
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="main-content">
|
||
<div class="container">
|
||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||
<a href="index.html">← Back to Projects</a>
|
||
</nav>
|
||
|
||
<article>
|
||
<header class="workshop-hero">
|
||
<div class="card-meta">
|
||
<span class="badge badge-experimental">Status: In progress / Experimental</span>
|
||
<span>Project 03 // Breadboard Hardware, C Code & Music</span>
|
||
</div>
|
||
<h1>MIDI Breadboard Instrument</h1>
|
||
<p class="hero-lead">
|
||
A breadboard-based project that plays MIDI melodies by converting MIDI data into C code for the device.
|
||
</p>
|
||
<p class="reading-width">
|
||
The hardware currently includes two active buzzers, one passive buzzer, a rotary encoder, a 1.3-inch AMOLED display, two buttons, and two LEDs.
|
||
</p>
|
||
<div class="button-row">
|
||
<a class="btn btn-secondary" href="index.html">All Projects</a>
|
||
<a class="btn btn-secondary" href="../lab.html">See Lab Experiments</a>
|
||
</div>
|
||
</header>
|
||
|
||
<figure class="schematic-frame" aria-label="MIDI Breadboard Instrument Component Diagram">
|
||
<img src="../assets/images/midi-breadboard-layout.svg" alt="Block diagram of the MIDI Breadboard Instrument showing the MIDI conversion script producing C code for the breadboard system, connected to two active buzzers, one passive buzzer, a 1.3-inch AMOLED screen, one rotary encoder, two buttons, and two LEDs." width="760" height="320">
|
||
<figcaption class="schematic-caption">
|
||
Confirmed software-to-hardware workflow and component list for the MIDI Breadboard Instrument.
|
||
</figcaption>
|
||
</figure>
|
||
|
||
<section class="section-block reading-width" aria-labelledby="p3-overview">
|
||
<span class="section-label">01 // Overview</span>
|
||
<h2 id="p3-overview">Combining Hardware, Software, and Creativity</h2>
|
||
<p>
|
||
This project represents the kind of work I enjoy most: combining hardware, software, music, experimentation, and creativity in a practical and unusual system on a breadboard.
|
||
</p>
|
||
<p>
|
||
To get melodies onto the hardware, I wrote a script that converts MIDI data into C code for the device. That generated C code drives the breadboard setup to play MIDI sounds while providing physical controls and visual feedback.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="section-block reading-width" aria-labelledby="p3-components">
|
||
<span class="section-label">02 // Confirmed Hardware & Software</span>
|
||
<h2 id="p3-components">Confirmed Components on the Breadboard</h2>
|
||
<table class="spec-table">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Component / Layer</th>
|
||
<th scope="col">Confirmed Specification</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>Conversion Workflow</strong></td>
|
||
<td>Custom script that converts MIDI data into C code for the device</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Device Code Output</strong></td>
|
||
<td>C code</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Active Sound Components</strong></td>
|
||
<td>2 × Active buzzers</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Passive Sound Component</strong></td>
|
||
<td>1 × Passive buzzer</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Display</strong></td>
|
||
<td>1 × 1.3-inch AMOLED screen</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Rotational Input</strong></td>
|
||
<td>1 × Rotary encoder</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Push Inputs</strong></td>
|
||
<td>2 × Buttons</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Visual Indicators</strong></td>
|
||
<td>2 × LEDs</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Additional Circuit Details</strong></td>
|
||
<td>Details will be documented as the project develops.</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
|
||
<section class="section-block reading-width" aria-labelledby="p3-learning">
|
||
<span class="section-label">03 // Workshop Notes</span>
|
||
<h2 id="p3-learning">What I Am Currently Learning & Next Steps</h2>
|
||
<div class="callout-box">
|
||
<span class="callout-title">What I Am Currently Learning</span>
|
||
<p>
|
||
How data conversion scripts bridge file formats (like MIDI) into low-level C structures, and how multiple physical outputs (two active buzzers, one passive buzzer, two LEDs, and a 1.3-inch AMOLED screen) can be coordinated alongside user inputs (a rotary encoder and two buttons).
|
||
</p>
|
||
<span class="callout-title">Next Step</span>
|
||
<p style="margin-bottom:0;">
|
||
Documenting how the MIDI-to-C conversion script formats note events and adding further hardware notes as the breadboard prototype evolves.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
</article>
|
||
|
||
</div>
|
||
</main>
|
||
|
||
<footer class="site-footer">
|
||
<div class="container footer-inner">
|
||
<div>
|
||
<strong>Ertunç Özbay</strong> — Personal workshop, project lab, and learning notebook.
|
||
</div>
|
||
<ul class="footer-links" aria-label="Footer links">
|
||
<li><a href="../projects/index.html">Projects</a></li>
|
||
<li><a href="../blog/index.html">Blog</a></li>
|
||
<li><a href="../lab.html">Lab</a></li>
|
||
<li><a href="../contact.html">Contact</a></li>
|
||
<li><a href="https://github.com/ertunc-ozbay" rel="noopener noreferrer">GitHub</a></li>
|
||
</ul>
|
||
</div>
|
||
</footer>
|
||
|
||
<script src="../assets/js/main.js"></script>
|
||
</body>
|
||
</html>
|