Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2014, 00:07
Аспирант
Отправить личное сообщение для SVARAI Посмотреть профиль Найти все сообщения от SVARAI
 
Регистрация: 30.11.2013
Сообщений: 41

Как работает это скрипт?
Помогите пожалуйста разобраться в работе скрипта. Хочется понять, как генерировать wav музыку, но странно, что здесь не весь заголовок. По идее, должен быть data:audio/wav;base64,TVRoZAAAAAYAAQADAGRNVHJrAAAAHwDAUACQUH9 ggFAAAJBSf2CAUgAAkFR/YIBUAAD/LwBNVHJrAAAAEADAUQCQAACCIIAAAAD/LwBNVHJrAAAAEADAUgCQAACCIIAAAAD/LwAgIA==
В общем, как генерировать музыку?
B=new Audio();
const l=7e3;
const H="data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEAwF0AAMBdAAABAAgAZGF0YQ";
p='';


/*
*  GATE = 1;
*  C4   = 31;
*  C#4  = 28;
*  D4   = 27;
*  D#4  = 26;
*  E4   = 24;
*  F4   = 23;
*  F#4  = 22;
*  G4   = 20;
*  G#4  = 19;
*  A4   = 18;
*  A#4  = 17;
*  B4   = 16;
*  C5   = 15;
*  C#5  = 15;
*  D5   = 13;
*  D#5  = 13;
*  E5   = 12;
*  F5   = 11;
*  F#5  = 10;
*  G5   = 10;
*  G#5  = 9;
*  A5   = 9;
*  A#5  = 8;
*  B5   = 8;
*/

b=[100,100,100,100];

for(i in b){
  k=b[i];
  for(i=0;i<l;i++){p+=String.fromCharCode(65+Math.round((i>>4)%k)%26)} 
}
B.src=H+p;B.play();
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2014, 01:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Полагаю смысл в том, что base64 кодирует простой подстановкой, а потому по сути строка base64 - это тот же обычный последовательный набор бит, только в непривычной записи. Соответственно можно сразу генерировать этот набор в виде base64, вместо генерирования бинарника с последующим кодированем. На заре data:url когда ещё canvas не появился я так делал гифки с кастомной палитрой.)

Сам код генерирует base64 строку(p+=...) из рандомных символов(с определённым условием) и добавляет её к строке c wav заголовком/вступлением и объявлением data:url(const H).
__________________
29375, 35

Последний раз редактировалось Aetae, 10.07.2014 в 01:18.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсер - как это работает? tourniquet Общие вопросы Javascript 7 11.04.2014 22:04
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Кто как учит/учил/ будет учить Английский ? DjDiablo Оффтопик 53 18.12.2012 21:01
Скрипт не работает при заходе на данную страницу, но работает при рефреше страницы foker jQuery 0 26.11.2012 12:27
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30