3. 樂譜中的秘密
3. 樂譜中的秘密
演奏小星星竟然要拼這麼長的積木!
演奏小星星竟然要拼這麼長的積木!
如果能找到隱藏在樂譜中的秘密
如果能找到隱藏在樂譜中的秘密
我們就能用更簡單的方法,來演奏小星星!
我們就能用更簡單的方法,來演奏小星星!
找出重複的段落
找出重複的段落
仔細聆聽並觀察小星星這首歌,
仔細聆聽並觀察小星星這首歌,
你發現了嗎?
你發現了嗎?
有些旋律重複出現...
有些旋律重複出現...
圖1. 小星星樂譜中的秘密
樂譜中隱藏的秘密!
樂譜中隱藏的秘密!
觀察音符在五線譜的位置,或是觀察對應音階出現的順序(如圖1)。
我們會發現小星星這首曲子是由三個一樣的段落:A、B、C重複組合而成的!
A - B - C - C - A - B
建立函式來記錄A、B、C段的旋律
建立函式來記錄A、B、C段的旋律
發現小星星中重複出現的A、B、C段的旋律後,
發現小星星中重複出現的A、B、C段的旋律後,
我們可以建立「函式積木」分別記錄這三段旋律。
我們可以建立「函式積木」分別記錄這三段旋律。
- - -
- - -
跟著指引,一起進行!
跟著指引,一起進行!
- - -
- - -
圖2. 選取舞台
✅ 點選角色區中的「舞台」
✅ 點選角色區中的「舞台」
出現藍色框框,代表選擇成功囉!
出現藍色框框,代表選擇成功囉!
(如圖2)
(如圖2)
圖3. 點選「建立一個積木」
✅ 點一下「函式積木」,「建立一個積木」,依序加入:
✅ 點一下「函式積木」,「建立一個積木」,依序加入:
函式:定義 A
函式:定義 A
函式:定義 B
函式:定義 B
函式:定義 C
函式:定義 C
圖4. 三片定義積木
✅ 檢查程式區,是否有這三片定義積木(如圖4)。
✅ 檢查程式區,是否有這三片定義積木(如圖4)。
圖5. 將A旋律移至定義A積木下方
✅ 從點擊綠旗下方,把 A 旋律的積木拖曳到「定義 A」積木下方(如圖5)。
✅ 從點擊綠旗下方,把 A 旋律的積木拖曳到「定義 A」積木下方(如圖5)。
定義A底下應包含:
定義A底下應包含:
音樂:演奏音階(60)(1)拍
音樂:演奏音階(60)(1)拍
音樂:演奏音階(60)(1)拍
音樂:演奏音階(60)(1)拍
音樂:演奏音階(67)(1)拍
音樂:演奏音階(67)(1)拍
音樂:演奏音階(67)(1)拍
音樂:演奏音階(67)(1)拍
音樂:演奏音階(69)(1)拍
音樂:演奏音階(69)(1)拍
音樂:演奏音階(69)(1)拍
音樂:演奏音階(69)(1)拍
音樂:演奏音階(67)(2)拍
音樂:演奏音階(67)(2)拍
圖6. 將B旋律移至定義B積木下方
✅ 從點擊綠旗下方,把 B旋律的積木拖曳到「定義 B」積木下方(如圖6)。
✅ 從點擊綠旗下方,把 B旋律的積木拖曳到「定義 B」積木下方(如圖6)。
定義B底下應包含:
定義B底下應包含:
音樂:演奏音階(65)(1)拍
音樂:演奏音階(65)(1)拍
音樂:演奏音階(65)(1)拍
音樂:演奏音階(65)(1)拍
音樂:演奏音階(64)(1)拍
音樂:演奏音階(64)(1)拍
音樂:演奏音階(64)(1)拍
音樂:演奏音階(64)(1)拍
音樂:演奏音階(62)(1)拍
音樂:演奏音階(62)(1)拍
音樂:演奏音階(62)(1)拍
音樂:演奏音階(62)(1)拍
音樂:演奏音階(60)(2)拍
音樂:演奏音階(60)(2)拍
圖7. 將C旋律移至定義C積木下方
✅ 從點擊綠旗下方,把 C 旋律的積木拖曳到「定義 C」積木下方,並且把剩餘的音階積木刪除(如圖7)。
✅ 從點擊綠旗下方,把 C 旋律的積木拖曳到「定義 C」積木下方,並且把剩餘的音階積木刪除(如圖7)。
定義C底下應包含:
定義C底下應包含:
音樂:演奏音階(67)(1)拍
音樂:演奏音階(67)(1)拍
音樂:演奏音階(67)(1)拍
音樂:演奏音階(67)(1)拍
音樂:演奏音階(65)(1)拍
音樂:演奏音階(65)(1)拍
音樂:演奏音階(65)(1)拍
音樂:演奏音階(65)(1)拍
音樂:演奏音階(64)(1)拍
音樂:演奏音階(64)(1)拍
音樂:演奏音階(64)(1)拍
音樂:演奏音階(64)(1)拍
音樂:演奏音階(62)(2)拍
音樂:演奏音階(62)(2)拍
使用函式積木
使用函式積木
我們創造了三個可以記錄A、B、C旋律的函式積木,
我們創造了三個可以記錄A、B、C旋律的函式積木,
這些新積木也可以自由組合來執行
這些新積木也可以自由組合來執行
試試看怎麼組合函式積木來演奏樂曲吧!
試試看怎麼組合函式積木來演奏樂曲吧!
- - -
- - -
跟著指引,一起進行!
跟著指引,一起進行!
- - -
- - -
圖8. 使用建立好的函式
✅ 在「當綠旗被點擊」的下方,依序加入函式積木:
✅ 在「當綠旗被點擊」的下方,依序加入函式積木:
A、B、C、C、A、B(如圖8)。
A、B、C、C、A、B(如圖8)。
圖9. 三個函式與綠旗積木成果
✅ 檢查一下,程式區最後會有(如圖9):
✅ 檢查一下,程式區最後會有(如圖9):
三個函式的定義區:定義A、定義B、定義C。
三個函式的定義區:定義A、定義B、定義C。
「當綠旗被點擊」的下方共有6片函式積木,A - B - C - C - A - B。
「當綠旗被點擊」的下方共有6片函式積木,A - B - C - C - A - B。
圖10. 成果展示 (音符為示意圖)
✅ 點擊綠旗,觀察成果(如圖10):
✅ 點擊綠旗,觀察成果(如圖10):
完成!聽聽看是不是順利的演奏小星星呢?
完成!聽聽看是不是順利的演奏小星星呢?
「函式積木」是什麼?
「函式積木」是什麼?
樂譜中有好幾個重複的段落,演奏整首樂曲要使用好多的積木!
樂譜中有好幾個重複的段落,演奏整首樂曲要使用好多的積木!
我們可以將重複出現的指令,製作成特定的「函式積木」
我們可以將重複出現的指令,製作成特定的「函式積木」
每次需要的時候就可以使用,讓程式變得更精簡哦!
每次需要的時候就可以使用,讓程式變得更精簡哦!
函式積木是怎麼執行的呢?
函式積木是怎麼執行的呢?
當主程式執行到「函式積木」時,會先跳到函式定義的地方,依序由上而下執行包在函式內的每一片積木,結束後再回到主程式。
圖11. 主程式與函式的執行過程
「函式積木」演奏小星星的過程
「函式積木」演奏小星星的過程
我們將重複的旋律分別記錄在不同的函式積木 A、B、C。
我們將重複的旋律分別記錄在不同的函式積木 A、B、C。
當綠旗被點擊後,主程式與函式積木A、B、C 會互相執行(如圖11),最後演奏出完整的小星星!
當綠旗被點擊後,主程式與函式積木A、B、C 會互相執行(如圖11),最後演奏出完整的小星星!
* 這裡只使用函式積木A、B做示範。
主程式與函式的互動過程
主程式與函式的互動過程
函式積木也可以加入其他類型的積木,設計出獨一無二的函式積木哦!
函式積木也可以加入其他類型的積木,設計出獨一無二的函式積木哦!
執行的順序與效果(如圖12):
執行的順序與效果(如圖12):
■ 紅色箭頭為主程式執行的順序
■ 紅色箭頭為主程式執行的順序
■ 黃色箭頭為函式執行的順序
■ 黃色箭頭為函式執行的順序
圖12. 主程式與函式的執行過程