Note Block Studio

Minecraft Note Block Studio, a music editor for the popular sandbox game Minecraft. Create songs and generate redstone with a single click! Just to share something regarding on note blocks. I've designed a 7-note compact circuit for your perusal. 7-note means that you can put 7 note on each tick = Chord (3 note) + melody + snare + drum + capable of running 1/8 of a bar.

Part 1: Header

The header contains information about the file, all the data must be in the following order:

TypeNameDescription
ShortThe first 2 bytes are always zero. In the old NBS format, this used to be song length, which can never be zero.
This is how you can check whether a .nbs file is using the new format.
ByteNBS versionThe version of the new NBS format.
ByteVanilla instrument countAmount of default instruments when the song was saved. This is needed to determine at what index custom instruments start.
ShortSong lengthThe length of the song, measured in ticks. Divide this by the tempo to get the length of the song in seconds. Note Block Studio doesn't really care about this value, the song size is calculated in the second part.
(Note: this was re-added in NBS version 3)
ShortLayer countThe last layer with at least one note block in it, or the last layer that has had its name, volume or stereo changed.
StringSong nameThe name of the song.
StringSong authorThe author of the song.
StringSong original authorThe original author of the song.
StringSong descriptionThe description of the song.
ShortSong tempoThe tempo of the song multiplied by 100 (for example, 1225 instead of 12.25). Measured in ticks per second.
ByteAuto-savingWhether auto-saving has been enabled (0 or 1). As of NBS version 4 this value is still saved to the file, but no longer used in the program.
ByteAuto-saving durationThe amount of minutes between each auto-save (if it has been enabled) (1-60). As of NBS version 4 this value is still saved to the file, but no longer used in the program.
ByteTime signatureThe time signature of the song. If this is 3, then the signature is 3/4. Default is 4. This value ranges from 2-8.
IntegerMinutes spentAmount of minutes spent on the project.
IntegerLeft-clicksAmount of times the user has left-clicked.
IntegerRight-clicksAmount of times the user has right-clicked.
IntegerNote blocks addedAmount of times the user has added a note block.
IntegerNote blocks removedThe amount of times the user have removed a note block.
StringMIDI/Schematic file nameIf the song has been imported from a .mid or .schematic file, that file name is stored here (only the name of the file, not the path).
ByteLoop on/offWhether looping is on or off. (0 = off, 1 = on)
ByteMax loop count0 = infinite. Other values mean the amount of times the song loops.
ShortLoop start tickDetermines which part of the song (in ticks) it loops back to.

Part 2: Note blocks

The next part contains the information about how the note blocks are placed, what instruments they have and what note. As you may know, the song is divided into ticks (horizontally) and layers (vertically). Often, a majority of the ticks and layers in the song are empty, which is why we specify the amount of 'jumps' to the next active tick or layer, rather than just a bunch of empty slots.
The pattern of the note block format is as follows:

TypeNameDescription
ShortJumps to the next tickThe amount of 'jumps' to the next tick with at least one note block in it. We start at tick -1. If the amount of jumps is 0, the program will stop reading and proceed to the next part.
ShortJumps to the next layerOnce we have found an active tick, we read the amount of vertical jumps to the next layer. We start at layer -1. If this is 0, we go back to step 1. If not, we have found a note block!
ByteNote block instrumentThe instrument of the note block. This is 0-15, or higher if the song uses custom instruments.
0 = Piano (Air)
1 = Double Bass (Wood)
2 = Bass Drum (Stone)
3 = Snare Drum (Sand)
4 = Click (Glass)
5 = Guitar (Wool)
6 = Flute (Clay)
7 = Bell (Block of Gold)
8 = Chime (Packed Ice)
9 = Xylophone (Bone Block)
10 = Iron Xylophone (Iron Block)
11 = Cow Bell (Soul Sand)
12 = Didgeridoo (Pumpkin)
13 = Bit (Block of Emerald)
14 = Banjo (Hay)
15 = Pling (Glowstone)
ByteNote block keyThe key of the note block, from 0-87, where 0 is A0 and 87 is C8. 33-57 is within the 2-octave limit.
ByteNote block velocityThe velocity/volume of the note block, from 0% to 100%.
ByteNote block panningThe stereo position of the note block, from 0-200. 100 is center panning.
Short (Signed)Note block pitchThe fine pitch of the note block, from -32,768 to 32,767 cents (but the max in Note Block Studio is limited to -1200 and +1200). 0 is no fine-tuning. ±100 cents is a single semitone difference. After reading this, we go back to step 2.

Part 3: Layers

This part is optional. You can choose to stop writing here and the Note Block Studio will still load the song. However, you cannot simply jump to the next part.
Here the information about the layers are stored, which includes their name, volume and stereo. These values are repeated the same number of layers in the song (the song height, specified in the header):

TypeNameDescription
StringLayer nameThe name of the layer.
ByteLayer lockWhether or not this layer has been marked as locked. 1 = locked.
ByteLayer volumeThe volume of the layer (percentage). Ranges from 0-100.
ByteLayer stereoHow much this layer is panned to the left/right. 0 is 2 blocks right, 100 is center, 200 is 2 blocks left.

Part 4: Custom instruments

Finally, the custom instruments of the song are stored. Like the previous part, this is optional. You can stop writing here and the song will still be loaded.
A song can have a maximum of 18 custom instruments, each with a name and sound file assigned to it. The sound file must be located in the /Sounds folder of the Minecraft Note Block Studio directory. Before we begin, we need to know the amount of custom instruments:

TypeNameDescription
ByteCustom instrumentsThe amount of custom instruments (0-18).
Note block studio

The next four values are repeated the number of custom instruments:

Note Block Studio Maker

TypeNameDescription
StringInstrument nameThe name of the instrument.
StringSound fileThe sound file of the instrument (just the file name, not the path).
ByteSound pitchThe pitch of the sound file. Just like the note blocks, this ranges from 0-87. Default is 45 (F#4).
BytePress keyWhether the piano should automatically press keys with this instrument when the marker passes them (0 or 1).
Google uses cookies and data to:
  • Deliver and maintain services, like tracking outages and protecting against spam, fraud, and abuse
  • Measure audience engagement and site statistics to understand how our services are used
If you agree, we’ll also use cookies and data to:
  • Improve the quality of our services and develop new ones
  • Deliver and measure the effectiveness of ads
  • Show personalized content, depending on your settings
  • Show personalized or generic ads, depending on your settings, on Google and across the web
For non-personalized content and ads, what you see may be influenced by things like the content you’re currently viewing and your location (ad serving is based on general location). Personalized content and ads can be based on those things and your activity like Google searches and videos you watch on YouTube. Personalized content and ads include things like more relevant results and recommendations, a customized YouTube homepage, and ads that are tailored to your interests.

Note Block Studio Online

Click “Customize” to review options, including controls to reject the use of cookies for personalization and information about browser-level controls to reject some or all cookies for other uses. You can also visit g.co/privacytools anytime.