pbr/2023-11-14/index.html
2023-11-13 01:16:31 +01:00

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>&asymp; 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>