Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
MaxAlyokhin committed Jun 16, 2024
1 parent c1cd797 commit 55c09de
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@ _Audio synthesis from binary code of any file_

**Demo**: https://bs.stranno.su

**Video**: https://youtu.be/5LMYiLwfvRg

![](https://store.stranno.su/bs/fuji.png)

_<a href="README_RU.md">Эта страница есть также на русском</a>_

A web-synthesizer that generates sound from the binary code of any files. It can synthesize sound directly in the browser, or be a generator of MIDI messages to external devices or DAWs, turning any file into a score. All the application code is written in Javascript and along with everything you need is packed into a single .html file of about 750kb. The synthesizer doesn't need internet, it can be downloaded and run locally on any device with a browser.

The application reads sequentially one or two bytes at a time, and due to the high speed of reading and random deviation of reading duration, we can get quite unpredictable generation of timbre nuances, and at certain settings we can switch to granular synthesis.
The application reads the file sequentially, and due to the high speed of reading and random deviation of reading duration, we can get quite unpredictable generation of timbre nuances, and at certain settings we can switch to granular synthesis.

## Application principle

Expand All @@ -24,7 +26,7 @@ In the case of musical experimentation, there have been earlier attempts, for ex

We could go further and write our own interpreter that would look at the files without regard to format, use its own "manner of reading" the original zeros and ones, and on that basis provide a complete system for controlled synthesis of sounds.

1. We can interpret files as an array of numbers. That is, we divide continuous machine code (ArrayBuffer) into _words_ of some information capacity (bitness):
1. We can interpret files as an array of numbers. That is, we divide continuous machine code into _words_ of some information capacity (bitness):

- 8 bits (numbers from 0 to 255)
- 16 bits (numbers from 0 to 65 535)
Expand Down
6 changes: 4 additions & 2 deletions README_RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ _Синтез аудио из двоичного кода любого файл

**Демо**: https://bs.stranno.su

**Видео**: https://youtu.be/5LMYiLwfvRg

![](https://store.stranno.su/bs/fuji.png)

Веб-синтезатор, генерирующий звук из двоичного кода любых файлов. Может синтезировать звук прямо в браузере, либо быть генератором MIDI-сообщений во внешние устройства или DAW, превращая любой файл в партитуру. Весь код приложения написан на Javascript и вместе со всем необходимым упаковывается в один .html файл размером около 750kb. Синтезатору не нужен интернет, его можно скачать и запускать локально на любом устройстве где есть браузер.

Приложение читает последовательно по одному или по два байта, и за счёт высокой скорости чтения и случайной величины отклонения длительности чтения, мы можем получить достаточно непредсказуемую генерацию нюансов тембра, а при определённых настройках перейти в гранулярный синтез.
Приложение последовательно читает файл и за счёт высокой скорости чтения и случайной величины отклонения длительности чтения, мы можем получить достаточно непредсказуемую генерацию нюансов тембра, а при определённых настройках перейти в гранулярный синтез.

## Принцип работы

Expand All @@ -22,7 +24,7 @@ _Синтез аудио из двоичного кода любого файл

Мы могли бы пойти дальше и написать собственный интерпретатор, который смотрел бы на файлы безотносительно формата, использовал собственную "манеру чтения" исходных нулей и единиц и на этой основе предоставлял полноценную систему управляемого синтеза звуков.

1. Мы можем интерпретировать файлы как массив чисел. То есть, мы разбиваем непрерывный машинный код (ArrayBuffer) на _слова_ некоторой информационной ёмкости (разрядности):
1. Мы можем интерпретировать файлы как массив чисел. То есть, мы разбиваем непрерывный машинный код на _слова_ некоторой информационной ёмкости (разрядности):

- 8 бит (числа от 0 до 255)
- 16 бит (числа от 0 до 65 535)
Expand Down

0 comments on commit 55c09de

Please sign in to comment.