2010-07-31 10 views
3

좋아,이 부분은 왼쪽 필드에서 약간 벗어날 수 있지만 어쨌든 시도 할 것입니다.프로그래밍 방식으로 패드 사운드 만들기

패드는 일종의 주변 전자 음향이며 '험'입니다. this과 같은 것입니다.

코드로 어떻게 만들 수 있습니까? Processing, OpenFrameworks, C, Objective-C 또는 C++ 중 하나를 사용합니다. 나는 오랫동안 프로그래밍하지 않았다는 것을 명심하십시오.

이 결과가 답을 얻게되면 매우 인상적입니다!

오케이 ... 이동!

답변

5

나는 여기에 적용된 "패드"라는 말을 들어 본 적이 없지만, 중요한 코드를 연주하는 신스 오르간 사운드처럼 들린다.

처음에는 단일 음을 나타 내기 위해 음표의 기본 빈도 (예 : A Major에 대해 말하는 경우 440Hz)와 그 다음 몇 배수 (880, 1760)에서 sin 파형을 생성 할 수 있습니다 , 3520). 그리고 그것들을 일부 (감소하는) 가중치와 합산하십시오. 그런 다음 동일한 방식으로 렌더링 된 코드 (C# 및 E)의 다른 음을 추가합니다.

이것이 지금까지 유용하게 들리는 경우 필요한 경우 확장 할 수 있습니다.

편집 : "일부 (감쇠) 가중치"는 몇 배 증폭 된 배음을 추가하는 것을 의미합니다.

F = 440; // Hz 
tone[t] = A * sin(t/F) + B * sin(t/(2*F)) + C * sin(t/(3*F)); // + etc, perhaps 

경우, 아마도,

A = 1.0; 
B = 1.0/2.0; 
C = 1.0/3.0; 

또는 일부 그런 건.

ADSR 필터의 경우 (생성 된 파형을 보면) 선택한 "공격"기간 동안 0에서 1로 증가하는 증폭에 의해 생성 된 파형을 곱한 다음 "감쇠"기간 동안 어느 정도 감소합니다 당신은 (아마도 0.7)을 선택하고, 당신이 지탱 된 음을 "풀어"갈 때 선형 적으로 0까지 떨어지게됩니다.

에코/리버브의 경우, 약간의 지연 시간을두고 파형을 다시 파형에 추가 할 수 있습니다.

D = 4410; // 10 msec at 44.1 kHz., as an example value 
tone[t] += 0.5 * tone[t-D]; 
+0

예,이 유용합니다. 이미 처리 중에 구현했으며 좋은 소리가 나기 시작했습니다. 몇 가지 : 1. '약간의 가중치'로 무엇을 의미합니까? 2. 긴 공격, 릴리스 단계 및 시끄러운 지연이 도움이 될 수 있지만 프로그래밍 방식으로 시작해야 할 위치를 알지 못한다고 들었습니다. 어떤 충고? –

2

나는 구체적인 코드 예제와 함께 당신을 도울 수는 없지만, 나는 FM (주파수 변조) 합성와 함께 할 수있는 당신의 사운드 샘플에 가깝다 뭔가를 말할 것입니다.

코드를 작성하기 전에 인터넷에서 소프트웨어 FM 신디사이저를 다운로드 할 수 있습니다 (무료로 사용할 수있는 프로그램이 많이 있으며 일부는 독립 실행 형 응용 프로그램이고 일부는 VST 플러그인 임). 약간만 실험 해보십시오. 원하는 사운드를 생성하고 해당 코드를 작성하십시오. (그때까지는 오실레이터, 주파수 등의 어떤 조합이 필요한지 알 수있는 기회가 될 것입니다.)

2

사운드 프로그래밍에 익숙하지 않다면, 정말 쉬운 자바 사운드를 봐야합니다. 배우고 사용하기. 나는 당신이 C * 태그를 가지고 있다는 것을 알고 있지만 그렇게 쉬운 API가 있는지 모르겠다.

사운드를 만드는 것은 기본적으로 말하듯이, 당신이 "그냥"당신이 사운드를 좋아하는 방식으로 differnt 파도를 결합해야합니다.;-)

관련 문제