205 lines
6.5 KiB
HTML
205 lines
6.5 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
|
|
<title>Prezentacja projektu B+R: Harmonia</title>
|
|
|
|
<link rel="stylesheet" href="dist/reset.css">
|
|
<link rel="stylesheet" href="dist/reveal.css">
|
|
<link rel="stylesheet" href="dist/theme/solarized.css">
|
|
|
|
<!-- Theme used for syntax highlighted code -->
|
|
<link rel="stylesheet" href="plugin/highlight/monokai.css">
|
|
</head>
|
|
<body>
|
|
<div class="reveal">
|
|
<div class="slides">
|
|
<section>
|
|
<h3>Harmonia</h3>
|
|
<p>
|
|
Środowisko synchronicznego wykonywania<br />
|
|
utworów muzyki algorytmicznej
|
|
</p>
|
|
</section>
|
|
<section>
|
|
<section data-auto-animate>
|
|
<h2>Problem</h2>
|
|
<p>
|
|
Orkiestry laptopowe mają ograniczone możliwości ekspresji muzycznej
|
|
</p>
|
|
<!--
|
|
<table>
|
|
<tr>
|
|
<th></th>
|
|
<th>Klasyczna</th>
|
|
<th>Laptopowa</th>
|
|
</tr>
|
|
<tr class="fragment">
|
|
<th>Notacja</th>
|
|
<td>zapis nutowy</td>
|
|
<td>języki programowania, DAW</td>
|
|
</tr>
|
|
<tr class="fragment">
|
|
<th>Adaptacyjność</th>
|
|
<td>pełna</td>
|
|
<td>ograniczona</td>
|
|
</tr>
|
|
<tr class="fragment">
|
|
<th>Kontrola nad wykonaniem</th>
|
|
<td>bezpośrednia</td>
|
|
<td>pośrednia / brak</td>
|
|
</tr>
|
|
</table>
|
|
-->
|
|
</section>
|
|
<section data-auto-animate>
|
|
<h2>Problem</h2>
|
|
<div style="display: flex; gap: 1em">
|
|
<img style="width: 100%" src="classical_sheet.png" alt="sheet music with multiple concurrent parts" />
|
|
<img style="width: 100%" src="laptop_sheet.png" alt="sheet music with multiple concurrent parts" />
|
|
</div>
|
|
</section>
|
|
<section data-auto-animate>
|
|
<h2>Problem</h2>
|
|
<ul>
|
|
<li>Rozpoczęty utwór nie można wyrównać do orkiestry
|
|
= konieczność idealnie równego startu</li>
|
|
<br />
|
|
<span class="fragment">
|
|
<li>Wyklucza to utwory wymagające odpowiednich współbrzmień w konkretnych momentach<br />
|
|
= brak ustrukturyzowanej melodii<br />
|
|
= wykluczenie większości znanej nam muzyki</li>
|
|
</span>
|
|
</ul>
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<section>
|
|
<h3>Cel</h3>
|
|
<p class="fragment">Wypełnić lukę pomiędzy orkiestrami laptopowymi, a klasycznymi</p>
|
|
<h3 class="fragment">Realizacja</h3>
|
|
<table class="fragment">
|
|
<tr>
|
|
<th>Kompozycja</th>
|
|
<td><b>Musique</b>, SonicPI</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Wykonanie</th>
|
|
<td><b>Harmonia</b>, Ableton Live</td>
|
|
</tr>
|
|
</table>
|
|
</section>
|
|
<section data-auto-animate>
|
|
<h3>Wsparcie pełni występu</h3>
|
|
<dl>
|
|
<span class="fragment semi-fade-out" data-fragment-index="1">
|
|
<dt>Musique (2022-03 - 2023-06, zawieszony)</dt>
|
|
<dd>Muzyczny język programowania</dd>
|
|
</span>
|
|
<br />
|
|
|
|
<dt>Harmonia (2023-03 - 2024 H1)</dd>
|
|
<dd>Synchroniczny odtwarzacz muzyczny dla orkiestr laptopowych</dd>
|
|
<br />
|
|
|
|
<span class="fragment semi-fade-out" data-fragment-index="1">
|
|
<dt>Harmonia + Musique + ... (2024 H2)</dt>
|
|
<dd>Synteza środowisk muzyki algorytmicznej z Harmonią</dd>
|
|
</span>
|
|
</dl>
|
|
</section>
|
|
<section data-auto-animate>
|
|
<h3>Harmonia</h3>
|
|
<ul>
|
|
<li>odtwarzacz z przyjaznym interfejsem dla występów</li>
|
|
<li>lokalna aplikacja webowa (jak Jupyter Notebook)</li>
|
|
<li>wsparcie MIDI oraz formatów audio</li>
|
|
<li>synchronizacja wykonania</li>
|
|
</ul>
|
|
</section>
|
|
<section data-auto-animate>
|
|
<h3>Harmonia</h3>
|
|
<h4>Synchronizacja wykonania</h4>
|
|
<ul>
|
|
<li class="fragment">partycypacyjny wspólny start</li>
|
|
<li class="fragment">utrzymywanie synchronicznego wykonania na niezależnych laptopach</li>
|
|
<li class="fragment">brak centralnego sterowania = oddolny mechanizm</li>
|
|
<li class="fragment">wiele linii czasu = podgrupy z niezależną synchronizacją wewnętrzną</li>
|
|
</ul>
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<section>
|
|
<h2>Realizacja</h2>
|
|
<dl>
|
|
<dt>Promotor</dt>
|
|
<dd>prof. UAM dr hab. Michał Hanćkowiak</dd>
|
|
<dt>Moje doświadczenie</dt>
|
|
<dd>
|
|
<ul>
|
|
<li>≈ 2 lata prac z muzyką algorytmiczną</li>
|
|
<li>prowadzenie wielu różnorodnych projektów B+R</li>
|
|
<li>tworzenie wydajnych aplikacji czasu rzeczywistego</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</section>
|
|
<section data-auto-animate>
|
|
<img src="lambda_ensamble.jpg" data-id="lambda_ensamble" />
|
|
<aside class="notes">
|
|
Środowisko tworzone na potrzeby działalności artystycznej Lambdy Ensamble.
|
|
</aside>
|
|
</section>
|
|
<section data-auto-animate>
|
|
<h3>Lambda Ensamble</h3>
|
|
<div style="display: grid; grid-template-columns: 1fr 2fr">
|
|
<img src="lambda_ensamble.jpg" data-id="lambda_ensamble" data-auto-animate-id="0" />
|
|
<p>~10 osób w orkiestrze</p>
|
|
</div>
|
|
</section>
|
|
<section data-auto-animate>
|
|
<h3>Lambda Ensamble</h3>
|
|
<div style="display: grid; grid-template-columns: 1fr 2fr">
|
|
<img src="lambda_ensamble.jpg" data-id="lambda_ensamble" data-auto-animate-id="0" />
|
|
<p>Linux / Windows / macOS / Android</p>
|
|
</div>
|
|
</section>
|
|
<section data-auto-animate>
|
|
<h3>Lambda Ensamble</h3>
|
|
<div style="display: grid; grid-template-columns: 1fr 2fr">
|
|
<img src="lambda_ensamble.jpg" data-id="lambda_ensamble" data-auto-animate-id="0" />
|
|
<p>MIDI, audio, SonicPI, PureData</p>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<h3>Harmonia jako projekt B+R</h3>
|
|
<ul>
|
|
<li>Protokół synchronizacji wykonania utworów</li>
|
|
<li>Wdrożenie w tworzonym odtwarzaczu dla orkiestr laptopowych</li>
|
|
<li>Testy z orkiestrą laptopową</li>
|
|
</ul>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="dist/reveal.js"></script>
|
|
<script src="plugin/notes/notes.js"></script>
|
|
<script src="plugin/markdown/markdown.js"></script>
|
|
<script src="plugin/highlight/highlight.js"></script>
|
|
<script>
|
|
// More info about initialization & config:
|
|
// - https://revealjs.com/initialization/
|
|
// - https://revealjs.com/config/
|
|
Reveal.initialize({
|
|
hash: true,
|
|
|
|
// Learn about plugins: https://revealjs.com/plugins/
|
|
plugins: [ RevealMarkdown, RevealNotes, RevealHighlight ]
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|