2013-12-11 5 views
1

Я интегрировал патч libPd в iOS.Crackling во время воспроизведения патча libPd - esp. связанные с презентацией клавиатуры

При вводе текстового поля и презентации клавиатуры появляются потрескивающие звуки.

Как я могу отладить это?

NB Я помечено этот вопрос с Objective-C и прошивкой, однако этот вопрос может потребовать знания во всех четырех тегов - libPd Естественнонаучные данные хорошо:

Что Pure Data

  1. Pure Data - это мощный язык программирования для управления звуком из основных математических понятий. Это широко используемые игры, а также DJ и другие приложения, ориентированные на музыку. В некоторых примерах приложения, созданные с помощью Pure Data и libPd, являются: Приложение Rj Voyager от RjDj и Inception App от Warner Brothers.

  2. libPD - это метод встраивания патчей Pure Data (разработанных с использованием визуального интерфейса) в приложении iOS. Управление интерфейсом Pd осуществляется через интерфейс сообщений публикации/подписки, аналогичный OSC или MIDI. ,

страница GitHub для libPd здесь: https://github.com/libpd

Какую помощь я ищу?

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

  • How многопоточность работы, и как она взаимодействует с основной очереди
  • Какие образцы ставки работают лучше данного целевых устройств
  • Какие инструменты отладки доступны.
  • Другие советы, полученные за счет глубокого опыта.
+0

Я думаю, что близкие голоса исходят от людей, которые не знают, что такое libPd? –

+0

FYI, я отредактировал ваш вопрос, чтобы быть немного менее воспалительным (т. Е. Положить его в трубку и курить). Некоторые люди плохо будут реагировать на подобные комментарии. – thegrinner

+0

@ thegrinner Hah! Благодаря :) . , , Я думаю, что тема может быть слишком специализированной для StackOverflow. , , два голоса о не связанном программировании, к сожалению, дезинформированы. –

ответ

1

Я ничего не знаю о PD, но, по-видимому, из-за того, что презентация клавиатуры вызывает у вас головокружение от процессора по какой-то причине. Вы можете попробовать:

  • проверки это все еще происходит, когда в освобождении и не прилагается к отладчику (сообщения журнала вызывают длительные задержки при подключении к отладчику, который в одиночку может вызвать икоту, как это)
  • профилирования кода с использованием Инструменты, чтобы увидеть, если вы случайно используете много CPU сразу или
  • Увеличение размеров буфера, так что PD не нуждается в CPU так часто.
+0

Это определенно стоит взглянуть на то, что происходит с процессором во время треска. , Точка №3 тоже стоит исследовать (если мы действительно получаем ограничение по ЦП). Благодарю. –

+0

«Треск» почти наверняка обусловлен тем, что звуковой генератор «голодает». Именно поэтому сложнее сказать, особенно без знания внутренних компонентов звуковых механизмов iOS/iPhone. Может случиться так, что аппаратное обеспечение генератора не будет достаточно быстро обслуживать прерывания, или может быть, что программное обеспечение не может достаточно быстро заполнить промежуточную очередь. –

1

У меня были те же симптомы в приложении, над которым я работаю. Мне удалось выяснить пару вещей на ранней стадии. Мои недавние изменения включали отправку большого количества сообщений на pd во время запуска приложения. Я заметил, что при отладке, когда я уменьшил количество отправленных сообщений, звук улучшился.Кроме того, я не видел этого в симуляторе, только на устройстве.

В этом случае пример Libpd PolyPatch был очень полезен, если вы увеличиваете количество исправлений, которые могут быть сгенерированы. Я обнаружил, что звук разбивается на многие открытые патчи, точно так же, как и в моем приложении. Это довольно просто, когда накладные расходы на использование libpd сказываются на производительности. Ясно также, что упрощение патча (так что оно содержит меньше объектов) влияет на производительность. Но самым большим хитом является создание нового, отдельного патча. Таким образом, вы не захотите создавать огромное количество патчей. Разумеется, отладка тоже скажется.

44.1khz работает практически везде, насколько скорость выборки идет (это тоже стандарт pd). И нет ничего, что помешало бы вам отлаживать код libpd прямо в xcode, я сделал это несколько раз. Помимо этого, существует проблема отладки патчей. Вы можете настроить патч с тестовыми версиями своих объектов непосредственно в pd, или вы должны установить libpd для просмотра того же вывода, который вы обычно видите в главном окне pd в консоли (вам просто нужно убедиться что у вас есть что-то вроде этого

[PdBase setDelegate:_dispatcher]; 

в вашем коде - все это, конечно, в dox). Затем вы просто перцем своего патча печатными сообщениями по мере необходимости ...

Надеюсь, что это поможет, и по-прежнему актуально после 3-х минут!

 Смежные вопросы

  • Нет связанных вопросов^_^