scratch学习_和 Vicky 一起学习 Scratch 系列之十三 — 作曲

article/2025/9/19 23:37:04

趣乐博思计算机科学系列

趣乐博思计算机科学系列,以乐趣为首要前提,向少儿讲解最基本的计算机科学常识,在动手实践中培养孩子的创造力,思考力,想象力,逻辑思维能力和协同工作能力。
针对不同年龄段的孩子,从初始的可视图形化编程逐步过渡到高级计算机语言,并结合开源电子器件进行软硬件结合的项目制作,激发孩子们的积极性和对计算机科学的兴趣。

前言

上一期,我们学习了随机算法及其在 Scratch 中的使用,同时介绍了Scratch 中计时器的用法,创作一个使用随机和计时器的小游戏。

今天,我们来学习一下在 Scratch 中创作与演奏乐曲的内容,并演奏一首非常好听的乐曲。

好啦,开始吧~

Scratch 中的作曲

还记得吗,我们之前曾经学习过 Scratch 中播放音效和背景音乐的方法,今天我们的主题也是与音乐有关。

不过不同的是,我们今天不是播放现成的乐曲,而是自己来编曲,或对别人的乐曲进行改编。

和画笔类似,Scratch 的音乐功能也是一种扩展程序,我们需要在扩展里把它找到,之后左侧会出现音乐相关的代码块组:

7ba65c71bd4bcfdebedd5108a893b648.png

在扩展中选择音乐

eec7897bb24bc67ef9e4403e007f2e14.png

音乐代码块组

我们来看几个简单的例子:

5868cae8a8180fe10bcae51cccc99841.png

打击乐器

拖动 “击打 x y 拍 play drum x for y beats” 到脚本区,我们可以选择随意一种打击乐器,设定拍数后,点击一下就可以发出打击的声音。

同样道理,其他变化音高乐器的演奏是这样的:

580e48f347516b77939596b2dce88886.png

普通乐器

这里,我们同样可以选择任意一种乐器,它们进行演奏的方式是这样的:

ee7a1c3b5f8c85a86599afb76b1ffaa3.png

一般乐器的演奏

我们发现,一般乐器的演奏有两个关键点:

  1. 音符 note”,代表了声音的高低
  2. 节拍 beats”,代表了音符的时间

而我们选择的乐器则是代表这种乐曲所特有的音色。

乐器代码块组中还有关于演奏速度和休止符等其他音乐元素,都很简单,大家可以随意尝试一下。

这是演奏乐曲 “小星星” 的一个简单的示例:

49523a4969b822e3eab993d18774ef02.png

Twinkle, Twinkle, Little Star

Green Slaves 的演奏实现

绿袖子是一首传统的英格兰民谣,十六世纪开始流行于英格兰民间

在学习了的 Scratch 中音乐的基本用法后,我们来用音乐还原一下古老的英国传统民谣「绿袖子」的一个简单的片段。

首先,看一下这首曲子头两个小节的钢琴谱:

65903f05256d86ab2eb3b0e962d6f436.png

「绿袖子」钢琴谱

我们发现,这首曲子的演奏和刚才的 “小星星” 不太一样。

学过钢琴的小朋友都知道,这个谱子是由旋律和伴奏来组成的 —— 在同一时刻,几个手指可能需要同时按下几个琴键,当然,演奏出来的乐曲也会十分优美动听。

那怎么做呢?

还记得我们之前学过的 “广播” 吗?这里还是利用广播的基本原理 —— 在开始时,发送一个广播,乐曲的几个部分同时开始演奏,最终就变成了合声效果,曲子就演奏出来了。

根据这个思路,我们最终实现了这个小作品。

舞台背景和角色是这样的:

e40cfa89e2100b1eadede62e17e8989d.png

Vicky 挑选的一个非常素净的古典背景

各个角色的脚本是这样的:

b7d25f6313fb09222d60d69580d9f08a.png

标题脚本

点击标题,发出 “play“ 广播,开始演奏。

929ef332b63722f609e5761c81d48334.png

接收到消息后,旋律和伴奏的演奏,分成了四个部分来同时执行。

娃爸选择的乐器是风琴。

e4b86d122daef567ea410d62bbabc171.png

一个曲谱的小动画

我们还添加了一个曲谱的动画:开始演奏时,曲谱缓慢出现,演奏结束时,曲谱缓慢消失。

这样,我们的作品就完成啦~

今天我们还知道了 3 个单词的含义:

  1. play drum 击打
  2. beat 节拍
  3. note 音符

「 和 Vicky 一起学习 Scratch 」

通过每天一个好玩的 Scratch 项目,孩子会一步步的了解现代编程的基础原理,进而具备计算机科学的基本思维方式。

下期见!


趣乐博思

遇见你更优秀的孩子!


http://chatgpt.dhexx.cn/article/wIMLhr0g.shtml

相关文章

【知识分享】儿童编程学习规划(Scratch/Python/C++)

1. 简述 1.1 背景 根据目前国内编程教育体制来讲,最适合中国青少儿学习的是Scratch、Python以及C。   a. 初级阶段Scratch: 图形化的编程工具,适合零基础入门,可以起到编程启蒙的作用;   b. 进阶阶段Python: 动手动力与思维并…

和小朋友分享一些Scratch学习的心得一

都说未来是人工智能、数字化的时代,如何让青少年接触计算机编程思想和技能,已经成为国家人才发展的重要战略之一。 Scratch是由美国麻省理工学院MIT设计开发的图形化少儿编程工具。通过图形控件,小孩可以在不编写任何代码的情况下实现很多程…

TP6解决跨域问题

项目场景: 使用TP6制作前端小程序的API接口,遇到跨域问题,多方尝试后 已解决 问题描述: Access to XMLHttpRequest at https://www.XXX.com/Api/getData from origin http://localhost:8080 has been blocked by CORS policy: No…

Express解决跨域问题

跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。 例如:a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域…

IIS解决跨域问题

都知道如果不同源直接访问一些图片及文件的话会直接报错跨域解决的方法也很简单如图: 点击HTTP响应标头 添加 名称:值 Access-Control-Allow-Credentials:true Access-Control-Allow-Headers:origin,x-requested-with,content-typ…

Cors解决跨域问题

问题 问题:axios请求,出现两次request,其中一次Request Method: OPTIONS 原因:跨域原因 跨域问题 什么是跨域 跨域是指跨域名访问,一下情况都属于跨域: 跨域原因说明示例域名不同www.jd.com 与 www.ta…

Nginx 解决跨域问题

什么是跨域 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 nginx解决跨域请求 nginx.config配置 server {listen 80;server_name my.cn.com;location / {proxy_pass http://test.cn.com:8081/test;index index.html index.htm;}locat…

js解决跨域问题

📗目录 一、同源策略 二、什么是跨域 三、解决跨域 1.Jsonp实现跨域 2.代理的方式 3.CORS 🍊一、同源策略 所谓同源策略,就是指两个页面具有相同的协议,主机(也常说域名),端口&#xff…

Nginx 轻松解决跨域问题

当你遇到跨域问题,不要立刻就选择复制去尝试。请详细看完这篇文章再处理 。我相信它能帮到你。 # 分析前准备: 前端网站地址:http://localhost:8080 服务端网址:http://localhost:59200 首先保证服务端是没有处理跨域的&#…

后端解决跨域问题

前言: 今天前端给我发了一个截图, 当时就蒙了, 这个是啥子问题 跨域了, 叫我解决一下跨域的问题! 这个主要是浏览的约定! 前端调用的后端接口不属于同一个域(域名或端口不同),就会产生跨域问题,也就是说你的应用访问了该应用域名…

宝塔面板网站解决跨域问题

宝塔面板网站解决跨域问题解决方案如下 1.如果使用的nginx 打开网站的设置,找到配置文件,添加如下代码 代码如下: add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Credentials true;add_header Access-Control-…

gin解决跨域问题

为什么会出现跨域问题 再非简单请求且跨域的情况下,浏览器会发送OPTIONS预检请求. Preflighted Requests是CORS中一种透明服务器验证机制.预检请求首先需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,其目的就是为了判断实际发送的请求是安全的. 简单请求 简单请求需满…

nginx解决跨域问题

在我们前端开发的过程中, 相信大家都遇到过一个让人头疼的问题,那就是跨域问题. 跨域解决的方式有很多,这里主要讲的是如何来使用 nginx来解决我们所遇到的跨域问题 首先,在我们开始之前,首先要知道跨域是如何产生的: 协议 ip 端口号 这三者有任何一个不同,就会产生跨域问题 了…

Axios解决跨域问题

什么是跨域 首先需要了解到浏览器的同源策略,同源策略是最核心也是最基本的安全功能,缺少同源策略浏览器的正常功能可能会受到影响。同源策略会阻止一个域的javascript脚本和另外一个域的能容进行交互。同源(即指在同一个域)就是两…

跨域问题的4种解决方案

更多内容,请访问我的 个人博客。 前言 难以置信,我居然被跨域问题折磨了一上午。相信很多程序员都遇到过跨域问题,当然,解决方案也有很多种。但我今天尝试了无数种办法,依旧没有解决。直到最后我媳妇儿给了我个提示&a…

跨域问题常用的三种解决方式

一、什么是跨域?跨域是如何产生的? 同源策略: 浏览器内置的规则!是浏览器提供的一种安全机制,限制来自不同源的数据。如果当前页面的URL地址和Ajax的请求地址不同源,浏览器不允许得到服务器的数据; 同源: 协议 http||https、域…

完全二叉树的节点数

目录 Leecode.222完全二叉树的节点数思路分析层序遍历_迭代递归_二叉树的遍历迭代_二叉树的遍历 Leecode.222完全二叉树的节点数 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底…

完全二叉树的节点个数

给你一棵完全二叉树的根节点root,求出该树的节点个数。 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没有填满之外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底…

对二叉树、节点、度之间关系的思考(附图)

二叉树 节点 二叉树中每个元素都称为节点。 度 度的定义:节点所拥有的子树的数目称为该节点的度注意: 叶子节点的度为0 二叉树的度表示节点的子树或直接继承者的数目,二叉树的度是一个子树或单子树。2度是两个孩子,或者左和右…

【二叉树】二叉树中第二小的节点

0x00 题目 给定一个非空特殊的二叉树,每个节点都是 正数 并且每个节点的子节点数量只能为 2 或 0 如果一个节点有两个子节点的话 那么该节点的值等于两个子节点中 较小 的一个 更正式地说, root.val min(root.left.val, root.right.val) 总成立 给出…