나는 C에서 수학적 웨이브 함수를 사용하여 사운드를 생성 해왔다. 프로젝트의 다음 단계는 웨이브를 다른 것으로 변조하기 위해 MIDI 키보드 컨트롤러에서 사용자 입력을 얻는 것이다. 피치.C 리눅스 디바이스 프로그래밍 - 똑바로/Dev에서 읽기
첫 번째 개념은 상대적으로 간단하며 리눅스가 리눅스이기 때문에 다른 파일처럼 원시 데이터 스트림을 장치에서 읽을 수 있다는 것이 었습니다.
그러나 연구 결과에 따르면 MIDI 컨트롤러 용 장치 드라이버를 작성하는 것이 압도적으로 권고됩니다. 일반적인 생각은 장치 파일이있을지라도 커널은 응용 프로그램이 read() 및 write()와 같은 함수를 호출 할 때 실행할 시스템 호출을 알 수 없습니다.
이러한 경고에도 불구하고 실험을 수행했습니다. MIDI 컨트롤러를 연결하고 cat'ed/dev/midi1 "장치 파일. 꾸준한 Null 문자 스트림이 나타 났고, MIDI 컨트롤러에서 키를 눌렀을 때 MIDI 장치가 출력해야하는 예상 메시지 청크에 해당하는 여러 바이트가 나타났습니다.
MIDI Protocol Info 그래서 제 질문은 다음과 같습니다
왜 cat'ed 스트림은이 방식으로 작동 하는가?
내 시스템에 플러그 앤 플레이 장치 드라이버가 이미 설치되어 있다는 의미입니까?
계속해서 장치 드라이버를 작성해야합니까, 아니면 파일처럼 읽을 수 있습니까?
이 영역에서 지혜를 공유해 주셔서 감사합니다.
대신 'C'프로그램에서 장치를 읽는 것이 좋습니다(). '유효한'데이터를보고 있다고 말하면 확실하지 않은 이유는 무엇입니까? btw, 이미 거기에 장치 드라이버가 있어야합니다. 그렇지 않으면 장치 파일이 없으며 액세스 할 수있는 방법이 없습니다. – KevinDTimm