Статьи

PencilSynth: синтезатор Apple, управляемый карандашом

Вот еще один  Apple , карандаш  эксперимента,  PencilSynth  является  AudioKit  питания синтезатора (MIS) с помощью карандаша в качестве контроллера джойстика. Он основан на  демонстрации TouchRegions в  AudioKit и работает следующим образом:

  • Дано:

        давай коснемся:

UITouch
  • Горизонтальное положение карандаша на экране определяет выходную частоту:

        пусть частота = 

touch.locationInView(view).x / view.bounds.width
  • Вертикальная позиция карандаша на экране определяет выходной модулирующий множитель:

        пусть modulatingMultiplier = 

touch.locationInView(view).y / view.bounds.height
  • Угол высоты карандаша определяет множитель выходной несущей:

        let carrierMultiplier = 

(halfPi - touch.altitudeAngle) / halfPi
  • Угол азимута карандаша определяет выходной индекс модуляции:

        let modulationIndex = 

(pi + touch.azimuthAngleInView(view)) / (pi * 2)

Эти четыре нормализованных значения включены в экземпляр  FMOscillator  (который взят непосредственно из демонстрации TouchRegions):

   oscillator.frequency.value = (oscillator.frequency.maximum - oscillator.frequency.minimum) * Float(frequency)          oscillator.modulatingMultiplier.value = (oscillator.modulatingMultiplier.maximum -oscillator.modulatingMultiplier.minimum) * Float(modulatingMultiplier)          oscillator.carrierMultiplier.value = (oscillator.carrierMultiplier.maximum -oscillator.carrierMultiplier.minimum) * Float(carrierMultiplier)          oscillator.modulationIndex.value = (oscillator.modulationIndex.maximum - oscillator.modulationIndex.minimum) * Float(modulationIndex)

Ориентация и рендеринг «виртуального карандаша» взяты из моей   демонстрации PencilController .

Репозиторий GitHub содержит источник AudioKit, но весь мой код существует в  классе контроллера представления .

В заключение,  Apple Pencil  открывает мир новых парадигм интерактивного дизайна (несмотря на то, что  Джони Айв может сказать нам !).  Я думаю, что PencilSynth и мое  приложение для обработки изображений на основе карандаша демонстрируют, что карандаш является отличным устройством ввода для управления непрерывными значениями в нескольких измерениях.

Как всегда, исходный код этого проекта доступен в  моем репозитории GitHub здесь . Наслаждайтесь!