When you are making your redstone suggestions, please note that Java and Bedrock will not have the exact same the same redstone systems - this would require redoing redstone system completely on one platform or the other. The two systems are functionally different and are going to stay that way. Please be sure to tag your suggestions with (Java) or (Bedrock).

23

Removing limitations of redstone/noteblocks.

5 Comments

Please sign in to leave a comment.

Sorted by oldest
  • 1
    Registered User commented
    Comment actions Permalink

    This,is the first idea on this thread which cant be solved by a circuit. As one who reads music and plays the violin, I have wondered if two things are possible, sustained notes and fast tempos. In Java you could create some rediculous contraptions to create a speed of up to 20 Hz. In bedrock you are limited to the redstone mechanics. The fastest possible is either 600 or 1200 bpm by using comparator clocks attached to one repeater and one redstone dust to power two note blocks, creating the effect that the notes are played each tick.

  • 0
    Registered User commented
    Comment actions Permalink

    Completely agree with you! Limiting noteblocks to the tickspeed completely throws off some of the songs I try to create. However, I wouldn't know of a way to fix this without overhauling redstone itself. Maybe adding a new block that plays noteblocks at a more common bpm would work, which I think was your idea. This could also solve the 32nd notes issue, which I find myself running into sometimes as well. I also agree that the range is absurd and that we need more octaves.

    So to summarize:

    • Add way to adjust BPM of noteblocks so it's not limited to tick speed
    • Need more octaves
  • 1
    Registered User commented
    Comment actions Permalink

    One suggestion is to not use Redstone to trigger the note block sequence but only to start a note-block chain.

     

    For eg. note blocks could support triggering a nearby note block at a much higher frequency (for eg. 600Hz) without sending a Redstone signal but instead with just a function call or a separate thread handling these note-event propagations.

    The idea would be that note blocks can be activated with Redstone at the normal 20 ticks per second, but a note block can trigger an adjacent note block before the next tick happens (with a note-event/note-tick for eg.). This means instead of having to depend on red stone ticks, there can be a completely separate note-tick that happens at 600Hz.

    In fact, the propagation of note-event on note-ticks can use logic very similar to chaining command blocks. Just like chaining command blocks, note blocks can only trigger one adjacent note block (the one they face towards). However, this triggering will happen at 600Hz on a separate note-thread.

    Then, a special setting in the note block, like activation delay, can be used to set a custom delay before each note is played. This will allow custom pacing in your song.

  • 1
    Registered User commented
    Comment actions Permalink

    One problem with my suggestion above is dealing with performance and consistent pacing. If a separate thread is used for these note-events, then they will need to be processed consistently at the correct time intervals. The real problem arises when this note-event thread needs to keep in sync with the Minecraft world. Changes to the Minecraft world can cause changes to what notes are played and thus the note-event thread can not pre-load the notes required to play since the Minecraft world can change.

    One workaround optimization to this would be to calculate how many note blocks can be played on each tick. Since the world can be changed only on a game tick, all notes that can be played in the current tick can be bulk-loaded and played.

    The bulk-loading of notes to play in the current tick however is also a concern for optimization since at 600Hz, querying each Minecraft block to find the graph of note blocks to play can be expensive. Also, the bulk-loaded data can only contain notes that will play within the current tick since notes to be played later can change due to changes in the world.

    In fact, due to the strict coupling with the Minecraft world, the note-event thread will need to be strictly in-sync with the game tick thread since we cannot skip any note block playback. If there is any delay in the note playback, the game tick thread will need to be delayed to keep in sync with the note-event thread.

  • 0
    Registered User commented
    Comment actions Permalink

    I really hope they change the octave range, noteblocks were made a long time ago and need an update desperately.