mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-10 10:20:41 -07:00
Merge branch 'dump-sfx' into 'master'
Add "dumpsfx" command to dump sound effects to wav files. See merge request 2009scape/2009scape!301
This commit is contained in:
commit
697d136238
7 changed files with 81 additions and 50 deletions
|
|
@ -21,7 +21,7 @@ public final class CacheIndex {
|
|||
static CacheIndex skinsIndex;
|
||||
static CacheIndex configurationsIndex;
|
||||
static CacheIndex interfacesIndex;
|
||||
static CacheIndex soundFXIndex;
|
||||
public static CacheIndex soundFXIndex;
|
||||
static CacheIndex landscapesIndex;
|
||||
static CacheIndex modelsIndex;
|
||||
static CacheIndex texturesIndex;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
PcmSound var4 = (PcmSound)this.aSound_2544;
|
||||
int var5 = this.anInt3473 << 8;
|
||||
int var6 = this.anInt3482 << 8;
|
||||
int var7 = var4.aByteArray3030.length << 8;
|
||||
int var7 = var4.samples.length << 8;
|
||||
int var8 = var6 - var5;
|
||||
if(var8 <= 0) {
|
||||
this.anInt3479 = 0;
|
||||
|
|
@ -57,7 +57,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
if(this.anInt3479 < 0) {
|
||||
if(this.aBoolean3477) {
|
||||
if(this.anInt3470 < 0) {
|
||||
var9 = this.method436(var1, var2, var5, var3, var4.aByteArray3030[this.anInt3473]);
|
||||
var9 = this.method436(var1, var2, var5, var3, var4.samples[this.anInt3473]);
|
||||
if(this.anInt3474 >= var5) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -67,14 +67,14 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
}
|
||||
|
||||
while(true) {
|
||||
var9 = this.method418(var1, var9, var6, var3, var4.aByteArray3030[this.anInt3482 - 1]);
|
||||
var9 = this.method418(var1, var9, var6, var3, var4.samples[this.anInt3482 - 1]);
|
||||
if(this.anInt3474 < var6) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.anInt3474 = var6 + var6 - 1 - this.anInt3474;
|
||||
this.anInt3470 = -this.anInt3470;
|
||||
var9 = this.method436(var1, var9, var5, var3, var4.aByteArray3030[this.anInt3473]);
|
||||
var9 = this.method436(var1, var9, var5, var3, var4.samples[this.anInt3473]);
|
||||
if(this.anInt3474 >= var5) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -84,7 +84,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
}
|
||||
} else if(this.anInt3470 < 0) {
|
||||
while(true) {
|
||||
var9 = this.method436(var1, var9, var5, var3, var4.aByteArray3030[this.anInt3482 - 1]);
|
||||
var9 = this.method436(var1, var9, var5, var3, var4.samples[this.anInt3482 - 1]);
|
||||
if(this.anInt3474 >= var5) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -93,7 +93,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
}
|
||||
} else {
|
||||
while(true) {
|
||||
var9 = this.method418(var1, var9, var6, var3, var4.aByteArray3030[this.anInt3473]);
|
||||
var9 = this.method418(var1, var9, var6, var3, var4.samples[this.anInt3473]);
|
||||
if(this.anInt3474 < var6) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -106,7 +106,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
if(this.aBoolean3477) {
|
||||
label134: {
|
||||
if(this.anInt3470 < 0) {
|
||||
var9 = this.method436(var1, var2, var5, var3, var4.aByteArray3030[this.anInt3473]);
|
||||
var9 = this.method436(var1, var2, var5, var3, var4.samples[this.anInt3473]);
|
||||
if(this.anInt3474 >= var5) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -119,7 +119,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
}
|
||||
|
||||
do {
|
||||
var9 = this.method418(var1, var9, var6, var3, var4.aByteArray3030[this.anInt3482 - 1]);
|
||||
var9 = this.method418(var1, var9, var6, var3, var4.samples[this.anInt3482 - 1]);
|
||||
if(this.anInt3474 < var6) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -130,7 +130,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
break;
|
||||
}
|
||||
|
||||
var9 = this.method436(var1, var9, var5, var3, var4.aByteArray3030[this.anInt3473]);
|
||||
var9 = this.method436(var1, var9, var5, var3, var4.samples[this.anInt3473]);
|
||||
if(this.anInt3474 >= var5) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -143,7 +143,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
int var10;
|
||||
if(this.anInt3470 < 0) {
|
||||
while(true) {
|
||||
var9 = this.method436(var1, var9, var5, var3, var4.aByteArray3030[this.anInt3482 - 1]);
|
||||
var9 = this.method436(var1, var9, var5, var3, var4.samples[this.anInt3482 - 1]);
|
||||
if(this.anInt3474 >= var5) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -160,7 +160,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
}
|
||||
} else {
|
||||
while(true) {
|
||||
var9 = this.method418(var1, var9, var6, var3, var4.aByteArray3030[this.anInt3473]);
|
||||
var9 = this.method418(var1, var9, var6, var3, var4.samples[this.anInt3473]);
|
||||
if(this.anInt3474 < var6) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -319,14 +319,14 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
this.anInt3480 += var2;
|
||||
if(this.anInt3470 == 256 && (this.anInt3474 & 0xFF) == 0) {
|
||||
if(AudioChannel.stereo) {
|
||||
var2 = method426(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, this.anInt3475, this.anInt3483, var6, var3, this);
|
||||
var2 = method426(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, this.anInt3475, this.anInt3483, var6, var3, this);
|
||||
} else {
|
||||
var2 = method428(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3476, this.anInt3472, var6, var3, this);
|
||||
var2 = method428(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3476, this.anInt3472, var6, var3, this);
|
||||
}
|
||||
} else if(AudioChannel.stereo) {
|
||||
var2 = method421(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, this.anInt3475, this.anInt3483, var6, var3, this, this.anInt3470, var5);
|
||||
var2 = method421(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, this.anInt3475, this.anInt3483, var6, var3, this, this.anInt3470, var5);
|
||||
} else {
|
||||
var2 = method422(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3476, this.anInt3472, var6, var3, this, this.anInt3470, var5);
|
||||
var2 = method422(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3476, this.anInt3472, var6, var3, this, this.anInt3470, var5);
|
||||
}
|
||||
|
||||
this.anInt3480 -= var2;
|
||||
|
|
@ -343,17 +343,17 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
|
||||
if(this.anInt3470 == 256 && (this.anInt3474 & 0xFF) == 0) {
|
||||
if(AudioChannel.stereo) {
|
||||
return method420(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, var4, var3, this);
|
||||
return method420(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, var4, var3, this);
|
||||
}
|
||||
|
||||
return method424(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3476, var4, var3, this);
|
||||
return method424(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3476, var4, var3, this);
|
||||
}
|
||||
|
||||
if(AudioChannel.stereo) {
|
||||
return method433(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, var4, var3, this, this.anInt3470, var5);
|
||||
return method433(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, var4, var3, this, this.anInt3470, var5);
|
||||
}
|
||||
|
||||
return method455(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3476, var4, var3, this, this.anInt3470, var5);
|
||||
return method455(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3476, var4, var3, this, this.anInt3470, var5);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -365,9 +365,9 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
int var1 = this.anInt3476 * 3 >> 6;
|
||||
var1 = (var1 ^ var1 >> 31) + (var1 >>> 31);
|
||||
if(this.anInt3479 == 0) {
|
||||
var1 -= var1 * this.anInt3474 / (((PcmSound)this.aSound_2544).aByteArray3030.length << 8);
|
||||
var1 -= var1 * this.anInt3474 / (((PcmSound)this.aSound_2544).samples.length << 8);
|
||||
} else if(this.anInt3479 >= 0) {
|
||||
var1 -= var1 * this.anInt3473 / ((PcmSound)this.aSound_2544).aByteArray3030.length;
|
||||
var1 -= var1 * this.anInt3473 / ((PcmSound)this.aSound_2544).samples.length;
|
||||
}
|
||||
|
||||
return var1 > 255?255:var1;
|
||||
|
|
@ -736,7 +736,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
PcmSound var2 = (PcmSound)this.aSound_2544;
|
||||
int var3 = this.anInt3473 << 8;
|
||||
int var4 = this.anInt3482 << 8;
|
||||
int var5 = var2.aByteArray3030.length << 8;
|
||||
int var5 = var2.samples.length << 8;
|
||||
int var6 = var4 - var3;
|
||||
if(var6 <= 0) {
|
||||
this.anInt3479 = 0;
|
||||
|
|
@ -898,7 +898,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
}
|
||||
|
||||
static Class3_Sub24_Sub1 method432(PcmSound var0, int var1, int var2, int var3) {
|
||||
return var0.aByteArray3030 != null && var0.aByteArray3030.length != 0?new Class3_Sub24_Sub1(var0, var1, var2, var3):null;
|
||||
return var0.samples != null && var0.samples.length != 0?new Class3_Sub24_Sub1(var0, var1, var2, var3):null;
|
||||
}
|
||||
|
||||
final Class3_Sub24 method411() {
|
||||
|
|
@ -947,7 +947,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
}
|
||||
|
||||
final synchronized void method434(int var1) {
|
||||
int var2 = ((PcmSound)this.aSound_2544).aByteArray3030.length << 8;
|
||||
int var2 = ((PcmSound)this.aSound_2544).samples.length << 8;
|
||||
if(var1 < -1) {
|
||||
var1 = -1;
|
||||
}
|
||||
|
|
@ -1033,14 +1033,14 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
this.anInt3480 += var2;
|
||||
if(this.anInt3470 == -256 && (this.anInt3474 & 0xFF) == 0) {
|
||||
if(AudioChannel.stereo) {
|
||||
var2 = method435(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, this.anInt3475, this.anInt3483, var6, var3, this);
|
||||
var2 = method435(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, this.anInt3475, this.anInt3483, var6, var3, this);
|
||||
} else {
|
||||
var2 = method427(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3476, this.anInt3472, var6, var3, this);
|
||||
var2 = method427(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3476, this.anInt3472, var6, var3, this);
|
||||
}
|
||||
} else if(AudioChannel.stereo) {
|
||||
var2 = method440(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, this.anInt3475, this.anInt3483, var6, var3, this, this.anInt3470, var5);
|
||||
var2 = method440(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, this.anInt3475, this.anInt3483, var6, var3, this, this.anInt3470, var5);
|
||||
} else {
|
||||
var2 = method448(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3476, this.anInt3472, var6, var3, this, this.anInt3470, var5);
|
||||
var2 = method448(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3476, this.anInt3472, var6, var3, this, this.anInt3470, var5);
|
||||
}
|
||||
|
||||
this.anInt3480 -= var2;
|
||||
|
|
@ -1057,22 +1057,22 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
|
||||
if(this.anInt3470 == -256 && (this.anInt3474 & 0xFF) == 0) {
|
||||
if(AudioChannel.stereo) {
|
||||
return method447(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, var4, var3, this);
|
||||
return method447(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, var4, var3, this);
|
||||
}
|
||||
|
||||
return method446(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3476, var4, var3, this);
|
||||
return method446(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3476, var4, var3, this);
|
||||
}
|
||||
|
||||
if(AudioChannel.stereo) {
|
||||
return method453(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, var4, var3, this, this.anInt3470, var5);
|
||||
return method453(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3484, this.anInt3481, var4, var3, this, this.anInt3470, var5);
|
||||
}
|
||||
|
||||
return method423(((PcmSound)this.aSound_2544).aByteArray3030, var1, this.anInt3474, var2, this.anInt3476, var4, var3, this, this.anInt3470, var5);
|
||||
return method423(((PcmSound)this.aSound_2544).samples, var1, this.anInt3474, var2, this.anInt3476, var4, var3, this, this.anInt3470, var5);
|
||||
}
|
||||
}
|
||||
|
||||
static Class3_Sub24_Sub1 method437(PcmSound var0, int var2) {
|
||||
return var0.aByteArray3030 != null && var0.aByteArray3030.length != 0?new Class3_Sub24_Sub1(var0, (int)((long)var0.anInt3034 * 256L * (long) 100 / (long)(100 * Class21.sampleRate)), var2 << 6):null;
|
||||
return var0.samples != null && var0.samples.length != 0?new Class3_Sub24_Sub1(var0, (int)((long)var0.frequency * 256L * (long) 100 / (long)(100 * Class21.sampleRate)), var2 << 6):null;
|
||||
}
|
||||
|
||||
final synchronized int method438() {
|
||||
|
|
@ -1162,7 +1162,7 @@ final class Class3_Sub24_Sub1 extends Class3_Sub24 {
|
|||
}
|
||||
|
||||
final boolean method444() {
|
||||
return this.anInt3474 < 0 || this.anInt3474 >= ((PcmSound)this.aSound_2544).aByteArray3030.length << 8;
|
||||
return this.anInt3474 < 0 || this.anInt3474 >= ((PcmSound)this.aSound_2544).samples.length << 8;
|
||||
}
|
||||
|
||||
final boolean method445() {
|
||||
|
|
|
|||
|
|
@ -1088,7 +1088,7 @@ final class Class3_Sub24_Sub4 extends Class3_Sub24 {
|
|||
var3 += (int)((double)var5 * var7);
|
||||
}
|
||||
|
||||
var5 = (int)(0.5D + (double)(256 * var2.aPcmSound_2509.anInt3034) * Math.pow(2.0D, (double)var3 * 3.255208333333333E-4D) / (double)Class21.sampleRate);
|
||||
var5 = (int)(0.5D + (double)(256 * var2.aPcmSound_2509.frequency) * Math.pow(2.0D, (double)var3 * 3.255208333333333E-4D) / (double)Class21.sampleRate);
|
||||
|
||||
return var5 >= 1?var5:1;
|
||||
} catch (RuntimeException var9) {
|
||||
|
|
@ -1132,7 +1132,7 @@ final class Class3_Sub24_Sub4 extends Class3_Sub24 {
|
|||
|
||||
final void method501(Class3_Sub22 var1, boolean var2, byte var3) {
|
||||
try {
|
||||
int var4 = var1.aPcmSound_2509.aByteArray3030.length;
|
||||
int var4 = var1.aPcmSound_2509.samples.length;
|
||||
int var5;
|
||||
if(var2 && var1.aPcmSound_2509.aBoolean3031) {
|
||||
int var6 = var4 + (var4 - var1.aPcmSound_2509.anInt3033);
|
||||
|
|
|
|||
|
|
@ -976,7 +976,7 @@ public final class Class83 {
|
|||
var8 = var9.toPCMSound();
|
||||
this.aHashTable_1159.put(var6, var8);
|
||||
if (var1 != null) {
|
||||
var1[0] -= var8.aByteArray3030.length;
|
||||
var1[0] -= var8.samples.length;
|
||||
}
|
||||
|
||||
return var8;
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
package org.runite.client;
|
||||
|
||||
final class PcmSound extends Sound {
|
||||
public final class PcmSound extends Sound {
|
||||
|
||||
byte[] aByteArray3030;
|
||||
public byte[] samples;
|
||||
boolean aBoolean3031;
|
||||
int anInt3032;
|
||||
int anInt3033;
|
||||
int anInt3034;
|
||||
public int frequency;
|
||||
|
||||
|
||||
final PcmSound method151(Class157 var1) {
|
||||
this.aByteArray3030 = var1.method2173(this.aByteArray3030);
|
||||
this.anInt3034 = var1.method2177(this.anInt3034);
|
||||
this.samples = var1.method2173(this.samples);
|
||||
this.frequency = var1.method2177(this.frequency);
|
||||
if(this.anInt3033 == this.anInt3032) {
|
||||
this.anInt3033 = this.anInt3032 = var1.method2178(this.anInt3033);
|
||||
} else {
|
||||
|
|
@ -26,15 +26,15 @@ final class PcmSound extends Sound {
|
|||
}
|
||||
|
||||
PcmSound(byte[] var2, int var3, int var4) {
|
||||
this.anInt3034 = 22050;
|
||||
this.aByteArray3030 = var2;
|
||||
this.frequency = 22050;
|
||||
this.samples = var2;
|
||||
this.anInt3033 = var3;
|
||||
this.anInt3032 = var4;
|
||||
}
|
||||
|
||||
PcmSound(int var1, byte[] var2, int var3, int var4, boolean var5) {
|
||||
this.anInt3034 = var1;
|
||||
this.aByteArray3030 = var2;
|
||||
this.frequency = var1;
|
||||
this.samples = var2;
|
||||
this.anInt3033 = var3;
|
||||
this.anInt3032 = var4;
|
||||
this.aBoolean3031 = var5;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package org.runite.client;
|
||||
|
||||
final class SynthSound {
|
||||
public final class SynthSound {
|
||||
|
||||
private final SynthInstrument[] synthInstruments = new SynthInstrument[10];
|
||||
private int end;
|
||||
|
|
@ -20,7 +20,7 @@ final class SynthSound {
|
|||
this.end = buffer.readUnsignedShort();
|
||||
}
|
||||
|
||||
static SynthSound create(CacheIndex var0, int var1, int var2) {
|
||||
public static SynthSound create(CacheIndex var0, int var1, int var2) {
|
||||
byte[] var3 = var0.getFile(var1, var2);
|
||||
return var3 == null ? null : new SynthSound(new DataBuffer(var3));
|
||||
}
|
||||
|
|
@ -62,7 +62,7 @@ final class SynthSound {
|
|||
}
|
||||
}
|
||||
|
||||
final PcmSound toPCMSound() {
|
||||
public final PcmSound toPCMSound() {
|
||||
byte[] var1 = this.getSamples();
|
||||
return new PcmSound(var1, 22050 * this.start / 1000, 22050 * this.end / 1000);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,16 @@ import org.rs09.client.rendering.RenderingUtils
|
|||
import org.rs09.client.rendering.Toolkit
|
||||
import org.runite.client.*
|
||||
import java.awt.event.KeyEvent
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Files;
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.LinkedList
|
||||
import javax.sound.sampled.AudioFileFormat;
|
||||
import javax.sound.sampled.AudioFormat;
|
||||
import javax.sound.sampled.AudioInputStream
|
||||
import javax.sound.sampled.AudioSystem;
|
||||
|
||||
|
||||
// TODO Escape characters in the string rendering - is this something we can do using RSString / the text renders?
|
||||
|
|
@ -286,6 +293,30 @@ object DeveloperConsole {
|
|||
println("Error. Plays sound effect. Use: playsoundrange beginID endID delay")
|
||||
}
|
||||
}
|
||||
"dumpsfx" -> {
|
||||
if (argSize == 3) {
|
||||
var beginID = if (clientCommand[1].toIntOrNull() == null) 0 else clientCommand[1].toInt()
|
||||
var endID = if (clientCommand[2].toIntOrNull() == null) 0 else clientCommand[2].toInt()
|
||||
Thread(object : Runnable {
|
||||
override fun run() {
|
||||
Files.createDirectories(FileSystems.getDefault().getPath("sfx"))
|
||||
for (i in beginID..endID) {
|
||||
val sfx = SynthSound.create(CacheIndex.soundFXIndex, i, 0).toPCMSound()
|
||||
println("len of ${i}: ${sfx.samples.size}")
|
||||
val out = Files.newOutputStream(FileSystems.getDefault().getPath("sfx", String.format("sfx_%05d.wav", i)))
|
||||
val format = AudioFormat(AudioFormat.Encoding.PCM_SIGNED, sfx.frequency.toFloat(), 8, 1, 1, sfx.frequency.toFloat(), false)
|
||||
AudioSystem.write(
|
||||
AudioInputStream(ByteArrayInputStream(sfx.samples), format, sfx.samples.size.toLong()),
|
||||
AudioFileFormat.Type.WAVE,
|
||||
out)
|
||||
out.close()
|
||||
}
|
||||
}
|
||||
}).start()
|
||||
} else {
|
||||
println("Error. Dumps sound effects. Use: dumpsfx beginID endID")
|
||||
}
|
||||
}
|
||||
"playsong" -> {
|
||||
if (argSize in 2..8) {
|
||||
if (clientCommand[1].toIntOrNull() == null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue