나는 RSI 문제가 있고 30 개의 다른 컴퓨터 키보드를 사용해 보았는데 모두 고통을 겪었다. 피아노를 연주해도 통증이 없습니다. 나는 통증 문제없이 약 20 년 동안 피아노를 연주했습니다. MIDI 키보드에서 MIDI를 캡처하고 키보드 스트로크를 출력하는 방법이 있는지 알고 싶습니다. MIDI에 대해서는 전혀 알지 못하지만이 신호를 키 입력으로 변환하는 방법에 대한 지침을 원합니다.
나는 RSI 문제가 있고 30 개의 다른 컴퓨터 키보드를 사용해 보았는데 모두 고통을 겪었다. 피아노를 연주해도 통증이 없습니다. 나는 통증 문제없이 약 20 년 동안 피아노를 연주했습니다. MIDI 키보드에서 MIDI를 캡처하고 키보드 스트로크를 출력하는 방법이 있는지 알고 싶습니다. MIDI에 대해서는 전혀 알지 못하지만이 신호를 키 입력으로 변환하는 방법에 대한 지침을 원합니다.
답변:
완벽한 미디 지원 (BASS)을 갖춘 .NET의 좋은 라이브러리는 http://www.un4seen.com으로 이동 하십시오 .
그리고 키보드 미디 노트를 키 등으로 번역하는 다른 부분에서는 ActiveX / COM 및 DLL 인터페이스 인 AutoItX를 autoIt로갑니다. 정보 및 다운로드는 http://www.autoitscript.com/site/autoit/ 로 이동 하십시오.
키보드 드라이버를 작성할 필요가 없습니다.
몇 년 동안 MIDI 프로그래밍을 해 본 적이 없지만 기본 아이디어는 매우 건전합니다 (말장난 없음).
MIDI는 "이벤트"(또는 "메시지")의 스트림이며, 가장 기본적인 두 가지는 "노트 온"과 "노트 오프"입니다. 노트 번호 (0 = C 중간 C 아래 5 옥타브, 127 = G 중간 옥타브 위의 G보다 5 옥타브 (반음 단위). 이 이벤트는 속도에 민감한 ( "터치 감지") 키보드에서 "속도"숫자를 전달하며 0과 127 사이의 힘을가집니다.
벨로 시티, 코드, 페달 사이에서 피아노 키보드를위한 "타이핑"인터페이스를 만들 수 있다고 생각합니다. 주석에서 언급했듯이 특히 화음은 매우 강력한 기술이 될 수 있습니다. 왜냐하면 랭크 앤 파일 스테 노 그래프는 스테 노 타입 기계 를 사용하여 사람들이 여러 시간 동안 연속적으로 이야기하는 사람들과 계속해서 대화 할 수 있습니다. 일반 타자기 스타일의 키보드를 통해 어떤 시간에도 사용할 수 없습니다. 기계 음반 법과 마찬가지로 코드 및 코드 시퀀스의 의미에 대한 "사전"이 필요합니다. (기계 음반의 소프트웨어 측에서 일 했었다고 말할 수 있습니까?)
이를 위해 기본적인 부분은 다음과 같습니다.
소프트웨어와 가장 광범위하게 호환 되려면 키보드 장치 드라이버로 작성해야합니다. 기본 하드웨어 (귀하의 경우 피아노 키보드)와 통신하여 키보드 이벤트의 소스 역할을하는 운영 체제의 플러그인입니다. Windows 및 Linux의 경우 아마도 C를 사용하고 싶을 것입니다.
그러나 키 스트로크를 생성 하고 있기 때문에 (수년 전에 시도했던 키 스트로크를 가로 채지 않으려는 경우) 인공 키 스트로크를 보내기 위해 운영 체제의 모든 기능을 사용할 수 있습니다. Windows에는 그렇게하기위한 인터페이스가 있습니다 (아마도 몇 가지 생각합니다. SendInput
하지만 비슷한 것을하는 "저널"인터페이스가 있음을 알고 있습니다). 다른 운영 체제도 마찬가지입니다. 장치 드라이버 경로가 어색하고 Java와 다른 언어를 사용해야하기 때문에 시작하기에 충분할 것입니다. (저는 Java의 열렬한 팬이지만 운영 체제가 장치 드라이버와 통신하는 데 사용하는 인터페이스는 C를 통해보다 쉽게 소비되는 경향이 있습니다.)
업데이트 : 키 스트로크에 대한 코드의 "사전"에 대한 추가 정보 :
기본적으로 사전은 가장 긴 접두사로 검색 하는 trie (감사, @Adam)입니다. 세부:
기계 협착에서, stenographer는 stenotype 기계에서 여러 키를 동시에 누른 다음 모두 해제하여 기록합니다. 그들은 이것을 키보드의 "스트로크"라고 부릅니다. 피아노에서 코드를 연주하는 것과 같습니다. 항상 (항상 그런 것은 아님) 스트로크는 음절의 음절에 해당합니다. 음절과 마찬가지로 한 번의 스트로크 (코드)는 자체적으로 모든 의미를 갖지만 다른 경우에는 다음 스트로크와 결합 된 의미 만 있습니다. ( "good"과 "good", "bye")를 생각하십시오. 비록 그들이 공부 한 학교의 영향을 많이받을 것이지만, 각 안무가들은 그들이 무엇을 의미하는지에 대한 자신의 "사전"을 가지고있을 것입니다. 사전에는 협착 부분 (짧은 경우 "steno")이 1 행 길이이거나 여러 스트로크 길이 인 항목이 있습니다. 종종 시작 스트로크가 동일한 여러 항목이 길이와 후속 스트로크로 구분됩니다. 예를 들어 (여기서는 실제 steno를 사용하지 않고 자리 표시 자만 사용) 다음 항목이있을 수 있습니다.
A = 알파 A / B = 알파벳 A / B / C = 알파벳 A / C = 에어컨 B = 꿀벌 B / C = 때문에 C = 바다 D = 개 D / D = 디디
(이러한 글자는 음표가 아니라 추상 마커 일뿐입니다.)
A
여러 항목 을 시작하고 C
획 을 변환하는 방법 은 이전에 A
,을 보았는지 B
또는 새로 시작 했는지에 따라 다릅니다 .
또한 (위의 아주 작은 샘플에는 표시되지 않았음에도 불구하고) 하나 이상의 단어 나 문구가 아닌 "단어"를 재생하는 여러 가지 방법이있을 수 있습니다. Stenographers는 손의 위치에 따라 이전 단어에서 다음 단어로 쉽게 넘어갈 수 있도록합니다. 거기에는 음악과 명백한 비유가 있으며, 피아노 연주에 부정적인 영향을 미치는 것을 방지하고 실제로 RSI에 도움이 될 가능성을 극대화하기 위해 음악을 연주하는 것과 유사한 타이핑 흐름을 만들 수 있습니다.
steno를 표준 텍스트로 번역 할 때, 우리는 다시 "가장 긴 접두사 일치"검색을 사용합니다. 번역 알고리즘은 처음 작성된 첫 번째 스트로크로 시작하여 해당 스트로크로 시작하는 항목을 찾습니다. 항목이 하나만 있고 길이가 한 스트로크이면 "사용할 항목"이라고 확실하게 말하고 해당 텍스트를 출력 한 후 다음 스트로크로 새로 시작할 수 있습니다. 그러나 그 스트로크는 다양한 길이의 여러 항목을 시작합니다. 다음 스트로크를보고 순서대로이 두 스트로크로 시작하는 항목이 있는지 확인합니다. 일치 할 때까지 계속합니다.
위의 사전에서 다음 순서를 보았습니다.
ACBBCABCABD
번역 방법은 다음과 같습니다.
A
다양한 길이의 세 항목의 시작입니다. 다음 스트로크를 보라.C
A/C
하나의 항목 만 일치합니다. "에어컨"을 출력하고 다음 스트로크로 새로 시작하십시오.B
B
두 항목을 시작합니다. 다음 스트로크를 보라.B
B/B
아무것도 시작하지 않습니다. 가장 긴 이전 일치 ( B
)를 가져 와서 그 결과 ( "bee")B
= "bee"인 경우에도 B
버퍼에 스트로크가 있습니다. 두 항목을 시작하므로 다음 스트로크를 살펴보십시오.C
B/C
하나의 항목과 일치합니다. "왜냐하면"출력하고 다음 스트로크로 새로 시작하십시오.A
A
세 항목을 시작합니다. 다음 스트로크를 보라.B
A/B
두 항목을 시작합니다. 다음 스트로크를 보라.C
A/B/C
하나의 항목 만 일치합니다. "알파벳"을 출력하고 다음 스트로크로 새로 시작하십시오.A
A
세 항목을 시작합니다. 다음 스트로크를 보라.B
A/B
두 항목을 시작합니다. 다음 스트로크를 보라.D
A/B/D
일치하는 것이 없으므로 가장 긴 이전 일치 ( A/B
)를 사용하여 "알파벳"을 출력하십시오. 그 잎 우리를 D
여전히 버퍼이다.D
두 개의 항목을 시작하므로 일반적으로 다음 스트로크를 살펴볼 것입니다. 그러나 모든 스트로크를 처리 했으므로이를 개별적으로 고려하십시오. 격리 된 상태에서 "dog"으로 변환되므로 출력합니다.위의 사항에 유의하십시오.
A/B
"알파"와 "꿀벌"이 아닌 "알파벳"으로 번역되어야합니다.E
이 "untranslate"입니다.USB (또는 PS / 2?) 키보드를 에뮬레이트하는 하드웨어에서 무언가를하는 것을 고려하십시오. 더 이상 특정 OS 또는 특정 OS API에 의존하지 않습니다. 하드웨어 솔루션은 시간의 시험을 견뎌 낼 것입니다. 다른 사람이 Windows 11을 실행하는 경우 Windows 7에서 이전 API를 사용하지 마십시오! Arduino 는 배우기 매우 쉽습니다.
Arduino에 대한 많은 정보가 있으며 도움이됩니다. 초보자를 위해 구축 된 하드웨어 해킹 플랫폼입니다. 구글이 아두 이노를 추진함에 따라 이제는 더 커질 것이다 .
직접 빌드하는 방법에 대한 조언을 덜 찾고 있고 원하는 것을 달성하기 위해 이미 어떤 리소스가 있는지 묻고있는 것처럼 들립니다. OS에 따라 처음부터 자체 프로그램을 작성하지 않고도 여러 가지 방법으로이를 수행 할 수 있습니다.
비어 있는. 들어 맥 OS X 10.3까지 . 이것은 특히 "모든 MIDI 키보드를 컴퓨터 키보드로 완전히 사용할 수있는 기능"과 함께 제공됩니다 .
Free / Postcardware (조금 이상하다). 내용은 Windows 2000 및 최대 및 Mac OS X . 처음에는 AutoHotkey 유형 사용법에 더 적합하게 보이지만 더 자세히 살펴보면 원하는 것을 잘 수행 할 수 있다고 생각합니다.
비어 있는. 들어 맥 OS X . "즉시 사용 가능한"솔루션은 아니지만 기본 장치 구성에 익숙하다면 그렇게 나쁘지 않아야합니다.
MIDI DotNet의 .NET에서 소스 코드 샘플을 사용하여 하드웨어에 액세스 할 수 있습니다 .
MIDI 노트 데이터 스트림을 생성하기위한 소스 코드로서의 완전한 작업 샘플은 VB 5 / 6-Tipp 0521에 있습니다 : MIDI-Töne erzeugen (Visual Basic 6.0, 어딘가에 .NET 버전)
키보드 스트로크를 시뮬레이트하는 방법은 VB 5 / 6-Tipp 0155 : Tastaturereignisse simulieren (Visual Basic 6.0, .NET 버전도 있음)에 있습니다.
키 입력 인식은 Tipp-Upload : VB.NET 0266 : Globaler KeyHook에 설명되어 있습니다.
그런 다음 피아노 연주자에게 좋은 작동 매트릭스를 사용하십시오.
피아노와 좋은 연주자 일 때는 키보드에 10 개의 손가락을 사용할 수 있으며 매트릭스를 사용할 수 있다면 내가 생각하는 컴퓨터 키보드 사용자보다 훨씬 빠를 수 있습니다. :-)
이 경우, 귀하의 질문을 올바르게 이해하면 큰 일이 아닙니다.
대학에서 피아노 연주를 공부 한 다음 상호 작용 디자인, 프로그래밍 및 Vim 사용에 대해 배웠 으므로 실제로 이와 같은 것을 프로토 타이핑하는 데 많은 시간을 보냈습니다.
멀티미디어 아티스트 " Pure Data "의 그래픽 프로그래밍 언어 와 Alex Andre의 외부 x11key 를 사용하여 Linux에서이 작업을 매우 빠르게 수행 할 수 있습니다 .
Mac에서는 MidiStroke 를 사용할 수 있습니다 . Windows의 방법에는 MidiOx 및 AutoHotKey 도구가 포함되어 있다고 생각합니다 . 다른 시간에 Max / MSP 용 Java 플러그인을 사용하는 버전이있었습니다 . Patrice Colet 이 Pure Data 외부의 창을 만든 것으로 생각 하지만 더 이상 찾을 수없는 것 같습니다. 또한 Windows에서이를 수행 할 수있는 MaxMSP 용 외부 가 있습니다. 마지막으로, 무료이지만 멋진 Osculator 는 원하는 기능을 수행 할 수 있습니다. 기능 페이지를 참조하십시오.
그것이 작동했을 때, 나는 레이아웃으로 툴링을 멈출 수 없었기 때문에 결코 붙어 있지 않았습니다. 그래도 모니터를 전기 키보드에 두는 것이 멋졌습니다! 행운을 빕니다.
당신은 "MIDI에 대해 전혀 모른다"고 말했습니다. MIDI 기술은 일단 이해하면 매우 간단하지만 처음에는 혼동 될 수 있습니다. MIDI의 기초를 이해하는 데 큰 도움이 된 자료 중 하나 (MIDI 상호 작용을 프로그래밍하려는 경우 확실히 필요함) 는 Technophobe를위한 MIDI 라는 책 입니다. 읽기 쉬운 책이며 매우 유용합니다.
대화 형 멀티미디어를 개발 한 경험에 따르면 어느 장치에서나 신호 / 입력을 연결하고 매핑하는 데 도움이되는 매우 유사한 두 가지 프로그램이 있습니다.
Mac 환경의 경우 Max 이고 PC 환경의 경우 Pure Data 입니다. 둘 다 온라인 설명서와 YouTube 자습서가 많이 있습니다. 비디오 Max / MSP Tutorial 1-컴퓨터 키보드를 midikeyboard (ableton 스타일)로 사용하여 Max에 내장 된 프로그램을 통해 컴퓨터 키보드를 MIDI 키보드 입력 (기본적으로 수행하려는 작업과 정반대 임)에 매핑합니다. 동일한 패턴을 사용하지만 신호 / 매핑을 반대로하여 원하는 결과를 얻을 수 있습니다.
AutoHotKey 는 장치의 키와 버튼을 매크로에 다시 매핑 할 수있는 Windows 용 무료 오픈 소스 유틸리티입니다. QWERTY 키보드, 조이스틱 및 마우스 매크로를 기본적으로 지원합니다.
그러나 찾고있는 특정 매핑을 지원하는 구현을 찾을 수있었습니다. 이 두 스레드는 프로세스를 설명합니다.
사용 사례에 대한 논의 인 AutoHotkey의 MIDI IN 지원 . 저자는 MIDI IN 입력을 감지하고이를 키 누르기로 변환 할 수 있는 프로그램을 찾고 있었습니다 .
MIDI 입력 라이브러리 , 저자의 문제에 대한 솔루션 및 실제로 의도 한 결과를 구현하는 AutoHotKey에 게시 된 코드 / 패치.
기본적으로 AutoHotKey는이 사용자의 사용자 지정 패치와 함께 MIDI 키보드에서 QWERTY 키보드의 입력 신호로 매핑하는 데 필요한 것을 정확하게 제공합니다. 매핑을 설치, 구성 및 정의하기 만하면됩니다.
다른 답변 중 일부는 일반적으로 MIDI 및 MIDI 프로그래밍에 대해 훨씬 더 광범위한 정보를 제공했지만 게시물 상태로는 원하는 것이 아닌 것 같습니다. 가능하면 더 많은 도움을 드리고 싶지만 찾고있는 정보 유형에 대해 더 구체적으로 설명하면 더 쉬울 것입니다. 예를 들어, MIDI 키보드의 입력 신호를 QWERTY 키보드의 신호 로 변환하는 방법에 더 관심이 있습니까 , 아니면 특정 문제 에 대한 기본 솔루션 을 찾는 데 관심이 있습니까? 아직 해결되지 않은 것은 무엇입니까?
Teenys 마이크로 컨트롤러를 사용하여 자신의 USB 키보드를 매우 빠르게 해킹 할 수 있습니다.
실제로 USB 키보드 를 만드는 방법에 대한 예제 코드가 있습니다 .
이 두 가지 방법으로 접근 할 수 있습니다.
오래된 피아노를 가져와 스위치를 십대에 직접 연결하십시오.
추가 논리를 추가하여 MIDI 포트 및 필요한 디코딩에 연결하십시오.
Bome의 MIDI 번역기를 사용해보십시오 .
그것은 크로스 플랫폼에서 작동하며, 모든 MIDI 입력을 쉽게 키 스토크 로 변환하고 , 설정 및 구성이 빠르며, 개인 용도로 무료입니다.
쉽게 설정하는 방법에 대한 튜토리얼 인 빠른 팁 : MIDI 번역 – MIDI에서 키 스트로크 까지의 튜토리얼 이 있습니다.
기본적으로 코드 및 수정 자 키를 포함하여 수행 할 수있는 작업의 무한한 가능성이 있습니다. 라이브 오디오 장비에서 피아노를 사용하여 DAW 를 제어하는 데 사용하며 문제가 없었습니다.
Java에서는 JMF (Java Media framework)를 사용하여 MIDI 신호를 변환 할 수 있습니다. 키보드 디자인의 기본은 사용하기 쉽고, 즉 사용자 인터페이스입니다. 자주 사용하는 문자 / 기호를 편리하게 배치하십시오.
Java 사운드 자원 의 샘플 코드 및 API : 예 : DSP (Digital Signal Processing)는 신호 처리 방법을 이해하는 데 도움이됩니다.
더 많은 참고 문헌 :
귀하의 모든 토론에서 분명합니다. 기술적 인 관점에서 휠을 다시 발명하고 싶지 않습니다. 그러나 일단 당신이 연결되고 (이 질문이 요구하는) 일을하고 일을하더라도 여전히 대부분의 일을 할 수 있습니다 : 당신은 두뇌를 훈련시켜야합니다. 당신은 또한 디자인 문제를 완전히 밖으로 컴퓨터 기술 전문가의 rhealm의 - 그렇게 할 수있는 영리한, 가장 효율적인 방법을 발명해야합니다. 당신이나 우리 중 누구라도 부족할 것입니다.
운 좋게도,이 문제는 수세기에 걸쳐 해결되었지만 해결되었습니다 ...
stenography를 배우십시오!
예, 이렇게하면 잭이 다시 설정됩니다. 그러나 결국 수백 시간의 가치가 있으며 결국 덜 유리한 결과는 무엇입니까? 또한, stenography Wikipedia 기사 는 '피아노 키보드처럼 보입니다'라고 말합니다.
물론, 사이드 쇼 효과를 원치 않는 한. 나는이 가능성에 대해 결코 생각하지 않았다는 것을 인정해야 할 것입니다. 누군가 피아노 키보드에서 텍스트를 버리는 것을 보는 것은 정말 재미 있을 것입니다 !
터치 패드 가있는 USB 키보드로 시작 하거나 포인팅 스틱 이 더 인체 공학적 일 수 있습니까? Plover 를 사용 하여 번역하십시오. 프로그래밍) 또는 스레드 Re : Plover 키보드 를 따라 자신의 USB stenography 키보드를 굴 리거나 stenotype을 구입 하십시오 .
행운을 빕니다!
pthread
하시겠습니까?
이 문제를 해결하려면 몇 가지가 필요합니다.
키보드에서 MIDI 데이터를 캡처하는 방법. 인터페이스에 따라 : MIDI 인터페이스 (클래식) 또는 USB MIDI 인터페이스 (현대)는 가장 많은 옵션을 제공하므로 컴퓨터에 대한 인터페이스입니다. USB 호스트 마이크로 컨트롤러는 컴퓨터를 사용하는 것만 큼 간단하지 않습니다.
MIDI 데이터를 키 스트로크로 변환하는 체계. 한 명의 사용자가 지적한 것처럼 건반의 수는 피아노 건반의 수에 의존하지 않기 때문에 갈 길입니다.
운영 체제에 키를 삽입하는 방법. 이를 위해서는 정확한 저수준 드라이버가 필요합니다. 키보드 및 마우스 데이터를 Windows 7의 응용 프로그램에 삽입하는 응용 프로그램을 가지고 놀았으며, 응용 프로그램이 현재 초점이 맞는지에 따라 색다른 것이 될 수 있습니다. 인터페이스의 가장 어려운 부분입니다. 작동 하는 것은 직렬 인터페이스가있는 HID USB 키보드 마이크로 컨트롤러 를 만드는 것 입니다.
직렬 인터페이스는 가상 직렬 포트를 만듭니다. MIDI 데이터를 읽고 키 입력을 생성하는 소프트웨어는 가상 직렬 포트로 직렬 메시지를 보낼 수 있습니다. 마이크로 컨트롤러는 키 입력을 보내 표준 키보드 입력처럼 보입니다. 이렇게하면 MIDI 포트와 USB MIDI 키보드를 모두 인터페이스 할 수 있습니다.
흠,이 유형의 인터페이스를 사용하면 마우스를 시뮬레이션하고 마우스 축과 버튼에 대한 피아노 키 설정을 사용할 수도 있습니다. 압력은 마우스 포인터 속도를 결정하는 데 사용될 수 있습니다. 따라서 마우스도 제거 할 수 있습니다. 이 방법의 또 다른 이점은 연결하는 모든 유형의 입력 장치가 가상 직렬 포트와 통신하여 키보드 및 마우스 이벤트를 생성 할 수 있다는 것입니다. 따라서 드럼 페달이나 조이스틱과 같은 다른 하드웨어를 추가하려면 직렬 인터페이스와 통신하는 프로그램을 조정해야합니다.
위의 또 다른 내용은 Arduino를 사용하기 위해 위에 게시 된 것과 비슷하지만 USB 기반 음악 키보드를 처리하기 위해 Sparkfun의 USB Host Shield 도 포함 합니다. 이를 통해 Arduino를 부팅 로더 칩에서 키보드 또는 키보드 마우스 콤보로 프로그래밍 할 수 있으며 장치가 USB 기반 음악 키보드 의 USB 호스트 역할을 할 수 있습니다. 그런 다음 두 유형에 모두 적용됩니다. 그래도 가상 직렬 포트 방법이 더 유연하고 장기적으로 프로그래밍하기가 더 쉽다고 생각합니다. Arduino 장치는 데스크톱 프로그램이나 서비스보다 변경하기가 어렵습니다.
또 다른 가능성이있을 수 있습니다 : 화음 한손 키보드가 이미 존재합니다. 나는 그들에 대한 비디오를 보았지만 손이 다쳤는지 여부를 결정해야 할 것입니다.
.NET DirectSound 인터페이스와 같은 것을 사용하여 MIDI 장치에 연결하는 것은 매우 쉽습니다. 대상 MIDI 장치를 식별 한 다음 수신 메시지에서들을 코드를 수신해야합니다 (Google을 통해이를 수행하는 방법에 대한 기사가 있음).
MIDI 입력을 키보드로 사용하기 때문에 기본적으로 감지해야 할 두 가지 MIDI 메시지, 즉 노트 온 및 노트 오프가 있습니다. MIDI 메시지는 명령, 음표 및 속도를 지정하는 3 개의 데이터 바이트입니다. 음표는 음표 번호 일뿐입니다 (때때로 '나쁜'MIDI 스택은 예상되는 속도가 0 인 음표를 보냅니다).
메시지를 번역하면 키보드 출력은 .NET에서 매우 단순해야합니다.
기술에 대한 다른 답변에는 많은 조언이 있습니다. 나는 단지 당신에게 실제 MIDI 메시지에 대한 아이디어를주고 싶었습니다. 행운을 빕니다!
사운드 카드를 통해 외부 MIDI 키보드를 컨트롤러로 사용하여 사용 하려는 운영 체제 및 / 또는 DAW 프로그램에 관계없이 더 나은 결과를 얻을 수 있습니다. 그런 다음이를 GB 소프트웨어 (또는 기타)로 라우팅하고 톤은 실시간으로 그러한 방식으로 제공 한 많은 사운드를 생성합니다.
사운드 카드가 MIDI I / O (in / outs / thrus)를 지원하지 않으면 문제가되지 않습니다. 외부 MIDI 탁상용 변환기에 대한 연구 및 투자를 고려할 수 있습니다. 많은 사람들이 MIDI 출력을 USB 2.0으로 추가 변환 할 수 있습니다 (기존 사운드 카드를 모두 전달 함).
예를 들어 : 컴퓨터 키보드와 연필 도구를 사용하여 Z 및 X 변경 키 옵션을 통해 "사람과 같은"유예 메모 결과를 얻는 것은 매우 어렵습니다. 대신, 자신의 손가락으로 물리적 옥타브 레지스터 범위의 MIDI 키보드를 사용하여 바로 연주 할 수 있습니다.
예산 제약이 수반 될 수 있음을 알고 있습니다. 그러나 Radio Shack에서 $ 100.00 미만 ($ 이하) 이하로 판매 된이 겉보기 저렴한 "Casio"유형 5 옥타브 키보드 중 일부는 필요한 모든 것입니다 (일부 내장 사운드 패치 및 시퀀서 모듈 사운드 및 핸들 다른 것들도 놀랍도록 잘).
기존 사운드 카드의 외부 MIDI 변환기에 관해서는 특별히 Mac 플랫폼을 염두에두고 다음과 같이 Google 검색 을 실행 했습니다 .
이 외부 MIDI 변환 정보는 처음에는 번거로울 수 있으므로 고려 사항 및 예산에 대해 "사용자 친화적"으로 분류했습니다.
DAW를 사용할 때 가상 키보드를 VST 로 사용하는 데 아무런 문제가 없습니다 . 그들은 자신의 자리가 있습니다.
그러나 당신은 뛰어난 키보드 연주자처럼 들립니다. 그렇다면 방금 언급 한 외부 MIDI 변환 / 키보드 옵션을 고려해보십시오.
행운을 빕니다. 이것이 여러분에게 도움이 될만한 아이디어를 주었기를 바랍니다.
직접 프로그래밍하고 싶지는 않지만 문제가 해결되기를 원한다면 USB-MIDI 키보드를 구입하면 MIDI 출력 대신 QWERTY 키보드 출력 신호를 보내도록 키를 다시 할당 할 수 있습니다. 예를 들어 M-오디오 공리 프로
MIDI 키보드는 자체를 표준 QWERTY 키보드로 식별하므로이 방법은 표준 USB 키보드를 지원하는 모든 OS 및 모든 컴퓨터에서 작동합니다.
간단한 AutoIt 스크립트를 사용하여 MIDI 이벤트를 읽을 수 있습니다 ( MIDI 입력 참조) .
MIDI UDF 가 필요 하고 키 누름을 시뮬레이션 할 수도 있습니다 .
MIDI 이벤트를 읽는 것은 쉽지만 다른 MIDI 컨트롤러 (악기)에는 다른 기능이 있습니다. 먼저 MIDI 피아노가 할 수있는 작업을 찾은 다음 시뮬레이션 된 QWERTY 키보드 프레스에 해당 기능을 가장 잘 매핑하는 방법을 확인하십시오 .
당신이 원하는 경우에, 당신은 당신이 (들면, 그 무엇을하는지 볼 수 있도록 화면이나 트레이에 뭔가를 가질 수 Shift, Ctrl및 Alt시뮬레이션).
화음 키보드를 볼 수 있습니다 . 사용하기 전에 드라이버를 작성할 필요가 없다는 장점이 있으며, 일부는 피아노 키보드의 레이아웃과 유사합니다.
Java 코딩을 알고 있다면 다음과 같이 사용할 수 있습니다.
먼저 'Note on'이벤트를 원하는 키 입력에 매핑 javax.sound.midi.Receiver
하는 send(..)
메소드를 사용하여를 구현하십시오 .
getMessage
메소드를 사용하여 MidiMessage의 컨텐츠를 가져 와서 사용자의 방식으로 해석해야합니다. 메시지 바이트의 의미는 MIDI 메시지 에서 찾을 수 있습니다 .
특정 키보드 키에 대해 'note on'또는 'note off'를 수신 한 후 KeyEvent 클래스의 상수 (C # 4-> KeyEvent.VK_A 등)를 지정하여 원하는 키에이를 맵핑 할 수 있습니다. . 그런 다음이 키 코드를 java.awt.Robot
의 keyPress 및 keyRelease 메소드에서 사용하여 실제로 키 입력을 OS 및 기타 애플리케이션에 보낼 수 있습니다.
나는 Brian O'Dell의 대답에 동의합니다. 이것이 내 프로젝트라면 하드웨어로 할 것입니다. 플랫폼과 하드웨어에 독립적이라는 장점이 있습니다. 박스는 MIDI-USB 인터페이스와 PC API의 필요성을 대체합니다.
mbed 는 배우기 매우 쉬운 고속 프로토 타입 플랫폼이며 Arduino IMHO (온라인 컴파일러, 512KB 플래시, 96MHz, C ++ 언어)에 비해 여러 가지 장점이 있습니다. 그것은이 USB 키보드 인터페이스 와 미디 인터페이스 USB 당신을 위해 작성된 사전을.
커뮤니티는 매우 친근하고 기꺼이 도와주고 기꺼이 MIDI 및 USB hid 에뮬레이션을 사용하는 기존 프로젝트가 많이 있습니다. 유튜브에서 "mbed MIDI"등을 검색하십시오.
Linux를 사용하는 경우 Footware를 사용하십시오 .
원하는 것을 정확하게 찾으십시오-원하는대로 키 피치로 MIDI 피치를 조정하면 ...
나는 이것이 나 이외의 사람에게는 유용 할 것이라고 생각하지 않았다.
Arduino 와 같은 마이크로 컨트롤러 기반 시스템을 사용해보십시오 .
이것은 어렵지 않습니다.
나는 당신이 Windows 에 있다고 가정 하고 있지만, 확실하지 않습니다. 평범한 오래된 C ++ 로 MIDI 시퀀서 http://pianocheetah.com을 작성 했으며 피아노 키보드를 사용하여 명령을 실행할 수 있습니다. 키보드 입력 스트림으로 키를 누르는 것과 같은 일을 할 수 없었던 이유는 없습니다.
하지만 어서 처음부터 키보드를 배우는 데 얼마나 걸 렸는지 기억하십니까? 다시 하시겠습니까? 그리고 축복받은 키보드를 어리석게 보이는 열쇠 기호로 오염시킬 의향이 있습니까?
최소 26 개의 알파, 10 개의 숫자, 11 개의 구두점 및 12 개 이상의 기능 키와 이동 된 상태를 사용해야합니다. 60 개의 키와 시프트 된 상태입니다. 5 옥타브의 키를 태울 것입니다. 당신은 피아노 "홉"을 할 것입니다 = 모든 = 시간. 타이핑을 터치하면 작별 인사를합니다.
RSI 에서 자신을 구할 수는 있지만 다른 유형의 악몽을 만들었습니다.
그리고 직장에서 당신의 상사가 당신에게 MIDI 키보드를 사도록하는 행운을 빕니다.
진정한 피아노 연주법을 배웠다면 스트레스없이 연주하는 법을 배웠습니다. 온 그렇게 쿼티 (QWERTY) 키보드. 긴장이 없습니다. 천천히 시작하십시오.