3. 樂譜中的秘密


演奏小星星竟然要拼這麼長的積木!

如果能找到隱藏在樂譜中的秘密

我們就能用更簡單的方法,來演奏小星星!


找出重複的段落


仔細聆聽並觀察小星星這首歌,

你發現了嗎?

有些旋律重複出現...

圖1. 小星星樂譜中的秘密

樂譜中隱藏的秘密!

觀察音符在五線譜的位置,或是觀察對應音階出現的順序(如圖1)。
我們會發現小星星這首曲子是由三個一樣的段落:A、B、C重複組合而成的!
A - B - C - C - A - B


建立函式來記錄A、B、C段的旋律


發現小星星中重複出現的A、B、C段的旋律後,

我們可以建立「函式積木」分別記錄這三段旋律。

- - -

跟著指引,一起進行!

- - -

圖2. 選取舞台

✅ 點選角色區中的「舞台」


出現藍色框框,代表選擇成功囉!

(如圖2)

圖3. 點選「建立一個積木」

✅ 點一下「函式積木」,「建立一個積木」,依序加入:

函式:定義 A

函式:定義 B

函式:定義 C

圖4. 三片定義積木

✅ 檢查程式區,是否有這三片定義積木(如圖4)。

圖5. 將A旋律移至定義A積木下方

✅ 從點擊綠旗下方,把 A 旋律的積木拖曳到「定義 A」積木下方(如圖5)。


定義A底下應包含:

音樂:演奏音階(60)(1)拍

音樂:演奏音階(60)(1)拍

音樂:演奏音階(67)(1)拍

音樂:演奏音階(67)(1)拍

音樂:演奏音階(69)(1)拍

音樂:演奏音階(69)(1)拍

音樂:演奏音階(67)(2)拍

圖6. 將B旋律移至定義B積木下方

✅ 從點擊綠旗下方,把 B旋律的積木拖曳到「定義 B」積木下方(如圖6)。


定義B底下應包含:

音樂:演奏音階(65)(1)拍

音樂:演奏音階(65)(1)拍

音樂:演奏音階(64)(1)拍

音樂:演奏音階(64)(1)拍

音樂:演奏音階(62)(1)拍

音樂:演奏音階(62)(1)拍

音樂:演奏音階(60)(2)拍

圖7. 將C旋律移至定義C積木下方

✅ 從點擊綠旗下方,把 C 旋律的積木拖曳到「定義 C」積木下方,並且把剩餘的音階積木刪除(如圖7)。


定義C底下應包含:

音樂:演奏音階(67)(1)拍

音樂:演奏音階(67)(1)拍

音樂:演奏音階(65)(1)拍

音樂:演奏音階(65)(1)拍

音樂:演奏音階(64)(1)拍

音樂:演奏音階(64)(1)拍

音樂:演奏音階(62)(2)拍


使用函式積木


我們創造了三個可以記錄A、B、C旋律的函式積木,

這些新積木也可以自由組合來執行

試試看怎麼組合函式積木來演奏樂曲吧!

- - -

跟著指引,一起進行!

- - -

圖8. 使用建立好的函式

✅ 在「當綠旗被點擊」的下方,依序加入函式積木:

A、B、C、C、A、B(如圖8)。

圖9. 三個函式與綠旗積木成果

✅ 檢查一下,程式區最後會有(如圖9):

三個函式的定義區:定義A、定義B、定義C。

「當綠旗被點擊」的下方共有6片函式積木,A - B - C - C - A - B。

圖10. 成果展示 (音符為示意圖)

✅ 點擊綠旗,觀察成果(如圖10):

完成!聽聽看是不是順利的演奏小星星呢?


「函式積木」是什麼?


樂譜中有好幾個重複的段落,演奏整首樂曲要使用好多的積木!

我們可以將重複出現的指令,製作成特定的「函式積木」

每次需要的時候就可以使用,讓程式變得更精簡哦!


函式積木是怎麼執行的呢?

當主程式執行到「函式積木」時,會先跳到函式定義的地方,依序由上而下執行包在函式內的每一片積木,結束後再回到主程式。
圖11. 主程式與函式的執行過程

「函式積木」演奏小星星的過程

我們將重複的旋律分別記錄在不同的函式積木 A、B、C。

當綠旗被點擊後,主程式與函式積木A、B、C 會互相執行(如圖11),最後演奏出完整的小星星!


* 這裡只使用函式積木A、B做示範。



主程式與函式的互動過程

函式積木也可以加入其他類型的積木,設計出獨一無二的函式積木哦!


執行的順序與效果(如圖12):

■ 紅色箭頭為主程式執行的順序

■ 黃色箭頭為函式執行的順序

圖12. 主程式與函式的執行過程