Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.zalinius.questgiver.core.audio.song.ostjam;
- import static com.zalinius.questgiver.core.audio.NoteDuration.HALF_DOT;
- import static com.zalinius.questgiver.core.audio.NoteDuration.QUARTER;
- import static com.zalinius.questgiver.core.audio.NoteDuration.SIXTEENTH;
- import static com.zalinius.questgiver.core.audio.NoteDuration.WHOLE;
- import static com.zalinius.questgiver.core.audio.Pitch.A2;
- import static com.zalinius.questgiver.core.audio.Pitch.A3;
- import static com.zalinius.questgiver.core.audio.Pitch.B2;
- import static com.zalinius.questgiver.core.audio.Pitch.B3;
- import static com.zalinius.questgiver.core.audio.Pitch.C3;
- import static com.zalinius.questgiver.core.audio.Pitch.E2;
- import static com.zalinius.questgiver.core.audio.Pitch.E3;
- import static com.zalinius.questgiver.core.audio.Pitch.F2;
- import static com.zalinius.questgiver.core.audio.Pitch.F3;
- import static com.zalinius.questgiver.core.audio.Pitch.G2;
- import static com.zalinius.questgiver.core.audio.Pitch.G3;
- import com.zalinius.questgiver.core.audio.Instruments.Instrument;
- import com.zalinius.questgiver.core.audio.Pitch;
- import com.zalinius.questgiver.core.audio.Song;
- import com.zalinius.questgiver.core.audio.Synth;
- import com.zalinius.questgiver.core.audio.amplitude.AdsdaEnvelope;
- import com.zalinius.questgiver.core.audio.amplitude.Envelope;
- import com.zalinius.questgiver.core.audio.amplitude.PolynomialEnvelope;
- import com.zalinius.questgiver.core.audio.backenv.exp.BPSAcceptor;
- import com.zalinius.questgiver.core.audio.track.RepeatingTrack;
- public class PalindromeSong extends Song {
- private final RepeatingTrack rhythm;
- private final RepeatingTrack bass;
- private final Envelope rhythmEnvelope;
- public PalindromeSong(BPSAcceptor bpsAcceptor) {
- super("Angery Telegram", bpsAcceptor, 2f);
- rhythmEnvelope = new AdsdaEnvelope(.01f, .09f, .3f);
- Instrument symmetricRhythm = new Instrument(Synth.pulse(.5f), rhythmEnvelope);
- Instrument symmetricBass = new Instrument(Synth.pulse(.3f), new PolynomialEnvelope(5));
- rhythm = createTrack(symmetricRhythm, "Symmetric Rhythmn");
- rhythm.setAmplitude(1f);
- bass = createTrack(symmetricBass, "bass");
- bass.setAmplitude(0.5f);
- addSimpleBassSegment(E2, A2, G2);
- rhythm.addSilence(QUARTER);
- rhythm.addSilence(QUARTER);
- rhythm.addSilence(QUARTER);
- setRhythmPulseWidth(.5f);
- addSimpleBassSegment(E2, A2, G2);
- addIntroRhythmSegment(E3);
- setRhythmPulseWidth(.45f);
- addSimpleBassSegment(E2, A2, G2);
- addSimpleRhythmSegment(E3);
- addSimpleBassSegment(E2, A2, G2);
- addSimpleRhythmSegment(E3);
- setRhythmPulseWidth(.4f);
- bass.addInstant(HALF_DOT, E2);
- addRhythmSegment(E3, G3, G3);
- bass.addInstant(HALF_DOT, G2);
- addRhythmSegment(G3, A3, E3);
- setRhythmPulseWidth(.35f);
- bass.addInstant(HALF_DOT, A2);
- addBridgeRhythmSegment(A3);
- bass.addInstant(HALF_DOT, G2);
- addBridgeRhythmSegment(G3);
- setRhythmPulseWidth(.3f);
- addSimpleBassSegment(E2, E2, E2);
- addRhythmSegment(E3, G3, G3);
- addSimpleBassSegment(E2, E2, E2);
- addRhythmSegment(G3, A3, E3);
- setRhythmPulseWidth(.25f);
- addSimpleBassSegment(G2, C3, B2);
- addBridgeRhythmSegment(G3);
- addSimpleBassSegment(E2, A2, G2);
- addBridgeRhythmSegment(E3);
- setRhythmPulseWidth(.2f);
- bass.addSilence(HALF_DOT);
- bass.addSilence(HALF_DOT);
- bass.addSilence(HALF_DOT);
- bass.addSilence(HALF_DOT);
- addBridgeDescent();
- // bass in interlude function
- addBridgeInterludeRhythm();
- setRhythmPulseWidth(.8f);
- bass.addSilence(HALF_DOT);
- bass.addSilence(HALF_DOT);
- bass.addSilence(HALF_DOT);
- bass.addSilence(HALF_DOT);
- addBridgeAscent();
- setRhythmPulseWidth(.75f);
- addSimpleBassSegment(G2, A2, E2);
- addBridgeRhythmSegment(E3);
- addSimpleBassSegment(B2, C3, G2);
- addBridgeRhythmSegment(G3);
- setRhythmPulseWidth(.7f);
- addSimpleBassSegment(E2, E2, E2);
- addRhythmSegment(E3, A3, G3);
- addSimpleBassSegment(E2, E2, E2);
- addRhythmSegment(G3, G3, E3);
- setRhythmPulseWidth(.65f);
- bass.addInstant(HALF_DOT, G2);
- addBridgeRhythmSegment(G3);
- bass.addInstant(HALF_DOT, A2);
- addBridgeRhythmSegment(A3);
- setRhythmPulseWidth(.6f);
- bass.addInstant(HALF_DOT, G2);
- addRhythmSegment(E3, A3, G3);
- bass.addInstant(HALF_DOT, E2);
- addRhythmSegment(G3, G3, E3);
- setRhythmPulseWidth(.55f);
- addSimpleBassSegment(G2, A2, E2);
- addSimpleRhythmSegment(E3);
- addSimpleBassSegment(G2, A2, E2);
- addSimpleRhythmSegment(E3);
- setRhythmPulseWidth(.5f);
- addSimpleBassSegment(G2, A2, E2);
- addOutroRhythmSegment(E3);
- addSimpleBassSegment(G2, A2, E2);
- rhythm.addSilence(QUARTER);
- rhythm.addSilence(QUARTER);
- rhythm.addSilence(QUARTER);
- rhythm.addSilence(WHOLE);
- rhythm.addSilence(WHOLE);
- rhythm.addSilence(WHOLE);
- rhythm.addSilence(WHOLE);
- bass.addSilence(WHOLE);
- bass.addSilence(WHOLE);
- bass.addSilence(WHOLE);
- bass.addSilence(WHOLE);
- }
- private void addIntroRhythmSegment(Pitch pitch) {
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- }
- private void addOutroRhythmSegment(Pitch pitch) {
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- }
- private void addSimpleRhythmSegment(Pitch pitch) {
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- }
- private void addSimpleBassSegment(Pitch pitch1, Pitch pitch2, Pitch pitch3) {
- bass.addInstant(QUARTER, pitch1);
- bass.addInstant(QUARTER, pitch2);
- bass.addInstant(QUARTER, pitch3);
- }
- private void addRhythmSegment(Pitch pitchStart, Pitch pitchMiddle, Pitch pitchEnd) {
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitchStart);
- rhythm.addInstant(SIXTEENTH, pitchStart);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitchMiddle);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitchMiddle);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitchEnd);
- rhythm.addInstant(SIXTEENTH, pitchEnd);
- rhythm.addSilence(SIXTEENTH);
- }
- private void addBridgeRhythmSegment(Pitch pitch) {
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addInstant(SIXTEENTH, pitch);
- rhythm.addSilence(SIXTEENTH);
- }
- private void addBridgeDescent() {
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, B2, B3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, A2, A3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, A2, A3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, F2, F3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- }
- private void addBridgeAscent() {
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, F2, F3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, A2, A3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, A2, A3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, B2, B3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, G2, G3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E2, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- }
- private void addBridgeInterludeRhythm() {
- setRhythmPulseWidth(.15f);
- addSimpleBassSegment(E2, A2, G2);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addInstant(SIXTEENTH, E3);
- addSimpleBassSegment(E2, A2, G2);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- addSimpleBassSegment(E2, A2, G2);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addInstant(SIXTEENTH, E3);
- addSimpleBassSegment(E2, A2, G2);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- setRhythmPulseWidth(.1f);
- bass.addSilence(HALF_DOT);
- addRhythmSegment(E3, A3, G3);
- setRhythmPulseWidth(.9f);
- bass.addSilence(HALF_DOT);
- addRhythmSegment(G3, A3, E3);
- setRhythmPulseWidth(.85f);
- addSimpleBassSegment(G2, A2, E2);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- addSimpleBassSegment(G2, A2, E2);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- addSimpleBassSegment(G2, A2, E2);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- addSimpleBassSegment(G2, A2, E2);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addSilence(SIXTEENTH);
- rhythm.addInstant(SIXTEENTH, E3);
- rhythm.addSilence(SIXTEENTH);
- }
- private void setRhythmPulseWidth(float pulse) {
- rhythm.setInstrument(new Instrument(Synth.pulse(pulse), rhythmEnvelope));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement