unimidi를 사용하여 루비 프로그램으로 소리를 냅니다

7668 단어 unimidiRuby

윈도우즈 7의 루비 환경에서 소리를 냅니다.


친구가 루비로 작곡 소프트웨어를 만들고 싶다고 했어요.그는 프로그래머는 아니지만 음악을 할 수 있다.그래서 루비를 배워서 작곡 소프트웨어를 만들어 보고 싶어요.루비는 간단하기 때문에 루비로 음악을 하는 것을 추천합니다.실제로 루비를 사용하여midi로 소리를 내보냅니다.
다양한 작업이 윈도우즈 7 파워힐에서 진행되고 있다.

윈도우즈 7에서 루비로 소리 낼 준비


루비로 소리를 내기 위해 다음과 같은 준비를 하세요.
  • git 설치
  • 루비 설치
  • bundler의 설치
  • 샘플 파일 버리기
  • unidi의 설치
  • 유니디의 샘플을 떨어뜨리기
  • 유니디의 샘플을 보고 있습니다.
  • 유니미디의 샘플을 시험해 봤어요.
  • 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를 앞에 놓아야 합니다.

    좋은 웹페이지 즐겨찾기