와우 감사합니다. 저도 연주 프로그램 만드려는 중인데요.. 유용할것 같네요..
근데 미디파일을 동적으로 만들면 만들때 시간 걸리지 않나요? 미디파일 안만들고 미디음을 연주할수없는건가요?
eclipse ... 오픈 어떻게 하면되는거죠 ;; ㅠ_ㅠ 초보자인데 .. 이리저라 만져봐두 .. 다른파일 아래로 내려가던지 ;; 그래서 ;;
혹시 .. 로드하는 방법 간단하게 설명좀 부탁드려두 될까요 ^^;;
정말 유용하게 보았습니다.
감사합니다.
오래된 글이라 다시 보실지 모르겠지만... 기기에 내장된 악기소리는 어떻게 검색하셨는지 여쭤볼수 있을까요?
혹시 기기마다 소리가 다를꺼 같은 걱정이 들어서요...
GM_PROGRAMS의 내용과 MidiFileCreator DUMMY_BYTES의 내용을 어떻게 얻으셨는지 너무 궁금하네요...
검색중인데 잘 안나와용 ㅠㅠ
유익한 자료 감사합니다 ^^
질문좀 올려도될까요.. 제가 건반 누르면 소리 나는것이 아니라. 제가 임의대로 넣은 값을 소리로 출력하게 하려고 하는데요..
예로 도, 라는 곡을 클릭없이, 프로그램이 시작되자 마자 키보드를 누른것처럼 함수로 전달해줘서 소리가 나게 하려고 하는데,,
PITCHES 라는 배열이 도,레,미등에 음이고, GM_PROGRAMS이악기 종류라는것은 알겠는데,
키보드를 누르면 키보드를 누르는 위치를 받아, 스크롤폭, 건반 높이 등을 고려해서 계산된 값들에 결과를 전달되는 값을 받아서, 소리가 나게 넘겨 주는거같은데... 의심되기로는 int programNo. int octaveShift인데, 값을 임의적으로 주어도 소리가 안나네요...
어떤 값을 어떻게 전달해줘야 악기와 음이 입력되는지 알수있을까요...
현재도 유용하게 사용할 수 있는 좋은 소스네요. 감사합니다.
혹시나 잘 모르시는 분들이 계실것 같아서 올립니다.
한 건반을 매우빠르게 여러번 눌러보면 소리가 3번정도밖에 나지 않는 현상이 있습니다.
소스에서 다음 줄을
int streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
다음과 같이 고치면 잘 됩니다.
float streamCurrent = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
float streamMax = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float streamVolume = streamCurrent / streamMax;