문제

ARM Cortex-M3 코어에서 웨이브 테이블 합성기 를 구현해야합니다.시작하는 데 도움이되는 코드 나 도구를 찾고 있습니다.

이 AVR 구현 에 대해 알고 있습니다.나는 실제로 잠시 전에 그것을 PIC로 변환했습니다.이제 나는 비슷한 것을 찾고 있지만 조금 더 좋은 소리를냅니다.

ANSI C 코드가 좋습니다.모든 코드 스 니펫 (C 또는 C ++), 샘플, 도구 또는 일반 정보 만 있으면 감사하겠습니다.

감사합니다.

도움이 되었습니까?

해결책

STK (Synthesis Toolkit)는 훌륭하지만 C ++ 전용입니다.

http://ccrma.stanford.edu/software/stk/

STK에서 웨이브 테이블 신디사이저 코드를 추출 할 수 있습니다.

다른 팁

두 개의 오픈 소스 웨이브 테이블 합성기는 FluidSynth TiMidity .

최고의 ARM 신디사이저는 하루 안에 wavecanner로 바꿀 수 있습니다. 파일에서 웨이브를 스캔하거나 수학적으로 생성하는 것은 오디오 측면에서 거의 동일합니다. WT는 처리 비용이 전혀 들지 않는 대규모 파형 뱅크를 제공합니다. 웨이브가 필요하며 WT 발진기 코드 자체는 20 라인입니다. 따라서 파형 노브를 3에서 100으로 변경하여 읽고있는 WAV를 표시하고 램프 / 카운터를 사용하여 WAV 파일 (배열)을 읽습니다. WT가 수정되었습니다.

7 년의 Synth 경험을 바탕으로 좋아하는 신디사이저의 오실레이터 기능을 20 개 라인으로 변경하여 웨이브 어레이를 읽을 수 있도록 조정하는 것이 좋습니다. WT는 20 줄의 로직 만 사용하고 나머지 신디사이저는 LFO, 필터, 입력 매개 변수, 사전 설정 메모리 등이 더 중요합니다. 대신 좋아하는 신디사이저를 사용하고 WAV 파일 및 폴더로 WT 웨이브 라이브러리를 찾고 WT 기능을 갖춘 fav 신디 오실레이터는 거의 동일하게 들리며 처리 비용이 낮습니다.

신디사이저는 일반적으로 웨이브에 Sin, Sqr, Saw, Antialiased OSC 기능을 사용합니다 ...

웨이브 테이블 신디사이저는베이스에서 약 20 줄의 코드와 10 / 20 / 100ds의 웨이브를 사용합니다. 각 웨이브는 이상적으로 모든 옥타브에서 샘플링됩니다. 웨이브 테이블 사운드 라이브러리를 얻을 수 있다면 신디사이저는 루프, 피치 시프트, 사운드 및 프로 신디사이저도 여러 옥타브를 사용하여 옥타브를 믹싱 할 수 있습니다.

WT 함수=

  • WAV 파일을 N 배열로로드
  • 파형 변경= WAV 목록에서 파형 배열 선택
  • 원하는 Hz에서 파형 배열 읽기

    wavescanner 기능=

    • 2 개의 웨이브 사이에서 크로스 페이드하고 xfade를 LFO에 할당합니다 (예 : 사인 및 xfade).

      엔벨로프, 필터, 진폭 및 기타 모든 기능은 모든 신디사이저의 웨이브 생성 기능과 독립적입니다.

      신디사이저를위한 가장 강력한 심리 음향 도구는 음표의 디지털 톤에서 벗어난 것임을 기억하십시오.이를 유니슨 디튠이라고합니다. 신디사이저의 음향 특성은 대부분 코러스와 유니슨 디튠에서 나옵니다.

      WT는 더 고급 신디사이저에서 더 긴 섹션의 단일주기입니다. 단일 기간 항목은 코드에 작성하기가 매우 쉽습니다. 고급 WT는 N주기, 즉 피아노가 2 ~ 3 초 동안 지속되는 웨이브로 옥타브 당 샘플링되며, 이는 옥타브를 통해 음질이 변경됨을 의미하므로 복잡한 WT는 여러 옥타브 녹음으로 옥타브마다 크로스 페이드됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top