add a working (or not?) stereo to music
This commit is contained in:
parent
551f48f2dc
commit
a8b47c39d9
4 changed files with 17 additions and 6 deletions
|
@ -266,12 +266,21 @@ public class MusicPlayerPlugin extends SessionAdapter {
|
||||||
|
|
||||||
final double floatingPitch = 0.5 * (Math.pow(2, ((key + (pitch / 10)) / 12)));
|
final double floatingPitch = 0.5 * (Math.pow(2, ((key + (pitch / 10)) / 12)));
|
||||||
|
|
||||||
|
// totallynotskidded from opennbs
|
||||||
|
int blockPosition = 0;
|
||||||
|
|
||||||
|
if (currentSong.nbs) {
|
||||||
|
final int s = (note.stereo + note.panning) / 2; // Stereo values to X coordinates, calc'd from the average of both note and layer pan.
|
||||||
|
if (s > 100) blockPosition = (s - 100) / -100;
|
||||||
|
if (s < 100) blockPosition = ((s - 100) * -1) / 100;
|
||||||
|
}
|
||||||
|
|
||||||
bot.core().run(
|
bot.core().run(
|
||||||
"minecraft:execute as " +
|
"minecraft:execute as " +
|
||||||
SELECTOR +
|
SELECTOR +
|
||||||
" at @s run playsound " +
|
" at @s run playsound " +
|
||||||
note.instrument.sound +
|
note.instrument.sound +
|
||||||
" record @s ~ ~ ~ " +
|
" record @s ^" + blockPosition + " ^ ^ " +
|
||||||
note.volume +
|
note.volume +
|
||||||
" " +
|
" " +
|
||||||
NumberUtilities.clamp(floatingPitch, 0, 2)
|
NumberUtilities.clamp(floatingPitch, 0, 2)
|
||||||
|
|
|
@ -140,7 +140,7 @@ public class MidiConverter {
|
||||||
float volume = (float) velocity / 127.0f;
|
float volume = (float) velocity / 127.0f;
|
||||||
long time = microTime / 1000L;
|
long time = microTime / 1000L;
|
||||||
|
|
||||||
return new Note(instrument, pitch, volume, time);
|
return new Note(instrument, pitch, volume, time, -1, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Note getMidiPercussionNote (int midiPitch, int velocity, long microTime) {
|
private static Note getMidiPercussionNote (int midiPitch, int velocity, long microTime) {
|
||||||
|
@ -151,7 +151,7 @@ public class MidiConverter {
|
||||||
Instrument instrument = Instrument.fromId(noteId / 25);
|
Instrument instrument = Instrument.fromId(noteId / 25);
|
||||||
long time = microTime / 1000L;
|
long time = microTime / 1000L;
|
||||||
|
|
||||||
return new Note(instrument, pitch, volume, time);
|
return new Note(instrument, pitch, volume, time, -1, 100);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ public class NBSConverter {
|
||||||
Instrument.PLING,
|
Instrument.PLING,
|
||||||
};
|
};
|
||||||
|
|
||||||
private static class NBSNote {
|
public static class NBSNote {
|
||||||
public int tick;
|
public int tick;
|
||||||
public short layer;
|
public short layer;
|
||||||
public byte instrument;
|
public byte instrument;
|
||||||
|
@ -37,7 +37,7 @@ public class NBSConverter {
|
||||||
public short pitch = 0;
|
public short pitch = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class NBSLayer {
|
public static class NBSLayer {
|
||||||
public String name;
|
public String name;
|
||||||
public byte lock = 0;
|
public byte lock = 0;
|
||||||
public byte volume;
|
public byte volume;
|
||||||
|
@ -176,7 +176,7 @@ public class NBSConverter {
|
||||||
}
|
}
|
||||||
|
|
||||||
int pitch = key-33;
|
int pitch = key-33;
|
||||||
song.add(new Note(instrument, pitch, (float) note.velocity * (float) layerVolume / 10000f, getMilliTime(note.tick, tempo)));
|
song.add(new Note(instrument, pitch, (float) note.velocity * (float) layerVolume / 10000f, getMilliTime(note.tick, tempo), note.panning, nbsLayers.get(note.layer).stereo));
|
||||||
}
|
}
|
||||||
|
|
||||||
song.length = song.get(song.size()-1).time + 50;
|
song.length = song.get(song.size()-1).time + 50;
|
||||||
|
|
|
@ -8,6 +8,8 @@ public class Note implements Comparable<Note> {
|
||||||
public int pitch;
|
public int pitch;
|
||||||
public float volume;
|
public float volume;
|
||||||
public long time;
|
public long time;
|
||||||
|
public int panning;
|
||||||
|
public int stereo;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(Note other) {
|
public int compareTo(Note other) {
|
||||||
|
|
Loading…
Reference in a new issue