βŒˆβŒ‹ βŽ‡ branch:  Bitrhythm


Artifact Content

Artifact cd67b5370376e851bf315359aae101821f74210acb7afa1e99d518a77383ca66:

  • File build/html/tweaking.html — part of check-in [941581eece] at 2022-02-15 23:20:56 on branch trunk — Cleanup post presentation Worklet code (user: dev size: 12510)


<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Core Features &#8212; Bitrhythm&#39;s literate documentation</title>
    
  <link href="_static/css/theme.css" rel="stylesheet" />
  <link href="_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css" rel="stylesheet" />

    
  <link rel="stylesheet"
    href="_static/vendor/fontawesome/5.13.0/css/all.min.css">
  <link rel="preload" as="font" type="font/woff2" crossorigin
    href="_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff2">
  <link rel="preload" as="font" type="font/woff2" crossorigin
    href="_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff2">

    
      

    
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="_static/sphinx-book-theme.e8e5499552300ddf5d7adccae7cc3b70.css" type="text/css" />
    <link rel="stylesheet" type="text/css" href="_static/custom.css" />
    
  <link rel="preload" as="script" href="_static/js/index.1c5a1a01449ed65a7b51.js">

    <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
    <script src="_static/jquery.js"></script>
    <script src="_static/underscore.js"></script>
    <script src="_static/doctools.js"></script>
    <script src="_static/sphinx-book-theme.12a9622fbb08dcb3a2a40b2c02b83a57.js"></script>
    <script src="_static/analytics.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="Early Attempts" href="early-attempts.html" />
    <link rel="prev" title="Samples" href="samples.html" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="docsearch:language" content="en" />
    
  </head>
  <body data-spy="scroll" data-target="#bd-toc-nav" data-offset="80">
    
    <div class="container-fluid" id="banner"></div>

    

    <div class="container-xl">
      <div class="row">
          
<div class="col-12 col-md-3 bd-sidebar site-navigation show" id="site-navigation">
    
        <div class="navbar-brand-box">
    <a class="navbar-brand text-wrap" href="index.html">
      
      
      <h1 class="site-logo" id="site-title">Bitrhythm's literate documentation</h1>
      
    </a>
</div><nav class="bd-links" id="bd-docs-nav" aria-label="Main navigation">
    <div class="bd-toc-item active">
        <p class="caption">
 <span class="caption-text">
  Table of Contents
 </span>
</p>
<ul class="current nav bd-sidenav">
 <li class="toctree-l1">
  <a class="reference internal" href="what.html">
   What is bitrhythm about ?
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="source-code.html">
   Source Code and License
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="demo.html">
   Getting Started
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="samples.html">
   Samples
  </a>
 </li>
 <li class="toctree-l1 current active">
  <a class="current reference internal" href="#">
   Core Features
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="early-attempts.html">
   Early Attempts
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="changelog.html">
   Changelog
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="main.html">
   Code Walkthrough
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="alternate-implementation.html">
   Alternate Implementations
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="saving.html">
   Saving / Recording / Streaming
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="credits.html">
   Credits
  </a>
 </li>
 <li class="toctree-l1">
  <a class="reference internal" href="bookmarks.html">
   Bookmarks
  </a>
 </li>
</ul>

    </div>
</nav> <!-- To handle the deprecated key -->

<div class="navbar_extra_footer">
  
<a target="_blank" href="/">Bitrhythm App Home</a><br>
<a target="_blank" href="https://xyzzyapps.link">Xyzzy Apps Home</a><br>
<p class='custom-nav-footer'>(c) Xyzzy Apps, 2021</p>

</div>

