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

Из aubio.org:

Что такое aubio?

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

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

Функции

aubio в настоящее время обеспечивает следующие функции:

  • цифровые фильтры
  • вокодер фазы
  • обнаружение начала (несколько методов)
  • отслеживание подачи (несколько методов)
  • удар и отслеживание темпа
  • коэффициенты кепстра частоты mel (MFCC)
  • переходный процесс / установившееся разделение

Реализация

aubio записан в C. Функции могут быть вызваны от C++, и обертка была записана с помощью БОЛЬШОГО ГЛОТКА. Интерфейс Python уже применим, и он, вероятно, был бы дело нескольких секунд для добавления доступа к другим языкам, поддерживаемым БОЛЬШИМ ГЛОТКОМ (включая жемчуг, Java и намного больше).

В настоящее время aubio зависит от libsndfile, libsamplerate и FFTW. На платформах Linux aubio может быть создан с помощью ДЖЕКА и ALSA.

---------121 модульный тест--------55586----Java с насмешками (JMock или EasyMock) и внедрение зависимости (Spring или Guice)

Модульные тесты Java с насмешками (JMock или EasyMock) и внедрение зависимости (Spring или Guice)

AtUnit минимизирует шаблонный код в модульных тестах и ведет тестовую разработку путем осуществления хороших методов.

  • отметьте точно одно поле с @Unit для указания на объект под тестом.
  • поля метки с @Mock или @Stub для получения фиктивных объектов
  • введите свои тесты и своих испытуемых, с помощью любимого контейнера МОК

Интеграция фиктивных объектов

AtUnit интегрируется с JMock или EasyMock для обеспечения фиктивных объектов:

  • получите контекст JMock просто путем объявления поля
  • аннотируйте поля @Mock для получения фиктивных объектов EasyMock или JMock
  • аннотируйте поля @Stub для получения JMock или объекта тупика EasyMock

... или можно использовать собственный плагин фиктивных объектов с двумя легкими шагами:

  • реализуйте интерфейс MockFramework
  • аннотируйте свои тесты @MockFrameworkClass (MyMockFramework.class)

Контейнерная интеграция

AtUnit интегрируется с Guice или Spring для вынимания всей работы из введенных зависимостью тестов.

С Guice:

  • никогда не смотрите Инжектор, никогда не пишите загружающийся шаблон!
  • @Inject тестируют поля класса, даже не определяя Модуль
  • декларативно получите фиктивные объекты с @Inject @Mock
  • если Вы нуждаетесь в более обязательной гибкости, просто имеете Ваш тестовый Модуль реализации класса

С Spring:

  • аннотируйте поля @Bean для получения их от контекста Spring
  • поля аннотировали @Bean, которые не появляются в Вашем контексте Spring, добавляются к нему автоматически! (Это включает @Mock и @Stub поля.)
  • AtUnit ищет XML-файл Spring с тем же именем как Ваш тест, или можно указать местоположение сами с @Context ("имя файла")
  • Большую часть времени Вам даже не нужен XML-файл Spring! Можно легко включить другие контейнеры на двух шагах:

Посмотрите их веб-страницу для большего количества информации.