실습

1. Player 클래스 만들기

지난 실습에서 작성한 playNote, play 함수 메소드를 가진 클래스 Player를 정의하고, 이 클래스를 활용하여 Lab#8-3에 주어진 테스트 케이스를 실행해보자. 악기는 MandoPlayer를 사용한다.

2. BPM 클래스 활용하기

Listing 9.4에 정의된 BPM 클래스를 dur 타입의 halfNote 변수를 추가하여 재작성하고, 이를 활용하여 위 Lab#9-1에서 만든 코드를 재작성해보자.

3. Lab#8-3 코드를 객체지향으로 재작성하기

Lab#8-4 코드를 Player, BPM 클래스를 활용하여 재작성해보자.

4. Lab#8-4 코드를 객체지향으로 재작성하기

Lab#8-5 코드를 Player, BPM 클래스를 활용하여 재작성해보자. 이 문제를 풀기 위해서 추가로 필요한 1/6, 1/3, 온 박자를 처리할 수 있도록 BPM 클래스는 확장해야 한다.

5. Lab#9-4 코드를 여러 파일로 나누어 구성하기

이번에는 Player 클래스는 player.ck 파일에 저장하고, BPM 클래스는 BPM.ck 파일에 저장하고, 나머지 부분은 initialize.ck, score.ck 파일로 나누어 작성하여 똑같이 작동하도록 해보자.

6. Clarinet을 상속하여 작성한 Listing 9.18의 MyClarinet 에 중복 메소드 추가하기

Listing 9.18의 noteOn 메소드는 MIDI 음에만 작동한다. 문자열로 표현한 계명과 실수 주파수 인수에도 작동하도록 두 개의 중복(overloading) 메소드를 추가해보자.