Algorithmic Music Lab

Program na generování tzv. algoritmické hudby pomocí přímého programování zvukové křivky. Umožňuje definovat pomocí vizuálního grafu matematický výraz, jehož vstupem je číslo vzorku a výstupem hodnota vzorku.

Screenshot

Algorithmic Music Lab

Popis

Program umožňuje generování zvuko na základě grafického modelování matematického výrazu, který počítá hodnotu každého vzorku výsledného zvuku.

Program funguje tak, že vytvořenému výrazu se pro každý vzorek předá číslo daného vzorku ve zvuku ve formátu 64 bitového celého čísla (long int). Výraz tak může pracovat se základními binárními a aritmetickými operátory.

Výsledek výrazu je vydělen hodnotou 255 (resp jsou použity nejmenší 8 bitů) a tato hodnota je použita jako hodnota vzorku na škále 0-255.

Ovládání

Vložení uzlu

Uzly výrazu se vkládají dvojklikem na vybraný uzel v seznamu napravo v okně programu. Pokud uzel vyžaduje při vytvoření dodatečné informace, je otevřeno okno, ve kterém je možné je zadat.

Propojení uzlů

Každý uzel má žádný až několik vstupních “pinů”, které jsou znázorněny čtverečky na spodní straně uzlu. Každý uzel má jeden výstupní pin.

Propojení lze provést metodou “drag-n-drop” tažením myší výstupního pinu nad vstupní pin jiného uzlu.

Každý vstupní pin může mít maximálně jedno napojení. Výstupní pin může být napojen na více vstupů.

Aktivní uzel

Dvojklikem na název uzlu se tento aktivuje a použije se pro výpočet hodnoty vzorků.

Vlastnosti uzlu

Některé uzly mají vlastnosti, které lze upravovat a měnit tak chování uzlu. Tyto vlastnosti se otevřou kliknutím na tlačítko “P” na uzlu.

Odebrání uzlu

Uzel lze z plochy odebrat kliknutím na tlačítko “X” na uzlu. Případné spojení s uzlem jsou automaticky odebrány.

Přehrávání

Spustit nebo zastavit přehrávání slouží tlačítko “PLAY” v pravém dolním rohu okna programu.

Přehrávání je možné nastavit vzorkovací frekvenci ve vstupním poli nad tlačítky “SAVE” a “LOAD”

Zobrazení zvukové vlny

Při přehrávání je vizualizace zvokové vlny autoamticky synchronizována s přehráváním.

Tlačítkem “1:1″ je možné nastavit zobrazení odpovídající 1 vzorek = 1 pixel (šířky).

Posuvníkem “View Length” je možné nastavit velikost zobrazovaného okna v počtu vzorků. Doporučuje se nastavit mocninu 2 pro zfázování pohledu ( závisí ovšem na schématu generovaného zvuku ).

Posuvníkem “Position” je možné při vypnutém přehrávání nastavit číslo vzorku levého okraje zobrazení. Je tak možné ručně procházet generovanou zvukovou vlnu.

Typy uzlů

Základní

Mezi základní typy patří aritmetické a binární logické operátory:

  • NumberExpression – konstantní číslo – nemá vstup, číslo je definováno ve vlastnosti uzlu
  • AndExpression – provede binární (bit po bitu) AND nad vstupními hodnotami (vše je long int)
  • OrExpression – binární OR
  • XorExpression – binární XOR
  • ShiftLeftExpression – bitový posun vpravo – vlastnost určuje o kolik bitů
  • ModuloExpression – zbytek po celočíselném dělení – první vstup je číslo, druhý vstup je dělitel
  • AritmExpression – aritmetický uzel. Provádí aritmetickou operaci nad vstupy. Operace:
    • Mult – násobení
    • Div – vydělení prvního vstupu druhým vstupem  v desetinném módu (výsledek je zaokrouhlen) – interně je použit double
    • IntegerDiv – vydělení vstupu druhým vstupem v celočíselném módu
    • Add – sečtení
    • Sub – odečtení
    • Vlastnost “Divider” umožňuje druhý operand vydělit v desetinném módu – např při násobení škály je možné druhý operand normalizíovat do škály 0.0-1.0 a prvním ho pomocí operace Mult vynásobit na požadovanou škálu.

Podmíněné

  • ConditionExpression – “ternární operátor” – pokud je hodnota prvního vstupu rovna “0”, výstupen bude hodnota druhého vstupu, jinak hodnota třetího vstupu
  • SwitchExpression – přepínač – při vložení definujete počet celkových pinů. Prvení vstup určuje číslo pořadí dalších vstupů, které se použijí jako výstup. Hodnota vstupního pinu je automaticky modulo počet dalších vstupů – není třeba dopředu ošetřovat.
  • ArrayExpresion – pole. Pole má jako vlastnost seznam hodnot. Hodnota vstupního pinu slouží pro výběr hodnoty z tohoto seznamu ( hodnoty jsou číslovány od 0). Hodnota vstupu je modulo velikost seznamu.

Speciální

  • SinusExpression – Generátor sinusoidy. Má vlastnosti
    • InputDivider – vydělí vstupní hodnotu v desetinném módu, kterou použije jako vstup pro sinus (v radianech)
    • OutputMultiplicator – násobič hodnoty Sinu pro výstup (výstup je vždy long int).

Download

V přiloženém ZIP archivu je k dispozici program a ukázkové soubory.

Požadavky

  • MS Windows Vista/7
  • DirectX 9 nebo vyšší
  • .NET framework 4.0
  • Zvuková karta DirectSound nebo kompatibilní

Stáhnout AML