Contribute to the Direction of Music Blocks 2.0
2021/09/12 Editor’s Note: Since the time of this writing, the development team has decided to call the project “Music Blocks 4.0”. The links below still work as they forward to the new repositories, but the direct links are https://github.com/sugarlabs/musicblocks-v4 and https://github.com/sugarlabs/musicblocks-v4-builder-framework
As reported in a previous blogpost, we are now working on a Music Blocks 2.0. Music Blocks, as it is, works well enough, but it many ways it is a “proof of concept”. Until Walter Bender and myself began working on Music Blocks, a visual programming language for music did not exist. This meant that Walter, the many Sugar Labs contributors, and I needed to create the framework and design of the Music Blocks as we were making it. Sometimes we would have important design ideas later that got coded in, but since they were not the first things we created the code became awkward and hard to work with later. Read on to discover some topics central to the discussion, and voice your opinion to contribute to the direction of Music Blocks 2.0.
Contribute to Music Blocks 2.0
Are you interested in contributing to the future direction of Music Blocks? If so, now is your chance. Led by former Google Summer of Code student, Anindya, and Walter Bender, we are creating a new version of Music Blocks. Any grievances or opportunities that you see for the future of Music Blocks should be shared with us now.
Where is the Conversation?
The conversation is currently happening on GitHub, which is where the development of Music Blocks is as well. If you have a GitHub account, you can join the conversation there. If you do not have an account, that is fine, you can always communicate via this website. Either contact via the one of the methods in “Learn and Connect FAQ” page or by creating a comment below.
Notable Topics
There are a lot of topics to cover for the development of Music Blocks 2.0, but here are a few that may interest you.
Music Meta
This conversation is taking place at https://github.com/sugarlabs/musicblocks-2/discussions/13. The conversation covers the following topics:
- Tuning (i.e. “What do I tune my A string or Bb trumpet to?”)
- Temperament
- Key/Mode
- Tempo
- Meter
- Timbre
These are the big-picture topics that are important to music. The original Music Blocks can handle these constructs, but they have a few omissions that impact performance, features, or both. Our hope is that starting over with these features at the core will solve these issues.
There are some structures in music that we should capture in the design. (In Music Blocks 1.0, there were afterthoughts and hence they are not well reflected in the internal structure of the code, adding lots of unneeded complexity and computation.
Walter Bender, as quoted on GitHub
Pedagogy
Pedagogy means “the way we teach kids”. Teaching kids is a special skill because kids need to learn things in a different way. As we grow older and learn more things, we use our knowledge to learn new things. Young kids have fewer experiences, and thus less knowledge to draw upon. Therefore, we need to teach kids in creative ways, which are not always obvious (to adults).
One question that came up in a class today (see MAPFLC for class listings) is whether or not we change the way we introduce variables (i.e. “boxes”) in Music Blocks.
Above is an incorrect use of Box. It is illogical to input “Apple” text into Repeat block, which expects a number input. The current consideration is to have boxes that only accept certain inputs. For example, we may just have a box that accepts numbers such as the following example.
If we limited what input a user could put into the box, it may make the user experience (i.e. the kids’ experience) easier, and thus they may be able to learn more. What do you think? Please consider replying below with your feedback.
Jargon
Music Blocks has music, math, and programming jargon. It also has some words that have remained in the code since it was Turtle JS (which is what Music Blocks was before it was forked into a programming language for music). The conversation regarding jargon is taking place at https://github.com/sugarlabs/musicblocks-2/discussions/10
We need to settle on a set of jargon, which we shall use throughout the development and maintenance cycles, for components, units, data structures, etc. We’re often at a dilemma in the current Music Blocks.
Anindya, As Quoted on GitHub
Your Voice Matters
Whether you are a student, a teacher, contributor, or just using Music Blocks for fun, your opinion matters to us. Please voice your opinion on Github, on our contact form, or by creating a comment below. Thank you so much for contributing to the continued improvement of Music Blocks!