Q&A

  • 도레미파솔라시도 주파수를 알고 싶습니다.
안녕하십니까?



다름이 아니라, 제가 피아노 프로그램을 만들고 있는데요...



1옥타브 '도' 부터 시작해서 2옥타브 '미'에서 끝나는 음계의 주파수를 알고 싶습니다.



물리학관련 여러 사이트를 돌아다녀도 이 음계에 대한 주파수는 나와있지 않네요.



참고로, 저는 양병규님이 올리신 자료를 토대로 피아노 프로그램을 만들었는데요... 영~ 음계가 맞지 않아서 고전을 면치 못하고 있습니다.



누구 이 음계들에 대한 주파수를 알고 있으신 분이 계시나요?

알려주신다면.... 골백번이라도 감사를 드리겠습니다 ㅠ.ㅠ



덤으로 피아노 소리를 낼 수 있는 주파수도 알려주셨으면... 더욱더 감사드리구요... ^^ 푸리에곡선을 사용해서 열심히 테스트해도 아직까지 피아노소리에 근접하지 못하고 있습니다. 정 안되면 오르간소리까지는 도달해보고 싶네요.



끝까지 읽어주셔서 감사합니다.

항상 즐거운 하루가 되십시오.

6  COMMENTS
  • Profile
    이경문 2001.09.24 19:39
    국제 피치음 = 피아노의 A음(피아노의 정중앙에 있는 A건반의 진동수) : 440Hz



    a := 440 * Power(2, 0 / 12)

    a# := 440 * Power(2, 1 / 12)

    b := 440 * Power(2, 2 / 12)

    c := 440 * Power(2, 3 / 12)

    c# := 440 * Power(2, 4 / 12)

    d := 440 * Power(2, 5 / 12)

    d# := 440 * Power(2, 6 / 12)

    e := 440 * Power(2, 7 / 12)

    f := 440 * Power(2, 8 / 12)

    f# := 440 * Power(2, 9 / 12)

    g := 440 * Power(2, 10 / 12)

    g# := 440 * Power(2, 11 / 12)



    a# := 440 * Power(2, 12 / 12)

    ...





    일반적으로 사용하는 7음계(c d e f g a b)를 사용하며,

    주파수를 분석하기 위해서는 12음계(c c# d d# e f f# g g# a a# b)를 사용합니다.

    주파수는 등차수열이 아니고 등비수열이기 때문에

    한 octave가 올라 가면 주파수가 2배씩 되는 건 아시져?



    쩝, 예전에 pc speaker로 음악 연주할 때 필요해서 사용하던 게 생각나네요...



    깔쌈보이 wrote:

    > 안녕하십니까?

    >

    > 다름이 아니라, 제가 피아노 프로그램을 만들고 있는데요...

    >

    > 1옥타브 '도' 부터 시작해서 2옥타브 '미'에서 끝나는 음계의 주파수를 알고 싶습니다.

    >

    > 물리학관련 여러 사이트를 돌아다녀도 이 음계에 대한 주파수는 나와있지 않네요.

    >

    > 참고로, 저는 양병규님이 올리신 자료를 토대로 피아노 프로그램을 만들었는데요... 영~ 음계가 맞지 않아서 고전을 면치 못하고 있습니다.

    >

    > 누구 이 음계들에 대한 주파수를 알고 있으신 분이 계시나요?

    > 알려주신다면.... 골백번이라도 감사를 드리겠습니다 ㅠ.ㅠ

    >

    > 덤으로 피아노 소리를 낼 수 있는 주파수도 알려주셨으면... 더욱더 감사드리구요... ^^ 푸리에곡선을 사용해서 열심히 테스트해도 아직까지 피아노소리에 근접하지 못하고 있습니다. 정 안되면 오르간소리까지는 도달해보고 싶네요.

    >

    > 끝까지 읽어주셔서 감사합니다.

    > 항상 즐거운 하루가 되십시오.

  • Profile
    깔쌈보이 2001.09.24 19:54
    안녕하세요?



    님의 말씀... 정말 저에겐 보석보다 값진 것이었습니다.

    아래 도지성님과 함께...



    항상 님에게 좋은 일만 있기를 멀리 부산에서 기원하겠습니다.



    두분이 도와주셨는데, 제가 해결을 못하면 제가 바보겠네요 ^^



    꼭 해결하여서 좋은 결과를 내도록 약속드리겠습니다.



    감사합니다.

    수고하십시오.



    -ps-



    for i=1 to 100

    begin

    MessageBox(handle, '감사합니다. ^^', '머리 박기', MB_OK);

    end;

  • Profile
    이경문 2001.09.24 20:00
    헉, ShowMessage를 100번이나...

    enter치다가 시간 다 가겠네요. ^^



    깔쌈보이 wrote:

    > 안녕하세요?

    >

    > 님의 말씀... 정말 저에겐 보석보다 값진 것이었습니다.

    > 아래 도지성님과 함께...

    >

    > 항상 님에게 좋은 일만 있기를 멀리 부산에서 기원하겠습니다.

    >

    > 두분이 도와주셨는데, 제가 해결을 못하면 제가 바보겠네요 ^^

    >

    > 꼭 해결하여서 좋은 결과를 내도록 약속드리겠습니다.

    >

    > 감사합니다.

    > 수고하십시오.

    >

    > -ps-

    >

    > for i=1 to 100

    > begin

    > MessageBox(handle, '감사합니다. ^^', '머리 박기', MB_OK);

    > end;

  • Profile
    깔쌈보이 2001.09.24 22:05
    ^^

    제가 100번 맞게 하나 확인해보시라구요... ^^



    저.. 게을러서 한번씩 건너 뛸때도 있거든요 ^^



    감사합니다.

  • Profile
    도지성 2001.09.24 19:21


    왜 1옥타브부터 하시려는지 모르겠지만...

    일단 음의 기준은 '4옥타브의 라'인 A4가 기준입니다.



    A4의 주파수가 440Hz 이고 한옥타브가 높아질 때

    주파수는 두배가 되고 한 옥타브 낮아 질 때 주파수는

    반으로 줄게 됩니다.



    그리고 피아노의 건반은 옥타브당 12개이므로

    A#4 = A4 * 1+( 2^(1/12) )

    B4 = A#4 * 1+( 2^(1/12) )



    뭐.. 이런식으로 각 건반의 주파수가 계산이 되고..

    총 건반이 88개 이므로 상한과 하한의 값을 for 루프

    돌려서 찾으시면 됩니다..



    그리고 피아노의 음색을 내려면 피아노의 피치와 엔빌로프를

    알야야 합니다.. 피치는 음색을 결정하게 도고 엔빌로프는

    특성을 나타내게 되는데.. 음이 시작할때의 음향곡선과 시간..

    최고점에서 떨어질때의 시간, 그것을 유지하는데의 시간,

    마지막으로 소멸되는데의 시간을 계산해 주어서 주파수

    곡선을 만들어 내야 합니다.



    또한 전자음처럼 느끼지 않게 하려면 배음이라는 것을

    고려해야 합니다. 피아노는 현악기죠 ? ( 건반 악기라고요 ? )

    현악기는 항상 현 간에 공진이 존재합니다.

    어떤 주파수끼리 공진이 되는가는 고교 물리2에 보면

    잘 나와 있으니 참고하시구요...



    ( 배음과 엔빌로프만 조절하면 이론적으로 모든 악기가

    소프트웨어 적으로 구현됩니다.. )



    이런식으로 만들어 내면 그것이 샘플러가 되고 ...

    현재는 Direct Music이 공짜니까.. 노력하지 않고

    이것을 쓰면 다 구현이 됩니다...

    ( Direct Music 은 강좌를 참고.. )





    그리고 단지 건반을 구현하시겠다고 하시면 그냥 midiOut..()

    함수를 쓰세요.. 거기서 ShortMessage 라는 것을 사용하면

    MIDI 에서 정의된 255 개의 악기에 대해 모든 음역에 걸쳐

    다 사용할 수 있습니다. 악기 지정하고 음계 지정하고 길이를

    지정해서 메시지를 보내면 출력됩니다.. ( 물론 MIDI 메시지를

    공부하셔야 합니다.. )



    요새는 MPU401 칩이 없는 사운드 카드는 없으니 기본적으로

    다 지원될 겁니다...







    깔쌈보이 wrote:

    > 안녕하십니까?

    >

    > 다름이 아니라, 제가 피아노 프로그램을 만들고 있는데요...

    >

    > 1옥타브 '도' 부터 시작해서 2옥타브 '미'에서 끝나는 음계의 주파수를 알고 싶습니다.

    >

    > 물리학관련 여러 사이트를 돌아다녀도 이 음계에 대한 주파수는 나와있지 않네요.

    >

    > 참고로, 저는 양병규님이 올리신 자료를 토대로 피아노 프로그램을 만들었는데요... 영~ 음계가 맞지 않아서 고전을 면치 못하고 있습니다.

    >

    > 누구 이 음계들에 대한 주파수를 알고 있으신 분이 계시나요?

    > 알려주신다면.... 골백번이라도 감사를 드리겠습니다 ㅠ.ㅠ

    >

    > 덤으로 피아노 소리를 낼 수 있는 주파수도 알려주셨으면... 더욱더 감사드리구요... ^^ 푸리에곡선을 사용해서 열심히 테스트해도 아직까지 피아노소리에 근접하지 못하고 있습니다. 정 안되면 오르간소리까지는 도달해보고 싶네요.

    >

    > 끝까지 읽어주셔서 감사합니다.

    > 항상 즐거운 하루가 되십시오.

  • Profile
    깔쌈보이 2001.09.24 19:47
    안녕하십니까?



    먼저 감사의 말씀을 드리고 싶습니다.



    for i:= 0 to 100 begin

    MessageBox(handle, '감사합니다. ^^', '머리박기', MB_OK);

    end;



    직접 골백번 감사를 드리지 못해 Coding으로 대신했습니다. ^^



    제가 음계에 대해서는 1자 무식이라서 제가 평소에 듣는 '도'라는 옥타브가 1옥타브인줄 알았습니다. 그런데.. 그게 4옥타브라니....

    정말 질문보다 더 값진 답변을 얻어서...

    뭐라고 감사의 말씀을 드려야 할 지 모르겠습니다.



    님이 주신 좋은 정보를 가지고 적극 활용을 해보겠습니다.



    항상 님께 좋은 일만 있기를 멀리 부산에서 기원하겠습니다.



    -ps-



    제가 이 문제를 해결하다 주파수에 대한 난관에 부딪히면, 계속 질문을 해도 되겠습니까?

    질문을 하는 사람으로써 예의는 아닌것 같지만, 다음에 다른 방법으로 님께 꼭 보답드릴 것을 약속드리면서, 감히 도움을 청합니다.



    감사합니다.

    수고하십시오.

    • 이경문
      2001.09.24 19:39
      국제 피치음 = 피아노의 A음(피아노의 정중앙에 있는 A건반의 진동수) : 440Hz a := 440 * Power(2, 0 ...
    • 깔쌈보이
      2001.09.24 19:54
      안녕하세요? 님의 말씀... 정말 저에겐 보석보다 값진 것이었습니다. 아래 도지성님과 함께... 항상...
    • 이경문
      2001.09.24 20:00
      헉, ShowMessage를 100번이나... enter치다가 시간 다 가겠네요. ^^ 깔쌈보이 wrote: > 안녕하세요? ...
    • 깔쌈보이
      2001.09.24 22:05
      ^^ 제가 100번 맞게 하나 확인해보시라구요... ^^ 저.. 게을러서 한번씩 건너 뛸때도 있거든요 ^^ ...
    • 도지성
      2001.09.24 19:21
      왜 1옥타브부터 하시려는지 모르겠지만... 일단 음의 기준은 '4옥타브의 라'인 A4가 기준입니다. A4...
    • 깔쌈보이
      2001.09.24 19:47
      안녕하십니까? 먼저 감사의 말씀을 드리고 싶습니다. for i:= 0 to 100 begin MessageBox(handl...
    • 초보
    • 2001.09.24 02:01
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 스파토이
      2001.09.24 18:58
      키설정이 잘못 되었을것 같습니다. 소스를 보내주시면, 무료로 고쳐 드리죠 ^^* TUpdateSQL의 키 설...
    • 지락...
      2001.09.24 03:47
      초보 wrote: > 파라독스 테이블에 UpdateSql을 사용해서 데이타를 저장하는데 > 처음 저장은 이상없이 되...
    • 초보
      2001.09.27 23:06
      Query 를 Close 안하고 Error 를 없앨 수 있는 방법을 찾고 있어요. 그런 방법은 없나요 ? 지락... wr...
    • 꼴통
    • 2001.09.24 00:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 사이비쥐<;●●~
      2001.09.24 01:34
      꼴통 wrote: > 안녕하세여 꼴통입니다. > 폼이 Show될때 Panel컴포넌트를 코딩으로 생성하는 방법을 알고...
    • 용이
    • 2001.09.23 23:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김편용
      2001.09.24 18:15
      용이 wrote: > 머가 잘못된건지 좀 봐주세요. 부탁드립니다. > 그냥 값을 받아서 입력하는건데...안돼네...
    • dskang
    • 2001.09.23 10:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 서성호
      2001.09.24 10:09
      dskang wrote: > 나그네 님 key:=#0; 의미가 무엇을 뜻하는지 알고 싶습니다. > 부탁 드립니다. > ...
    • fdaiu
      2001.09.23 11:01
      dskang wrote: > 나그네 님 key:=#0; 의미가 무엇을 뜻하는지 알고 싶습니다. > 부탁 드립니다. > #...
    • 이석민
      2001.09.23 13:19
      이석민 wrote: > > 나모 웹에디터와 똑같은 MDI Tab을 구현하고자 하는데 > 아무리 머리를 굴려봐도 뾰...
    • 이경문
      2001.09.24 00:19
      C++ 코드인데 참조가 되는지 모르겠네여... HINSTANCE hInst = ::LoadLibrary((LPCTSTR)szDesFile); if...
    • 해결맨
      2001.09.24 19:50
      procedure TForm1.Button2Click(Sender: TObject); var jpeg1 : TjpegImage; jpeg2 : TjpegImage; ...
    • ET
    • 2001.09.23 02:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조건일
      2001.09.23 12:18
      우선 My SQL을 디비로서 봐주시는 델피언이 있어서 반갑습니다... 개인적으로 리눅서&델피언이라 생각하며...
    • 사이비쥐<;●●~
      2001.09.23 21:09
      델완전초보 wrote: > 학원 프로그램을 공부하는데요 종강일자와 개강일자를 두개의 datetimepicker을 사용...
    • 이현신
    • 2001.09.23 01:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.09.24 19:56
      안녕하세요. 최용일입니다. 16이 나오는것이 정상입니다. 빠른 속도를 내기 위해서 4바이트 옵티마이...
    • 나그네
      2001.09.23 02:00
      > string grid에서 입력이 이루어지게 하려면 어떤 속성을 설정해야 하는지? Options->goEditing 를 True ...
    • irookie
    • 2001.09.23 00:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 바람개비
      2001.09.23 01:55
      > 작성자 > 전자우편 > 제목 움... 규칙이 있네요. =,> 이걸 기준으로... 두번째 레코드를 기준으로.....
    • 다소
    • 2001.09.22 22:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 사이비쥐<;●●~
      2001.09.23 21:11
      다소 wrote: > TDatabase컴포넌트를 올리고 따불클릭해서 db명 username, password 적어주고 > Login Pro...
    • 아미
    • 2001.09.22 22:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • kakarous
      2001.09.22 22:16
      아미 wrote: > 탭키를 누르면 다음 컴포넌트로 포커스가 이동하잖아요.. > 이 기능을 왼쪽, 오른쪽 커서...
    • 바보
    • 2001.09.22 19:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • neps
      2001.09.22 20:19
      바보 wrote: > 고수님들 파라미터가 무엇인가요? > 파라미터의 의미좀 내려주세요 > 그리고 어디에 쓰는...
    • arisam
    • 2001.09.22 19:52
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 예삐
    • 2001.09.22 19:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 마그넷
      2001.09.22 21:46
      앗 디폴트 값에 대해서 물으셨네여..ㅡㅡ 그건 데이터베이스 설계시에...디폴트를 걸으셔야져..DBGrid ...
    • 마그넷
      2001.09.22 21:44
      글쎄여... 님이 말씀하신대루...스트링 그리드야..당연히 혼자 노는 애니까 셀에다가 때려 넣음 들어가지...