unimidi를 사용하여 루비 프로그램으로 소리를 냅니다
윈도우즈 7의 루비 환경에서 소리를 냅니다.
친구가 루비로 작곡 소프트웨어를 만들고 싶다고 했어요.그는 프로그래머는 아니지만 음악을 할 수 있다.그래서 루비를 배워서 작곡 소프트웨어를 만들어 보고 싶어요.루비는 간단하기 때문에 루비로 음악을 하는 것을 추천합니다.실제로 루비를 사용하여midi로 소리를 내보냅니다.
다양한 작업이 윈도우즈 7 파워힐에서 진행되고 있다.
윈도우즈 7에서 루비로 소리 낼 준비
루비로 소리를 내기 위해 다음과 같은 준비를 하세요.
루비로 소리를 내기 위해 다음과 같은 준비를 하세요.
git 설치
git 페이지에서 윈도우즈용git를 떨어뜨려 설치합니다.떨어진 exe를 실행합니다.많이 썼지만 넥스트 키를 누르면 돼요.
git가 필요한 이유
이후github에서 샘플용 파일을 잃어버려서 필요합니다.
git 확인
일어서다
PS C:\Users\shibacow> git --version
git version 1.9.2.msysgit.0
PS C:\Users\shibacow>
루비 설치
ruby 페이지에서download를 떨어뜨린 다음exe를 실행합니다.
루비가 필요한 이유
음악은 필수다.
루비가 있으니까 확인.
일어서다
PS C:\Users\shibacow> ruby --version
ruby 2.0.0p481 (2014-05-08) [x64-mingw32]
PS C:\Users\shibacow>
bundler 설치
bundler 설치
파워셸을 시작하고 다음 명령을 실행합니다.
실행할 명령
gem install bundler
실행 결과PS H:\prog\ruby\ruby_unmidi_sample> gem install bundler
Successfully installed bundler-1.6.2
Parsing documentation for bundler-1.6.2
1 gem installed
PS H:\prog\ruby\ruby_unmidi_sample>
버블을 넣은 이유.
버블을 추가하면 다른 시스템과의 충돌을 방지할 수 있습니다.특히 음악류 소프트웨어는 다른 시스템과 충돌하기 쉬우므로 다른 환경을 준비하기 위해 버블을 사용하여 환경을 미리 구분한다.
bundler 확인
일어서다
PS C:\Users\shibacow> bundle --version
DL is deprecated, please use Fiddle
Bundler version 1.6.2
PS C:\Users\shibacow>
샘플 코드를 얻다.
유니디를 설치하지만 설치 스크립트가 준비되어 있어서 그 설치를 사용합니다.이 페이지에는 이미 샘플이 있다.
이곳에서 복제하는 것은 매우 빠르다
일어서다
git clone [email protected]:shibacow/ruby_unmidi_sample.git
실행 후이런 표시로
unidi 가져오기
unimidi는 루비를 위한midi 라이브러리입니다.루비로 미디를 칠 수 있어요.
파워셸에서 방금 다운로드한 곳으로 이동합니다.
cd ruby_unmidi_sample
유니디를 설치하다.다음 단계를 수행합니다.PS H:\prog\ruby\ruby_unmidi_sample> bundle install
실행 결과는 다음과 같습니다.PS H:\prog\ruby\ruby_unmidi_sample> bundle install
Fetching gem metadata from https://rubygems.org/.............
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Installing ffi 1.9.3
Installing alsa-rawmidi 0.2.14
Installing ffi-coremidi 0.2.0
Installing midi-jruby 0.0.12
Installing midi-winmm 0.1.10
Installing unimidi 0.3.5
Using bundler 1.6.2
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
PS H:\prog\ruby\ruby_unmidi_sample>
다음과 같이 표시됩니다.이렇게 준비됐습니다.
바라다보다
아무거나test.열어봐.
require 'unimidi'
notes = [36,40,43,48,52,60,64]
duration = 1
UniMIDI::Output.gets do |output|
notes.each do |note|
output.puts(0x90, note, 100) # note on message
sleep(duration) # wait
output.puts(0x80, note, 100) # note off message
end
end
note on 및 note off 명령을 보냅니다.음정notes = [36,40,43,48,52,60,64]
결정하다.다른 음정을 넣으면 그 소리도 추가된다.미디를 재생시켜.
아까 파워셸에서.
PS H:\prog\ruby\ruby_unmidi_sample> bundle ex ruby midi_test.rb
집행 결계DL is deprecated, please use Fiddle
Select a MIDI output...
0) Microsoft GS Wavetable Synth
> 0
PS H:\prog\ruby\ruby_unmidi_sample>
MIDI output을 선택하는 옵션이 있으므로 0 또는 1을 선택합니다.이 경우 0만 선택할 수 있습니다.그럼 한번 해보세요.
주의
bundle install에 넣었기 때문에 다른 디렉터리에서 실행할 경우 unimidi가 없다고 할 수 있습니다.이런 상황에서
bundle install
유니디를 설치하다.그리고 루비의 집행
bundle ex ruby file名
이렇게 bundle ex를 앞에 놓아야 합니다.
Reference
이 문제에 관하여(unimidi를 사용하여 루비 프로그램으로 소리를 냅니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shibacow/items/8122713da8f9e3e6c3bf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)