Package: galaxy-jukebox
Galaxy JukeboxSchematic exporter for Minecraft Note Block Studio, making a galaxy-shaped redstone jukebox, that plays the song.Works with old and new versions of the NBS format, and outputs Sponge schematic (WorldEdit can load it, for example).SeeGalaxy Jukebox GUIfor the graphical interface.The project is available onPyPI.Comparison with the traditional walking designAdvantages of this designyou don't need to movesupports 20 tps, and every other tps (with the scaffolding thing)you can actually see the noteblocks that play (and there are also optional redstone lamps)looks like a colorful galaxy, pretty coolsand doesn't fall (neither does concrete powder)Drawbackspretty huge compared to the walking designquite slow, sodium+lithium or a fast PC is strongly recommended for medium-to-large piecesyou need quite high render distances, so that all the redstone is loadedmost probably it doesn't work properly for pocket edition, though not testedInstallationYou can install the project via pip, if you have Python3 installed:pip3installgalaxy-jukeboxUsageFrom command lineYou can convert a single file with:python3-mgalaxy_jukeboxinput.nbsoutput.schemor by using the dedicated command:galaxy-jukeboxinput.nbsoutput.schemThe 2 conversion options (redstone lamp (bool), and side count / sides mode (-1, 1, 2 or 3)) described later, can also be used here:galaxy-jukeboxinput.nbsoutput.schemFalse2From scriptI'll show you how to use it with an example: this script batch converts all the nbs files from the current directory:#!/usr/bin/env python3fromgalaxy_jukeboximportconvertfromosimportlistdirforfilenameinlistdir():iffilename[-4:]==".nbs":convert(filename,filename[:-4]+".schem")This is the header for the convert function:convert(song,out_path,use_redstone_lamp=True,sides_mode=-1)Song is either pynbs.File, or a string (input path).Output path is string.Use redstone lamp: whether or not to place redstone lamp next to the note block (it looks cooler with lamp, but playback performance may be compromised).Sides mode is how many sides the noteblocks should have (-1, or between 1 and 3):-1 (automatic): using one of the following 3 based on noteblock count1: 2n wide, n high rectangle in front2: 2n×n rectangle to the right, and another in front3: 2n×n rectangles on all 3 sidesFeedbackBe sure to tell me if something ain't right, e.g. by opening anissue!How it worksIf you're interested in how it works, you can read the documentationlocally(or onGitHub), where I try to describe the ideas behind the conversion.Minecraft versionThe program needs 1.14 for:scaffolding (for the 1gt delay, there areother designs too, but this seems the best)smooth granite/andesite slab (aesthetics)birch sign (because we need 1.14, the sign has to have a woodtype)all 16 noteblock sounds (there isn't any check present, whether they are available)1.13 is probably needed for the .schem support (and blockstates), when pasting the schematic1.13 for jungle wood (root)Conversion performanceIt is fine in my opinion, it takes 12 seconds to convert the 10 minute version of Genesis of the End on my machine (not a beast).Improvements that could be madeWe could use the volume and panning information, to place the note block at just the right position, so that the volume and panning sounds like it should. Then there would be holes in the wall of note blocks. The work required is first to split the lines/note blocks further (same pitch, different volume needs a different note block this way), and also store the additional information in the note lines. The hardest part would be the algorithm for calculating the best position, taking all the other note lines into account as well (so the note blocks are overall as close to their preferred position, as they can be).Another idea would be to use command blocks with/playsoundinstead of note blocks where it makes sense: then we could support custom instruments, and pitch fine tuning (cents).Huge thanks to these projects!OpenNBS, the program for creating note block musicPyNBS, the library for interacting with NBS filesMCSchematic, for creating the output schematic fileLithium,SodiumandPhosphorfor optimizing the game enough for it to be able to play more complex piecesRelated linksOpen Noteblock Studio issueONBS schematic export rework projectNoteblock instruments on MC wiki