</div>


          


          
<main class="col py-md-3 pl-md-4 bd-content overflow-auto" role="main">
    
    <div class="topbar container-xl fixed-top">
    <div class="topbar-contents row">
        <div class="col-12 col-md-3 bd-topbar-whitespace site-navigation show"></div>
        <div class="col pl-md-4 topbar-main">
            
            <button id="navbar-toggler" class="navbar-toggler ml-0" type="button" data-toggle="collapse"
                data-toggle="tooltip" data-placement="bottom" data-target=".site-navigation" aria-controls="navbar-menu"
                aria-expanded="true" aria-label="Toggle navigation" aria-controls="site-navigation"
                title="Toggle navigation" data-toggle="tooltip" data-placement="left">
                <i class="fas fa-bars"></i>
                <i class="fas fa-arrow-left"></i>
                <i class="fas fa-arrow-up"></i>
            </button>
            
            
            <!-- Source interaction buttons -->

            <!-- Full screen (wrap in <a> to have style consistency -->

<a class="full-screen-button"><button type="button" class="btn btn-secondary topbarbtn" data-toggle="tooltip"
        data-placement="bottom" onclick="toggleFullScreen()" aria-label="Fullscreen mode"
        title="Fullscreen mode"><i
            class="fas fa-expand"></i></button></a>

            <!-- Launch buttons -->

        </div>

        <!-- Table of contents -->
        <div class="d-none d-md-block col-md-2 bd-toc show">
            
            <div class="tocsection onthispage pt-5 pb-3">
                <i class="fas fa-list"></i> Contents
            </div>
            <nav id="bd-toc-nav">
                <ul class="visible nav section-nav flex-column">
 <li class="toc-h2 nav-item toc-entry">
  <a class="reference internal nav-link" href="#sequencer-notation">
   Sequencer Notation
  </a>
 </li>
 <li class="toc-h2 nav-item toc-entry">
  <a class="reference internal nav-link" href="#tweaking-and-transitions">
   Tweaking and Transitions
  </a>
 </li>
 <li class="toc-h2 nav-item toc-entry">
  <a class="reference internal nav-link" href="#is-bitrhythm-maths-heavy">
   Is Bitrhythm Maths heavy ?
  </a>
 </li>
</ul>

            </nav>
        </div>
    </div>
</div>
    <div id="main-content" class="row">
        <div class="col-12 col-md-9 pl-md-3 pr-md-0">
        
              <div>
                
  <div class="section" id="core-features">
<h1>Core Features<a class="headerlink" href="#core-features" title="Permalink to this headline">ΒΆ</a></h1>
<div class="section" id="sequencer-notation">
<h2>Sequencer Notation<a class="headerlink" href="#sequencer-notation" title="Permalink to this headline">ΒΆ</a></h2>
<p>Bitrhythm only supports rhythmic notations and is geared towards electronic music. My current goal is to produce an IDM track, a DNB track and a Chiptune with complex rhythmic patterns. As for Techno the current setup seems alright but more support for DJ style transitions are needed.</p>
<p>You can treat a musical scale as no different than a drumset. The pentatanic scale approximately maps to a drumset and you can use techniques from <a class="reference external" href="https://www.youtube.com/watch?v=1qdyxML4tF0">melodic drumming</a> with multiple samples. This is typically how drummers approach guitars.</p>
</div>
<div class="section" id="tweaking-and-transitions">
<h2>Tweaking and Transitions<a class="headerlink" href="#tweaking-and-transitions" title="Permalink to this headline">ΒΆ</a></h2>
<p>These are key to making electronic music. Tweaking is also called Automation and knob-twisting by hardware users.</p>
<p>Modern music has evolved to be standalone but it retains elements of theatrical story telling. You can divide a song into verses and sections. In the documentation, we will use the terms from plays - scenes. Within each musical scene you typically have,</p>
<ul class="simple">
<li><p>Background: You use layers of rhythm and groove to set the mood.</p></li>
<li><p>Foreground: Lead (Soliloquy), Counterpoint(Character Conflict), Call Response(Dialogues), Motif, Ornaments (Exposition)</p></li>
</ul>
<p>In screenplays you also have a <a class="reference external" href="https://www.youtube.com/watch?v=cG5zKwmXLgo">setup / payoff</a> dynamic.</p>
<p>Setup</p>
<ul class="simple">
<li><p>Obstacles</p></li>
<li><p>Challenges</p></li>
<li><p>Forces</p></li>
<li><p>Context</p></li>
</ul>
<p>In Electronic Music the foreground is mainly developed via Tweaking. Tweaking effectively functions for the purposes of Exposition and Conflict. Chorus, Fade, Drop are used for transitions typically in electronic music. To compare the foreground in others,</p>
<p>Classical Music: Counterpoint and Harmony<br>
Rock: Call Response<br></p>
<p>To make a complete song in bitrhythm use <code class="docutils literal notranslate"><span class="pre">bars</span></code> to trigger multiple transitions.</p>
<p>Essentially a DJ is like a conductor. Loops are like individual instrumentalists.</p>
<ol class="simple">
<li><p>Cueing -&gt; Mute / Solo</p></li>
<li><p>Dynamics -&gt; Volume</p></li>
<li><p>Ornamentation -&gt; Cutoff</p></li>
<li><p>Tempo, Beat Counting -&gt; Beat Matching</p></li>
</ol>
<iframe width="420" height="315" src="https://www.youtube.com/embed/tprMEs-zfQA" frameborder="0" allowfullscreen></iframe>
</div>
<div class="section" id="is-bitrhythm-maths-heavy">
<h2>Is Bitrhythm Maths heavy ?<a class="headerlink" href="#is-bitrhythm-maths-heavy" title="Permalink to this headline">ΒΆ</a></h2>
<p>You will need some basic maths operations to understand and use bitrhythm effectively. These operations are about working with lists of numbers and lists of strings.</p>
<p>Some common operations on lists include</p>
<ul class="simple">
<li><p>Rotate</p></li>
<li><p>Invert</p></li>
<li><p>Slicing</p></li>
<li><p>Choose</p></li>
<li><p>Reverse</p></li>
<li><p>Shuffle</p></li>
<li><p>Filter</p></li>
<li><p>Map</p></li>
</ul>
<p>Other math operations are useful for working with envelope ranges,</p>
<ul class="simple">
<li><p>Clamp</p></li>
<li><p>Ramp</p></li>
<li><p>Waves</p></li>
</ul>
<p>Programming is not that difficult. Programming is about organising reactions to events. A typical event comes from</p>
<ol class="simple">
<li><p>The timer</p></li>
<li><p>User interface elements like sliders and dials</p></li>
<li><p>Data change</p></li>
</ol>
<p>A typical reaction to an event (often called a handler) either changes data or displays data. A data change triggers more events. Other programming concepts needed for birthythm</p>
<p>As Tone.js provides the bulk of sound generation in Bitrhythm you should make youself comfortable with its APIs.</p>
<p>You will also need to understand</p>
<ul class="simple">
<li><p>Conditions</p></li>
<li><p>Loops</p></li>
<li><p>Functions</p></li>
<li><p>Javascript Math.random</p></li>
<li><p>Modulo Arithmetic</p></li>
<li><p>SetInterval Timers</p></li>
</ul>
<p>What comes next - This is the pertinent question when composing music. If you are feeling adventurous you can try to use,</p>
<ol class="simple">
<li><p>Mathematical patterns like fibonacci series, geometric series,
pi, fractals …</p></li>
<li><p>Neo-Riemannian_theory, Combinatory theory</p></li>
<li><p>Sacred Geometry</p></li>
<li><p>Circle of fifths, chord progressions</p></li>
<li><p>Set transformations like inversion on Scales</p></li>
<li><p>Licks from books</p></li>
<li><p>Randomness, I Ching, Playing Cards</p></li>
</ol>
</div>
</div>


              </div>
              
        
        <div class='prev-next-bottom'>
            
    <a class='left-prev' id="prev-link" href="samples.html" title="previous page">Samples</a>
    <a class='right-next' id="next-link" href="early-attempts.html" title="next page">Early Attempts</a>

        </div>
        
        </div>
    </div>
    <footer class="footer mt-5 mt-md-0">
    <div class="container">
      <p>
        
          By Xyzzy Apps<br/>
        
            &copy; Copyright (c) Xyzzy Apps, 2021.<br/>
      </p>
    </div>
  </footer>
</main>


      </div>
    </div>
  
  <script src="_static/js/index.1c5a1a01449ed65a7b51.js"></script>

  
  </body>
</html>