Я работаю над приложением для Android для изменения высоты тона и столкнулся с некоторыми проблемами. Сначала я пробовал использовать Superpowered, но столкнулся с проблемами искажения звука при изменении высоты тона. Теперь я пытаюсь создать и использовать библиотеку Rubber Band для Android. Однако предоставленные примеры довольно устарели, и я также без особого успеха исследовал другие сторонние примеры с открытым исходным кодом — они либо не поддерживаются, либо основаны на очень старом коде.
Я новичок в работе с собственным кодом в Android, поэтому могу упустить что-то фундаментальное. Может ли кто-нибудь объяснить мне, как шаг за шагом интегрировать библиотеку Rubber Band в мое приложение для Android?
Вот ссылка на библиотеку Rubber Band, которую я пытаюсь создать: Ссылка на Github.
Я попытался собрать файл .mk с помощью команды ndk-build, но, поскольку ссылка сильно устарела, я обнаружил множество ошибок. Кроме того, с тех пор библиотека Rubber Band претерпела множество обновлений, что может способствовать возникновению проблем.
Вот файл android.mk, который я использую.
LOCAL_PATH := $(call my-dir)/..
LOCAL_MODULE := rubberband
LOCAL_MODULE_FILENAME := librubberband-jni
RUBBERBAND_PATH := $(LOCAL_PATH)
RUBBERBAND_SRC_PATH := $(RUBBERBAND_PATH)/src
LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/src
LOCAL_CFLAGS := \
-Wall \
-I$(RUBBERBAND_PATH) \
-I$(RUBBERBAND_SRC_PATH) \
-DUSE_SPEEX \
-DUSE_KISSFFT \
-DPROCESS_SAMPLE_TYPE=float \
-DLACK_POSIX_MEMALIGN \
-DUSE_OWN_ALIGNED_MALLOC \
-DLACK_SINCOS \
-DNO_EXCEPTIONS \
-DNO_THREADING \
-DNO_THREAD_CHECKS
RUBBERBAND_JNI_FILES := \
$(RUBBERBAND_SRC_PATH)/jni/RubberBandStretcherJNI.cpp
RUBBERBAND_SRC_FILES := \
$(RUBBERBAND_SRC_PATH)/base/Profiler.cpp \
$(RUBBERBAND_SRC_PATH)/system/Thread.cpp \
$(RUBBERBAND_SRC_PATH)/system/Allocators.cpp \
$(RUBBERBAND_SRC_PATH)/system/sysutils.cpp \
$(RUBBERBAND_SRC_PATH)/system/VectorOpsComplex.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherChannelData.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/AudioCurveCalculator.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/FFT.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/Resampler.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/SilentAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/CompoundAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/HighFrequencyAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/SpectralDifferenceAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/ConstantAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/PercussiveAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherImpl.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherProcess.cpp \
$(RUBBERBAND_SRC_PATH)/StretchCalculator.cpp \
$(RUBBERBAND_SRC_PATH)/RubberBandStretcher.cpp \
$(RUBBERBAND_SRC_PATH)/speex/resample.c
LOCAL_SRC_FILES += \
$(RUBBERBAND_JNI_FILES) \
$(RUBBERBAND_SRC_FILES)
LOCAL_SRC_FILES += \
$(RUBBERBAND_SRC_PATH)/kissfft/kiss_fft.c \
$(RUBBERBAND_SRC_PATH)/kissfft/kiss_fftr.c
ifeq ($(TARGET_ARCH_ABI), x86_64)
LOCAL_CFLAGS += \
-O3 \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
endif
ifeq ($(TARGET_ARCH_ABI), arm64-v8a)
LOCAL_CFLAGS += \
-O3 \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
endif
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_CFLAGS += \
-O3 \
-mfpu=neon \
-mfloat-abi=softfp \
-ffast-math \
-ftree-vectorize \
-freciprocal-math \
-fsingle-precision-constant \
-D__ARM_ARCH_7__ \
-DARM_RUNFAST \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
LOCAL_ARM_MODE := arm
LOCAL_ARM_NEON := true
endif
ifeq ($(TARGET_ARCH_ABI), armeabi)
LOCAL_CFLAGS += \
-O3 \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
LOCAL_ARM_MODE := arm
LOCAL_ARM_NEON := false
endif
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
Подробнее здесь: https://stackoverflow.com/questions/788 ... nd-library
Как реализовать сдвиг высоты звука в Android с помощью библиотеки Rubber Band? ⇐ Android
Форум для тех, кто программирует под Android
1729162248
Anonymous
Я работаю над приложением для Android для изменения высоты тона и столкнулся с некоторыми проблемами. Сначала я пробовал использовать Superpowered, но столкнулся с проблемами искажения звука при изменении высоты тона. Теперь я пытаюсь создать и использовать библиотеку Rubber Band для Android. Однако предоставленные примеры довольно устарели, и я также без особого успеха исследовал другие сторонние примеры с открытым исходным кодом — они либо не поддерживаются, либо основаны на очень старом коде.
Я новичок в работе с собственным кодом в Android, поэтому могу упустить что-то фундаментальное. Может ли кто-нибудь объяснить мне, как шаг за шагом интегрировать библиотеку Rubber Band в мое приложение для Android?
Вот ссылка на библиотеку Rubber Band, которую я пытаюсь создать: Ссылка на Github.
Я попытался собрать файл .mk с помощью команды ndk-build, но, поскольку ссылка сильно устарела, я обнаружил множество ошибок. Кроме того, с тех пор библиотека Rubber Band претерпела множество обновлений, что может способствовать возникновению проблем.
Вот файл android.mk, который я использую.
LOCAL_PATH := $(call my-dir)/..
LOCAL_MODULE := rubberband
LOCAL_MODULE_FILENAME := librubberband-jni
RUBBERBAND_PATH := $(LOCAL_PATH)
RUBBERBAND_SRC_PATH := $(RUBBERBAND_PATH)/src
LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/src
LOCAL_CFLAGS := \
-Wall \
-I$(RUBBERBAND_PATH) \
-I$(RUBBERBAND_SRC_PATH) \
-DUSE_SPEEX \
-DUSE_KISSFFT \
-DPROCESS_SAMPLE_TYPE=float \
-DLACK_POSIX_MEMALIGN \
-DUSE_OWN_ALIGNED_MALLOC \
-DLACK_SINCOS \
-DNO_EXCEPTIONS \
-DNO_THREADING \
-DNO_THREAD_CHECKS
RUBBERBAND_JNI_FILES := \
$(RUBBERBAND_SRC_PATH)/jni/RubberBandStretcherJNI.cpp
RUBBERBAND_SRC_FILES := \
$(RUBBERBAND_SRC_PATH)/base/Profiler.cpp \
$(RUBBERBAND_SRC_PATH)/system/Thread.cpp \
$(RUBBERBAND_SRC_PATH)/system/Allocators.cpp \
$(RUBBERBAND_SRC_PATH)/system/sysutils.cpp \
$(RUBBERBAND_SRC_PATH)/system/VectorOpsComplex.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherChannelData.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/AudioCurveCalculator.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/FFT.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/Resampler.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/SilentAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/CompoundAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/HighFrequencyAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/SpectralDifferenceAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/ConstantAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/PercussiveAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherImpl.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherProcess.cpp \
$(RUBBERBAND_SRC_PATH)/StretchCalculator.cpp \
$(RUBBERBAND_SRC_PATH)/RubberBandStretcher.cpp \
$(RUBBERBAND_SRC_PATH)/speex/resample.c
LOCAL_SRC_FILES += \
$(RUBBERBAND_JNI_FILES) \
$(RUBBERBAND_SRC_FILES)
LOCAL_SRC_FILES += \
$(RUBBERBAND_SRC_PATH)/kissfft/kiss_fft.c \
$(RUBBERBAND_SRC_PATH)/kissfft/kiss_fftr.c
ifeq ($(TARGET_ARCH_ABI), x86_64)
LOCAL_CFLAGS += \
-O3 \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
endif
ifeq ($(TARGET_ARCH_ABI), arm64-v8a)
LOCAL_CFLAGS += \
-O3 \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
endif
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_CFLAGS += \
-O3 \
-mfpu=neon \
-mfloat-abi=softfp \
-ffast-math \
-ftree-vectorize \
-freciprocal-math \
-fsingle-precision-constant \
-D__ARM_ARCH_7__ \
-DARM_RUNFAST \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
LOCAL_ARM_MODE := arm
LOCAL_ARM_NEON := true
endif
ifeq ($(TARGET_ARCH_ABI), armeabi)
LOCAL_CFLAGS += \
-O3 \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
LOCAL_ARM_MODE := arm
LOCAL_ARM_NEON := false
endif
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
Подробнее здесь: [url]https://stackoverflow.com/questions/78869500/how-to-implement-pitch-shifting-in-android-using-the-rubber-band-library[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия