Что лучший способ состоит в том, чтобы узнать о реализации VM помимо фактического взламывания кода?

Посмотрите на эту страницу: https://alligator.io/js/first-steps-web-audio-api/

Часть, которая относится к вашему вопросу находится внизу:

/* The frequency (in Hz) of Bb4 is 466.16 */
oscillator
  .frequency
  .setValueAtTime(466.16, audioContext.currentTime);
blockquote>

Следует отметить, что объект «осциллятор» сначала строится, а затем в коде можно регулировать высоту узла в поток с вышеуказанным кодом. Вы уже создали свой узел (то, что вы называете своим объектом audioCtx). Этот объект имеет значение частоты, которое должно быть изменено на лету. Случай выше для статического изменения высоты тона. Вам нужно будет одновременно получить частоту, а затем изменить ее с помощью разницы высоты звука, которую вы хотите, и использовать setValueAtTime для обновления этого значения.

Кроме того, вы можете установить этот пакет и использовать его для облегчения работы смещения высоты тона:

https://github.com/mmckegg/soundbank-pitch-shift [1111 ]

Наконец, есть другое решение, использующее объект AudioContext, найденный здесь (с использованием метода detune): https://codepen.io/qur2/pen/emVQwW

7
задан Seki 13 June 2015 в 11:36
поделиться

3 ответа

Считайте работу Anton Ertl. Также David Gregg. Также Вы могли бы хотеть прочитать синюю книгу Smalltalk, которая имеет три главы по VM. Книга Smalltalk Green является также интересной и является бесплатной онлайн.

Менее технический, но все еще интересный, если у Вас есть доступ к Цифровой библиотеке ACM, дедушка всего портативного VMs, UCSD Паскаль.

Fninally, я второй рекомендация Реализации Lua 5.0. Это - превосходная работа.

5
ответ дан 6 December 2019 в 23:13
поделиться

также проверьте Реализацию Lua 5.0. это широко рассматривается как самый быстрый VM в своем классе и также одной из самых чистых и самых маленьких реализаций.

5
ответ дан 6 December 2019 в 23:13
поделиться

Взгляните на LLVM и Попугая.

1
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: