본문 바로가기
Programming/LOGO

LOGO : 변수(Variables) - 018 - 별이 흐르는 밤과 음악 연습 - 1

by The Programmer 2024. 9. 8.

1. Introduction

 

LOGO 사운드 그리고 미디MIDI 예제입니다. 첨부 파일이 반드시 필요한 예제입니다. 첨부 파일은 프로그램이 존재하는 위치의 하위 폴더로 data 폴더에 있어야 합니다. Logo 소스 파일이 있는 폴더에 하위 폴더로 data 폴더를 만들고 복사/붙여넣기 필요함.

 

 

2. Code

 

1) myMusic1 예제

더보기

; myMusic 1

; 일부 코드는 빠른 실행을 위해서 주석문 처리가 되었습니다. 의도적으로 Mute 시킴.

; 내용을 이해했다면 주석을 풀고 수정해서 사용해보세요.

; 이 프로그램들은 첨부 파일이 반드시 필요합니다.

; 이 예제에서는 폰트 사용법을 보여줍니다.

 

to draw
    rt 90 star1
    ;
    setlabelfont [ [D2Coding] 24 24 ]
    label [ Hello, James! ^.^                ..... ]
    ;
    ; myMusic
    ; myMIDI
    ;
    move1
    pentagon1    ; for check.
    ;
    ; setlabelfont [ [D2Coding] 24 24 ]
    ; setlabelfont [ [D2Coding] 12 12 ]
    ; setlabelfont [ [맑은 고딕] 24 24 ]
    ;
    move2
    ;
    setlabelfont [ [맑은 고딕] 12 12 ]
    label [ Hello, James! ^.^                ..... ]
    ; SOUND [1000 2000]
    ; F(herz), D(millisec).
    HT
end

to main
    setup
    draw
end

to move1
    pu fd :side
    pd
end

to move2
    pu fd (:side - 120)
    pd
end

TO myMIDI
  IGNORE MCI [open c:\\windows\\media\\flourish.mid type sequencer alias flourish]
  ; IGNORE MCI [open .\\data\\flourish.mid type sequencer alias flourish]
  ; IGNORE MCI [open .\\data\\onestop.mid type sequencer alias onestop]
  ;   
  ; .\\ means where Logo Project File "pentagon_ex_001_.lgo" exists.
  ; And the subfolder "data" is required. 
  ; 
  ; All mid files were in the system folder :
  ; c:windowsmedia\n  ;
  ;
  MCI [play flourish]
  ; MCI [play onestop]
  ;
  ; WAIT 600    ; 10 sec.
  WAIT 1200 
  ; WAIT 1800   ; 30 sec.
  ;
  MCI [stop flourish]
  ; MCI [stop onestop]
  ;
  MCI [close flourish]
  ; MCI [close onestop]
  WAIT 600    ; for safe close.
END

to myMusic
    SOUND [ 450 500 ]
    SOUND [ 450 500 ]
    SOUND [ 550 500 ]
    SOUND [ 550 500 ]
    SOUND [ 450 500 ]
    SOUND [ 450 500 ]
    SOUND [ 350 2000 ]
    ; SOUND [ 1000 500 ]
end

to pentagon1
    repeat 5 [ fd :side2 rt 72 ]
end

to setup
    Window Home CS PPT PD ST
    pu lt 90 fd 460 rt 90 fd 100 pd
    ;
    make "side 360
    make "side2 200

end

to star1
    repeat 5 [ fd :side lt 72 fd :side rt 144 ]
end

 

 

2) myMusic2 예제

 

더보기

; myMusic2

; 이 프로그램들은 첨부 파일이 반드시 필요합니다.

; 실제 음악 재생함. 전체 재생에 1분 이상 소요됨.

 

to draw
    rt 90 star1
    myMusic
    myMIDI
    ; SOUND [1000 2000]
    ; F(herz), D(millisec).
    ; HT
end

to main
    setup
    draw
end

TO myMIDI
  IGNORE MCI [open c:\\windows\\media\\flourish.mid type sequencer alias flourish]
  ; IGNORE MCI [open .\\data\\flourish.mid type sequencer alias flourish]
  ; IGNORE MCI [open .\\data\\onestop.mid type sequencer alias onestop]
  ;   
  ; .\\ means where Logo Project File "pentagon_ex_001_.lgo" exists.
  ; And the subfolder "data" is required. 
  ; 
  ; All mid files were in the system folder :
  ; c:windowsmedia\n  ;
  ;
  MCI [play flourish]
  ; MCI [play onestop]
  ;
  ; WAIT 600    ; 10 sec.
  WAIT 6000   ; 1 min.
  ;
  MCI [stop flourish]
  ; MCI [stop onestop]
  ;
  MCI [close flourish]
  ; MCI [close onestop]
END

to myMusic
    SOUND [ 450 500 ]
    SOUND [ 450 500 ]
    SOUND [ 550 500 ]
    SOUND [ 550 500 ]
    SOUND [ 450 500 ]
    SOUND [ 450 500 ]
    SOUND [ 350 2000 ]
    ; SOUND [ 1000 500 ]
end

to pentagon1
    repeat 5 [ fd :side2 rt 72 ]
end

to setup
    Window Home CS PPT PD ST
    pu lt 90 fd 460 rt 90 fd 100 pd
    ;
    make "side 360
    make "side2 80

end

to star1
    repeat 5 [ fd :side lt 72 fd :side rt 144 ]
end

 

 

 

3. Result

 

 

[ Sound and MIDI 예제 1 : Star and Using Fonts ]

 

[ Sound and MIDI 예제 2 : Star and Music ]

 

 

큰 별 하나 두둥! ~~

^.^;

 

그리고 소리와 음악 재생됨.

 

 

4. Notes 

 

1) 위 코드들의 핵심으로 주석 처리된 부분이 중요함.

 

to draw
    rt 90 star1
    myMusic
    myMIDI
    ; SOUND [1000 2000]
    ; F(herz), D(millisec).
    ; HT
end

 

 

2) MCI

 

MCI Play, Stop, Close.

 

 

3) Wait 명령어.

 

Wait 60

 

; 60의 의미는?

 

 

4) 폰트 사용법 :

 

- 괄호 사용과 가로 세로 크기 옵션에만 주의하면 됨.

 

setlabelfont [ [D2Coding] 24 24 ]
label [ Hello, James! ^.^                ..... ]

 

setlabelfont [ [맑은 고딕] 12 12 ]
label [ Hello, James! ^.^                ..... ]

 

 

■ 응용 연습 과제

1) 소리 파일 변경.

2) 소리 녹음.

3) 소리 주파수 변경해서 듣기.

 

 

  소리 주파수??? !!!

 

 

5. Files

 

1) Mute 버전 :

Pro_005_Pentagon_Ex_004_pentagon_and_Star_002_MIDI_001_mute.lgo
0.00MB

 

 

2) Play 버전 :

Test_001_.lgo
0.00MB

 

 

3) Data 파일 : 이 파일들은 위 Logo 소스 파일이 있는 위치에 하위 폴더로 data 폴더에 있어야 합니다. 실행될 때 data폴더를 찾습니다.

data.zip
0.04MB

 

 

4) 참고용 Sound 프로그램과 Data 파일(FMSLogo 공식 예제 파일, 일부 변경됨.) :

Test_.zip
0.96MB

 

 

6. Ref.

 

1) FMSLogo 공식 도움말

2) FMSLogo SourceForge 저장소 공식 예제.

 

 

Happy Programming!

^.^;