나는 간단한 "가상 스크래쳐"를 만들려고 노력하고 있지만 그 이론에 대해서는 알지 못합니다. Google에서 유용한 정보를 찾지 못했기 때문에 여기에서 묻습니다 :오디오 처리시 비닐 스크래치 효과를 에뮬레이트하는 방법은 무엇입니까?
- 트랙을 앞으로 움직이면 어떻게됩니까? 샘플의 음조 및/또는 비율을 높입니까?
- 이 현상을 오디오 처리 알고리즘으로 어떻게 에뮬레이트 할 수 있습니까?
샘플 코드/튜토리얼 reeeally
당신이 스크래치나는 간단한 "가상 스크래쳐"를 만들려고 노력하고 있지만 그 이론에 대해서는 알지 못합니다. Google에서 유용한 정보를 찾지 못했기 때문에 여기에서 묻습니다 :오디오 처리시 비닐 스크래치 효과를 에뮬레이트하는 방법은 무엇입니까?
샘플 코드/튜토리얼 reeeally
당신이 스크래치스크래치 (트랙을 앞으로 이동)하면 어떻게됩니까? 피치 및/또는 샘플 비율을 올리니까?
실제로 일어나는 일에 대해 생각해보십시오. 레코드에는 오디오 데이터가 포함되어 있습니다. 레코드 바늘은 레코드에서 오디오 데이터를 읽습니다. 레코드가 회전하면 재생 위치가 변경됩니다.
실제로 레코드를 빠르게 돌리면 재생 속도가 빨라집니다. 오디오는 피치가 더 빠르며 높습니다. 재생 속도를 2 씩 높이면 오디오가 한 옥타브 높게 재생됩니다.
물리적으로 느리게 기록을 회전하면 재생 속도가 감소합니다. 오디오는 피치가 느리고 낮습니다. 재생 속도를 2 줄이면 오디오가 한 옥타브 낮아질 것입니다.
레코드는 물리적 레코드의 속도를 높이거나 낮춤으로써 오디오 재생을 수정할 수 있으며 이는 피치와 재생 속도를 함께 적용합니다. 일부 오디오 소프트웨어는 피치와 속도를 독립적으로 변경할 수 있습니다. 레코드 플레이어는 할 수 없습니다.
(이 같은 소리 듣고하는 레코드 플레이어와 실험을 가져옵니다.)
가 어떻게 오디오 프로세싱 알고리즘이 현상을 에뮬레이션 할 수 있습니다?
레코드를 스크래치하는 DJ를 에뮬레이션하려면 사용자가 "긁적"하면서 오디오 재생 속도를 조정할 수 있어야합니다.
사용자가 레코드의 속도를 높이면 재생 속도가 빨라집니다. 사용자가 기록을 느리게하면 재생 속도가 느려집니다.
사용자가 녹음을 중지하면 모두 재생을 중지합니다.
사용자가 레코드를 반대로 돌릴 때 재생을 되돌립니다.
오디오의 음높이를 변경할 필요가 없습니다. 재생 속도를 변경하면 자동으로 재생 속도가 변경됩니다. 피치를 조정하면 잘못된 소리가납니다.
도서관과 관련하여 조언이 없지만 시간을 내면 구현하기가 너무 어렵지 않습니다.
:-) 주시면 감사하겠습니다, 당신은 단지 앞뒤로 바늘 아래에있는 기록을 이동하고 있습니다. 따라서 오디오 파일의 동일한 부분에 대해 반복적으로 앞뒤로 반복하는 것과 같습니다. 나는 속도가 사인파와 삼각형 파 사이의 어딘가에 있다고 생각한다. 샘플에서 선형 보간을 수행해야합니다.
모바일 앱의 경우 화면의 한 축을 오디오 파일의 시간 범위에 매핑하는 것으로 시작합니다. 마지막으로 MotionEvent
을 포함하는 버퍼를 유지하십시오. 다음 MotionEvent
이 도착하면 (X,Y)
좌표를 기반으로 매핑 된 시작 및 끝 위치를 계산합니다. 그런 다음 두 시간 사이의 경과 시간을 계산하십시오. MotionEvents
. 이를 통해 파일에서 올바른 위치와 속도로 재생할 수있는 충분한 정보를 얻을 수 있으며 각 모션 이벤트가 지속적으로 업데이트됩니다.
데이터를 부드럽게 처리해야 할 수도 있지만 시작점입니다.
가변 속도 리샘플링 기가 적절할 수 있습니다. 이렇게하면 재생 속도가 빨라지고 피치가 같은 비율만큼 증가합니다.
"스크래치"운동의 각속도와 평상시의 플래터 회전 속도의 비율을 추적하여이를 로컬 리샘플링 비율로 사용하십시오.
가변 폭 Sinc 보간 커널을 사용하는 것과 같이 선형 보간보다 속도 재 샘플링을하는 DSP 방법이 훨씬 우수합니다 (높은 오디오 품질).
Q : 이제 오디오 트랙을 어떻게 편집하고 있습니까? 어떤 소프트웨어를 사용하고 있습니까? 나는 단지 "스크래치", "히스"또는 "팝"효과를 필요에 따라 혼합합니다. 예 : http://free-loops.com/5174-short-record-scratch.html – paulsm4
Android 응용 프로그램으로 개발 중이므로 Java를 사용하고 있습니다. 기본 Java 오디오 처리 또는 OpenSL을 사용해야하는지 여부는 여전히 알 수 없습니다. 이것은 "스크래치"를 에뮬레이션하는 것이 피치/속도 또는 Java에없는 다른 기능을 변경하는 경우에 따라 다릅니다. 편집 : 내 앱은 사용자가 실제 비닐과 같은 트랙을 제어 할 수있게합니다. 재생 중에 정방향/역방향으로 움직여 "스크래치"효과 얻기 – user1118094
안드로이드가 오디오 샘플에 직접 액세스 할 수 없으므로 약간 어려울 수 있습니다 (면책 조항 : 저는 Android 개발자가 아닙니다. 이것은 내가 들었던 것입니다. 나는 이것에 대해 틀릴 수도 있습니다.) 즉, 당신이 찾고있는 구체적인 효과는 "Varispeed"라고하며, 연구를 시작하기에 충분한 정보를 제공해야합니다. 효과를 완료하려면 추가 노이즈를 추가하는 것이 좋습니다. – admsyn