Class #8            -
  Class descriptor  : 'Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;'
  Access flags      : 0x0010 (FINAL)
  Superclass        : 'Ljava/lang/Object;'
  Interfaces        -
  Static fields     -
    #0              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'SINE'
      type          : '[F'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #1              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'SINE_SIZE'
      type          : 'I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : 2048
  Instance fields   -
    #0              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'cursor'
      type          : 'I'
      access        : 0x0000 ()
    #1              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'fromStep'
      type          : 'D'
      access        : 0x0010 (FINAL)
    #2              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'inverseLength'
      type          : 'F'
      access        : 0x0010 (FINAL)
    #3              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'length'
      type          : 'I'
      access        : 0x0010 (FINAL)
    #4              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'noise'
      type          : 'F'
      access        : 0x0002 (PRIVATE)
    #5              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'noiseState'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #6              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'phase'
      type          : 'D'
      access        : 0x0000 ()
    #7              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'stepDelta'
      type          : 'D'
      access        : 0x0010 (FINAL)
    #8              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'volume'
      type          : 'F'
      access        : 0x0010 (FINAL)
    #9              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'waveform'
      type          : 'I'
      access        : 0x0010 (FINAL)
  Direct methods    -
    #0              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : '<clinit>'
      type          : '()V'
      access        : 0x10008 (STATIC CONSTRUCTOR)
      code          -
      registers     : 10
      ins           : 0
      outs          : 2
      insns size    : 52 16-bit code units
00b9ac:                                        |[00b9ac] com.valentinedesigns.chromalink.ArcadeAudio$Voice.<clinit>:()V
00b9bc: 1300 0108                              |0000: const/16 v0, #int 2049 // #801
00b9c0: 2300 7401                              |0002: new-array v0, v0, [F // type@0174
00b9c4: 6900 3c00                              |0004: sput-object v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.SINE:[F // field@003c
00b9c8: 1200                                   |0006: const/4 v0, #int 0 // #0
00b9ca: 1301 0008                              |0007: const/16 v1, #int 2048 // #800
00b9ce: 3610 2a00                              |0009: if-gt v0, v1, 0033 // +002a
00b9d2: 6201 3c00                              |000b: sget-object v1, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.SINE:[F // field@003c
00b9d6: da02 0002                              |000d: mul-int/lit8 v2, v0, #int 2 // #02
00b9da: 8322                                   |000f: int-to-double v2, v2
00b9dc: 1804 182d 4454 fb21 0940               |0010: const-wide v4, #double 3.14159 // #400921fb54442d18
00b9e6: cd42                                   |0015: mul-double/2addr v2, v4
00b9e8: 1906 a040                              |0016: const-wide/high16 v6, #long 4656722014701092864 // #40a0
00b9ec: ce62                                   |0018: div-double/2addr v2, v6
00b9ee: 7120 4e06 3200                         |0019: invoke-static {v2, v3}, Ljava/lang/Math;.sin:(D)D // method@064e
00b9f4: 0b02                                   |001c: move-result-wide v2
00b9f6: da08 0004                              |001d: mul-int/lit8 v8, v0, #int 4 // #04
00b9fa: 8388                                   |001f: int-to-double v8, v8
00b9fc: cd48                                   |0020: mul-double/2addr v8, v4
00b9fe: ce68                                   |0021: div-double/2addr v8, v6
00ba00: 7120 4e06 9800                         |0022: invoke-static {v8, v9}, Ljava/lang/Math;.sin:(D)D // method@064e
00ba06: 0b04                                   |0025: move-result-wide v4
00ba08: 1806 7b14 ae47 e17a b43f               |0026: const-wide v6, #double 0.08 // #3fb47ae147ae147b
00ba12: cd64                                   |002b: mul-double/2addr v4, v6
00ba14: cb42                                   |002c: add-double/2addr v2, v4
00ba16: 8c22                                   |002d: double-to-float v2, v2
00ba18: 4b02 0100                              |002e: aput v2, v1, v0
00ba1c: d800 0001                              |0030: add-int/lit8 v0, v0, #int 1 // #01
00ba20: 28d5                                   |0032: goto 0007 // -002b
00ba22: 0e00                                   |0033: return-void
      catches       : (none)
      positions     :
        0x0000 line=613
        0x0006 line=614
      locals        :

    #1              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : '<init>'
      type          : '(DDDFI)V'
      access        : 0x10000 (CONSTRUCTOR)
      code          -
      registers     : 11
      ins           : 9
      outs          : 2
      insns size    : 47 16-bit code units
00ba24:                                        |[00ba24] com.valentinedesigns.chromalink.ArcadeAudio$Voice.<init>:(DDDFI)V
00ba34: 7010 5006 0200                         |0000: invoke-direct {v2}, Ljava/lang/Object;.<init>:()V // method@0650
00ba3a: 1400 f579 2b6d                         |0003: const v0, #float 3.31684e+27 // #6d2b79f5
00ba40: 5920 4300                              |0006: iput v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00ba44: 1800 0000 0000 8088 e540               |0008: const-wide v0, #double 44100 // #40e5888000000000
00ba4e: cd07                                   |000d: mul-double/2addr v7, v0
00ba50: 8a77                                   |000e: double-to-int v7, v7
00ba52: 1218                                   |000f: const/4 v8, #int 1 // #1
00ba54: 7120 4406 7800                         |0010: invoke-static {v8, v7}, Ljava/lang/Math;.max:(II)I // method@0644
00ba5a: 0a07                                   |0013: move-result v7
00ba5c: 5927 4100                              |0014: iput v7, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.length:I // field@0041
00ba60: 5227 4100                              |0016: iget v7, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.length:I // field@0041
00ba64: 8277                                   |0018: int-to-float v7, v7
00ba66: 1508 803f                              |0019: const/high16 v8, #int 1065353216 // #3f80
00ba6a: c978                                   |001b: div-float/2addr v8, v7
00ba6c: 5928 4000                              |001c: iput v8, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.inverseLength:F // field@0040
00ba70: ae07 0300                              |001e: div-double v7, v3, v0
00ba74: 5a27 3f00                              |0020: iput-wide v7, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.fromStep:D // field@003f
00ba78: cc35                                   |0022: sub-double/2addr v5, v3
00ba7a: 5223 4100                              |0023: iget v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.length:I // field@0041
00ba7e: 8333                                   |0025: int-to-double v3, v3
00ba80: cd03                                   |0026: mul-double/2addr v3, v0
00ba82: ce35                                   |0027: div-double/2addr v5, v3
00ba84: 5a25 4500                              |0028: iput-wide v5, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.stepDelta:D // field@0045
00ba88: 5929 4600                              |002a: iput v9, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.volume:F // field@0046
00ba8c: 592a 4700                              |002c: iput v10, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.waveform:I // field@0047
00ba90: 0e00                                   |002e: return-void
      catches       : (none)
      positions     :
        0x0000 line=617
        0x0003 line=616
        0x0008 line=617
      locals        :
        0x0000 - 0x002f reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;
        0x0000 - 0x002f reg=3 (null) D
        0x0000 - 0x002f reg=5 (null) D
        0x0000 - 0x002f reg=7 (null) D
        0x0000 - 0x002f reg=9 (null) F
        0x0000 - 0x002f reg=10 (null) I

    #2              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'forEffect'
      type          : '(Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;)Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;'
      access        : 0x0008 (STATIC)
      code          -
      registers     : 25
      ins           : 1
      outs          : 9
      insns size    : 798 16-bit code units
00b1f8:                                        |[00b1f8] com.valentinedesigns.chromalink.ArcadeAudio$Voice.forEffect:(Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;)Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;
00b208: 0800 1800                              |0000: move-object/from16 v0, v24
00b20c: 5201 2600                              |0002: iget v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b210: 1202                                   |0004: const/4 v2, #int 0 // #0
00b212: 2e01 0102                              |0005: cmpg-float v1, v1, v2
00b216: 1266                                   |0007: const/4 v6, #int 6 // #6
00b218: 1a07 8006                              |0008: const-string v7, "counter" // string@0680
00b21c: 1a08 4408                              |000a: const-string v8, "level" // string@0844
00b220: 1a09 5006                              |000c: const-string v9, "clear" // string@0650
00b224: 1a0a 4006                              |000e: const-string v10, "chain" // string@0640
00b228: 1a0b 5508                              |0010: const-string v11, "lock" // string@0855
00b22c: 1a0c d406                              |0012: const-string v12, "drop" // string@06d4
00b230: 1a0d 3d0b                              |0014: const-string v13, "win" // string@0b3d
00b234: 1a0e 3007                              |0016: const-string v14, "garbage" // string@0730
00b238: 1a0f bb09                              |0018: const-string v15, "rotate" // string@09bb
00b23c: 1a02 e005                              |001a: const-string v2, "attack" // string@05e0
00b240: 1311 ffff                              |001c: const/16 v17, #int -1 // #ffff
00b244: 1253                                   |001e: const/4 v3, #int 5 // #5
00b246: 1313 0100                              |001f: const/16 v19, #int 1 // #1
00b24a: 1204                                   |0021: const/4 v4, #int 0 // #0
00b24c: 1245                                   |0022: const/4 v5, #int 4 // #4
00b24e: 3c01 1901                              |0023: if-gtz v1, 013c // +0119
00b252: 5401 2500                              |0025: iget-object v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.kind:Ljava/lang/String; // field@0025
00b256: 6e10 5d06 0100                         |0027: invoke-virtual {v1}, Ljava/lang/String;.hashCode:()I // method@065d
00b25c: 0a16                                   |002a: move-result v22
00b25e: 2c16 5702 0000                         |002b: sparse-switch v22, 00000282 // +00000257
00b264: 2854                                   |002e: goto 0082 // +0054
00b266: 6e20 5b06 7100                         |002f: invoke-virtual {v1, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b26c: 0a01                                   |0032: move-result v1
00b26e: 3801 fbff                              |0033: if-eqz v1, 002e // -0005
00b272: 0132                                   |0035: move v2, v3
00b274: 284e                                   |0036: goto 0084 // +004e
00b276: 6e20 5b06 8100                         |0037: invoke-virtual {v1, v8}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b27c: 0a01                                   |003a: move-result v1
00b27e: 3801 f3ff                              |003b: if-eqz v1, 002e // -000d
00b282: 1302 0900                              |003d: const/16 v2, #int 9 // #9
00b286: 2845                                   |003f: goto 0084 // +0045
00b288: 6e20 5b06 9100                         |0040: invoke-virtual {v1, v9}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b28e: 0a01                                   |0043: move-result v1
00b290: 3801 eaff                              |0044: if-eqz v1, 002e // -0016
00b294: 1232                                   |0046: const/4 v2, #int 3 // #3
00b296: 283d                                   |0047: goto 0084 // +003d
00b298: 6e20 5b06 a100                         |0048: invoke-virtual {v1, v10}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b29e: 0a01                                   |004b: move-result v1
00b2a0: 3801 e2ff                              |004c: if-eqz v1, 002e // -001e
00b2a4: 0152                                   |004e: move v2, v5
00b2a6: 2835                                   |004f: goto 0084 // +0035
00b2a8: 6e20 5b06 b100                         |0050: invoke-virtual {v1, v11}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b2ae: 0a01                                   |0053: move-result v1
00b2b0: 3801 daff                              |0054: if-eqz v1, 002e // -0026
00b2b4: 1222                                   |0056: const/4 v2, #int 2 // #2
00b2b6: 282d                                   |0057: goto 0084 // +002d
00b2b8: 6e20 5b06 c100                         |0058: invoke-virtual {v1, v12}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b2be: 0a01                                   |005b: move-result v1
00b2c0: 3801 d2ff                              |005c: if-eqz v1, 002e // -002e
00b2c4: 0202 1300                              |005e: move/from16 v2, v19
00b2c8: 2824                                   |0060: goto 0084 // +0024
00b2ca: 6e20 5b06 d100                         |0061: invoke-virtual {v1, v13}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b2d0: 0a01                                   |0064: move-result v1
00b2d2: 3801 c9ff                              |0065: if-eqz v1, 002e // -0037
00b2d6: 1302 0800                              |0067: const/16 v2, #int 8 // #8
00b2da: 281b                                   |0069: goto 0084 // +001b
00b2dc: 6e20 5b06 e100                         |006a: invoke-virtual {v1, v14}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b2e2: 0a01                                   |006d: move-result v1
00b2e4: 3801 c0ff                              |006e: if-eqz v1, 002e // -0040
00b2e8: 1272                                   |0070: const/4 v2, #int 7 // #7
00b2ea: 2813                                   |0071: goto 0084 // +0013
00b2ec: 6e20 5b06 f100                         |0072: invoke-virtual {v1, v15}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b2f2: 0a01                                   |0075: move-result v1
00b2f4: 3801 b8ff                              |0076: if-eqz v1, 002e // -0048
00b2f8: 0142                                   |0078: move v2, v4
00b2fa: 280b                                   |0079: goto 0084 // +000b
00b2fc: 6e20 5b06 2100                         |007a: invoke-virtual {v1, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b302: 0a01                                   |007d: move-result v1
00b304: 3801 b0ff                              |007e: if-eqz v1, 002e // -0050
00b308: 0162                                   |0080: move v2, v6
00b30a: 2803                                   |0081: goto 0084 // +0003
00b30c: 0202 1100                              |0082: move/from16 v2, v17
00b310: 2b02 2802 0000                         |0084: packed-switch v2, 000002ac // +00000228
00b316: 2200 9100                              |0087: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b31a: 1511 e143                              |0089: const/high16 v17, #int 1138819072 // #43e1
00b31e: 1312 0200                              |008b: const/16 v18, #int 2 // #2
00b322: 160b 0000                              |008d: const-wide/16 v11, #int 0 // #0
00b326: 160d 0000                              |008f: const-wide/16 v13, #int 0 // #0
00b32a: 180f 3bdf 4f8d 976e 923f               |0091: const-wide v15, #double 0.018 // #3f926e978d4fdf3b
00b334: 070a                                   |0096: move-object v10, v0
00b336: 7609 e901 0a00                         |0097: invoke-direct/range {v10, v11, v12, v13, v14, v15, v16, v17, v18}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b33c: 1100                                   |009a: return-object v0
00b33e: 2200 9100                              |009b: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b342: 150d 9644                              |009d: const/high16 v13, #int 1150681088 // #4496
00b346: 122e                                   |009f: const/4 v14, #int 2 // #2
00b348: 1607 0000                              |00a0: const-wide/16 v7, #int 0 // #0
00b34c: 1609 0000                              |00a2: const-wide/16 v9, #int 0 // #0
00b350: 180b 9a99 9999 9999 c93f               |00a4: const-wide v11, #double 0.2 // #3fc999999999999a
00b35a: 0706                                   |00a9: move-object v6, v0
00b35c: 7609 e901 0600                         |00aa: invoke-direct/range {v6, v7, v8, v9, v10, v11, v12, v13, v14}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b362: 1100                                   |00ad: return-object v0
00b364: 2200 9100                              |00ae: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b368: 1416 0040 b544                         |00b0: const v22, #float 1450 // #44b54000
00b36e: 1317 0200                              |00b3: const/16 v23, #int 2 // #2
00b372: 1610 0000                              |00b5: const-wide/16 v16, #int 0 // #0
00b376: 1612 0000                              |00b7: const-wide/16 v18, #int 0 // #0
00b37a: 1814 7b14 ae47 e17a d43f               |00b9: const-wide v20, #double 0.32 // #3fd47ae147ae147b
00b384: 070f                                   |00be: move-object v15, v0
00b386: 7609 e901 0f00                         |00bf: invoke-direct/range {v15, v16, v17, v18, v19, v20, v21, v22, v23}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b38c: 1100                                   |00c2: return-object v0
00b38e: 2200 9100                              |00c3: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b392: 1508 c844                              |00c5: const/high16 v8, #int 1153957888 // #44c8
00b396: 1229                                   |00c7: const/4 v9, #int 2 // #2
00b398: 1602 0000                              |00c8: const-wide/16 v2, #int 0 // #0
00b39c: 1604 0000                              |00ca: const-wide/16 v4, #int 0 // #0
00b3a0: 1806 b81e 85eb 51b8 be3f               |00cc: const-wide v6, #double 0.12 // #3fbeb851eb851eb8
00b3aa: 0701                                   |00d1: move-object v1, v0
00b3ac: 7609 e901 0100                         |00d2: invoke-direct/range {v1, v2, v3, v4, v5, v6, v7, v8, v9}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b3b2: 1100                                   |00d5: return-object v0
00b3b4: 2200 9100                              |00d6: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b3b8: 1411 0040 9c44                         |00d8: const v17, #float 1250 // #449c4000
00b3be: 1312 0200                              |00db: const/16 v18, #int 2 // #2
00b3c2: 160b 0000                              |00dd: const-wide/16 v11, #int 0 // #0
00b3c6: 160d 0000                              |00df: const-wide/16 v13, #int 0 // #0
00b3ca: 180f a470 3d0a d7a3 c03f               |00e1: const-wide v15, #double 0.13 // #3fc0a3d70a3d70a4
00b3d4: 070a                                   |00e6: move-object v10, v0
00b3d6: 7609 e901 0a00                         |00e7: invoke-direct/range {v10, v11, v12, v13, v14, v15, v16, v17, v18}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b3dc: 1100                                   |00ea: return-object v0
00b3de: 220a 9100                              |00eb: new-instance v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b3e2: 5200 2700                              |00ed: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.value:I // field@0027
00b3e6: d800 00ff                              |00ef: add-int/lit8 v0, v0, #int -1 // #ff
00b3ea: 7120 4406 0400                         |00f1: invoke-static {v4, v0}, Ljava/lang/Math;.max:(II)I // method@0644
00b3f0: 0a00                                   |00f4: move-result v0
00b3f2: 7120 4806 0500                         |00f5: invoke-static {v5, v0}, Ljava/lang/Math;.min:(II)I // method@0648
00b3f8: 0a00                                   |00f8: move-result v0
00b3fa: 8300                                   |00f9: int-to-double v0, v0
00b3fc: 1802 9a99 9999 9999 993f               |00fa: const-wide v2, #double 0.025 // #3f9999999999999a
00b406: cd20                                   |00ff: mul-double/2addr v0, v2
00b408: 1802 b81e 85eb 51b8 be3f               |0100: const-wide v2, #double 0.12 // #3fbeb851eb851eb8
00b412: ab06 0002                              |0105: add-double v6, v0, v2
00b416: 1408 00c0 c144                         |0107: const v8, #float 1550 // #44c1c000
00b41c: 1229                                   |010a: const/4 v9, #int 2 // #2
00b41e: 1602 0000                              |010b: const-wide/16 v2, #int 0 // #0
00b422: 1604 0000                              |010d: const-wide/16 v4, #int 0 // #0
00b426: 07a1                                   |010f: move-object v1, v10
00b428: 7609 e901 0100                         |0110: invoke-direct/range {v1, v2, v3, v4, v5, v6, v7, v8, v9}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b42e: 110a                                   |0113: return-object v10
00b430: 2200 9100                              |0114: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b434: 1412 0080 bb44                         |0116: const v18, #float 1500 // #44bb8000
00b43a: 1313 0200                              |0119: const/16 v19, #int 2 // #2
00b43e: 160c 0000                              |011b: const-wide/16 v12, #int 0 // #0
00b442: 160e 0000                              |011d: const-wide/16 v14, #int 0 // #0
00b446: 1810 3333 3333 3333 b33f               |011f: const-wide v16, #double 0.075 // #3fb3333333333333
00b450: 070b                                   |0124: move-object v11, v0
00b452: 7609 e901 0b00                         |0125: invoke-direct/range {v11, v12, v13, v14, v15, v16, v17, v18, v19}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b458: 1100                                   |0128: return-object v0
00b45a: 2200 9100                              |0129: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b45e: 1508 2f44                              |012b: const/high16 v8, #int 1143930880 // #442f
00b462: 1229                                   |012d: const/4 v9, #int 2 // #2
00b464: 1602 0000                              |012e: const-wide/16 v2, #int 0 // #0
00b468: 1604 0000                              |0130: const-wide/16 v4, #int 0 // #0
00b46c: 1806 0ad7 a370 3d0a a73f               |0132: const-wide v6, #double 0.045 // #3fa70a3d70a3d70a
00b476: 0701                                   |0137: move-object v1, v0
00b478: 7609 e901 0100                         |0138: invoke-direct/range {v1, v2, v3, v4, v5, v6, v7, v8, v9}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b47e: 1100                                   |013b: return-object v0
00b480: 5401 2500                              |013c: iget-object v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.kind:Ljava/lang/String; // field@0025
00b484: 6e10 5d06 0100                         |013e: invoke-virtual {v1}, Ljava/lang/String;.hashCode:()I // method@065d
00b48a: 0a16                                   |0141: move-result v22
00b48c: 2c16 8201 0000                         |0142: sparse-switch v22, 000002c4 // +00000182
00b492: 2854                                   |0145: goto 0199 // +0054
00b494: 6e20 5b06 7100                         |0146: invoke-virtual {v1, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b49a: 0a01                                   |0149: move-result v1
00b49c: 3801 fbff                              |014a: if-eqz v1, 0145 // -0005
00b4a0: 0132                                   |014c: move v2, v3
00b4a2: 284e                                   |014d: goto 019b // +004e
00b4a4: 6e20 5b06 8100                         |014e: invoke-virtual {v1, v8}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b4aa: 0a01                                   |0151: move-result v1
00b4ac: 3801 f3ff                              |0152: if-eqz v1, 0145 // -000d
00b4b0: 1302 0900                              |0154: const/16 v2, #int 9 // #9
00b4b4: 2845                                   |0156: goto 019b // +0045
00b4b6: 6e20 5b06 9100                         |0157: invoke-virtual {v1, v9}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b4bc: 0a01                                   |015a: move-result v1
00b4be: 3801 eaff                              |015b: if-eqz v1, 0145 // -0016
00b4c2: 1232                                   |015d: const/4 v2, #int 3 // #3
00b4c4: 283d                                   |015e: goto 019b // +003d
00b4c6: 6e20 5b06 a100                         |015f: invoke-virtual {v1, v10}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b4cc: 0a01                                   |0162: move-result v1
00b4ce: 3801 e2ff                              |0163: if-eqz v1, 0145 // -001e
00b4d2: 0152                                   |0165: move v2, v5
00b4d4: 2835                                   |0166: goto 019b // +0035
00b4d6: 6e20 5b06 b100                         |0167: invoke-virtual {v1, v11}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b4dc: 0a01                                   |016a: move-result v1
00b4de: 3801 daff                              |016b: if-eqz v1, 0145 // -0026
00b4e2: 1222                                   |016d: const/4 v2, #int 2 // #2
00b4e4: 282d                                   |016e: goto 019b // +002d
00b4e6: 6e20 5b06 c100                         |016f: invoke-virtual {v1, v12}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b4ec: 0a01                                   |0172: move-result v1
00b4ee: 3801 d2ff                              |0173: if-eqz v1, 0145 // -002e
00b4f2: 0202 1300                              |0175: move/from16 v2, v19
00b4f6: 2824                                   |0177: goto 019b // +0024
00b4f8: 6e20 5b06 d100                         |0178: invoke-virtual {v1, v13}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b4fe: 0a01                                   |017b: move-result v1
00b500: 3801 c9ff                              |017c: if-eqz v1, 0145 // -0037
00b504: 1302 0800                              |017e: const/16 v2, #int 8 // #8
00b508: 281b                                   |0180: goto 019b // +001b
00b50a: 6e20 5b06 e100                         |0181: invoke-virtual {v1, v14}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b510: 0a01                                   |0184: move-result v1
00b512: 3801 c0ff                              |0185: if-eqz v1, 0145 // -0040
00b516: 1272                                   |0187: const/4 v2, #int 7 // #7
00b518: 2813                                   |0188: goto 019b // +0013
00b51a: 6e20 5b06 f100                         |0189: invoke-virtual {v1, v15}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b520: 0a01                                   |018c: move-result v1
00b522: 3801 b8ff                              |018d: if-eqz v1, 0145 // -0048
00b526: 0142                                   |018f: move v2, v4
00b528: 280b                                   |0190: goto 019b // +000b
00b52a: 6e20 5b06 2100                         |0191: invoke-virtual {v1, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00b530: 0a01                                   |0194: move-result v1
00b532: 3801 b0ff                              |0195: if-eqz v1, 0145 // -0050
00b536: 0162                                   |0197: move v2, v6
00b538: 2803                                   |0198: goto 019b // +0003
00b53a: 0202 1100                              |0199: move/from16 v2, v17
00b53e: 1501 0040                              |019b: const/high16 v1, #int 1073741824 // #4000
00b542: 2b02 5101 0000                         |019d: packed-switch v2, 000002ee // +00000151
00b548: 2200 9100                              |01a0: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b54c: 1514 be43                              |01a2: const/high16 v20, #int 1136525312 // #43be
00b550: 1315 0100                              |01a4: const/16 v21, #int 1 // #1
00b554: 180e 0000 0000 00c0 9240               |01a6: const-wide v14, #double 1200 // #4092c00000000000
00b55e: 1810 0000 0000 00e0 8540               |01ab: const-wide v16, #double 700 // #4085e00000000000
00b568: 1812 3bdf 4f8d 976e 923f               |01b0: const-wide v18, #double 0.018 // #3f926e978d4fdf3b
00b572: 070d                                   |01b5: move-object v13, v0
00b574: 7609 e901 0d00                         |01b6: invoke-direct/range {v13, v14, v15, v16, v17, v18, v19, v20, v21}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b57a: 1100                                   |01b9: return-object v0
00b57c: 2202 9100                              |01ba: new-instance v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b580: 5203 2600                              |01bc: iget v3, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b584: 8937                                   |01be: float-to-double v7, v3
00b586: 5200 2600                              |01bf: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b58a: c810                                   |01c1: mul-float/2addr v0, v1
00b58c: 8909                                   |01c2: float-to-double v9, v0
00b58e: 140d 0080 8944                         |01c3: const v13, #float 1100 // #44898000
00b594: 120e                                   |01c6: const/4 v14, #int 0 // #0
00b596: 190b d03f                              |01c7: const-wide/high16 v11, #long 4598175219545276416 // #3fd0
00b59a: 0726                                   |01c9: move-object v6, v2
00b59c: 7609 e901 0600                         |01ca: invoke-direct/range {v6, v7, v8, v9, v10, v11, v12, v13, v14}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b5a2: 1102                                   |01cd: return-object v2
00b5a4: 2202 9100                              |01ce: new-instance v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b5a8: 5203 2600                              |01d0: iget v3, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b5ac: c813                                   |01d2: mul-float/2addr v3, v1
00b5ae: 8933                                   |01d3: float-to-double v3, v3
00b5b0: 5200 2600                              |01d4: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b5b4: c810                                   |01d6: mul-float/2addr v0, v1
00b5b6: 8900                                   |01d7: float-to-double v0, v0
00b5b8: 1516 af44                              |01d8: const/high16 v22, #int 1152319488 // #44af
00b5bc: 1317 0000                              |01da: const/16 v23, #int 0 // #0
00b5c0: 1814 e17a 14ae 47e1 da3f               |01dc: const-wide v20, #double 0.42 // #3fdae147ae147ae1
00b5ca: 072f                                   |01e1: move-object v15, v2
00b5cc: 0510 0300                              |01e2: move-wide/from16 v16, v3
00b5d0: 0512 0000                              |01e4: move-wide/from16 v18, v0
00b5d4: 7609 e901 0f00                         |01e6: invoke-direct/range {v15, v16, v17, v18, v19, v20, v21, v22, v23}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b5da: 1102                                   |01e9: return-object v2
00b5dc: 2200 9100                              |01ea: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b5e0: 150c af44                              |01ec: const/high16 v12, #int 1152319488 // #44af
00b5e4: 121d                                   |01ee: const/4 v13, #int 1 // #1
00b5e6: 1806 0000 0000 00c0 5740               |01ef: const-wide v6, #double 95 // #4057c00000000000
00b5f0: 1808 0000 0000 0080 4640               |01f4: const-wide v8, #double 45 // #4046800000000000
00b5fa: 180a b81e 85eb 51b8 be3f               |01f9: const-wide v10, #double 0.12 // #3fbeb851eb851eb8
00b604: 0705                                   |01fe: move-object v5, v0
00b606: 7609 e901 0500                         |01ff: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11, v12, v13}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b60c: 1100                                   |0202: return-object v0
00b60e: 2202 9100                              |0203: new-instance v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b612: 5203 2600                              |0205: iget v3, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b616: 8933                                   |0207: float-to-double v3, v3
00b618: 5200 2600                              |0208: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b61c: c810                                   |020a: mul-float/2addr v0, v1
00b61e: 8900                                   |020b: float-to-double v0, v0
00b620: 1415 00c0 8f44                         |020c: const v21, #float 1150 // #448fc000
00b626: 1316 0000                              |020f: const/16 v22, #int 0 // #0
00b62a: 1813 a470 3d0a d7a3 c03f               |0211: const-wide v19, #double 0.13 // #3fc0a3d70a3d70a4
00b634: 072e                                   |0216: move-object v14, v2
00b636: 043f                                   |0217: move-wide v15, v3
00b638: 0511 0000                              |0218: move-wide/from16 v17, v0
00b63c: 7609 e901 0e00                         |021a: invoke-direct/range {v14, v15, v16, v17, v18, v19, v20, v21, v22}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b642: 1102                                   |021d: return-object v2
00b644: 2331 7301                              |021e: new-array v1, v3, [D // type@0173
00b648: 2601 e600 0000                         |0220: fill-array-data v1, 00000306 // +000000e6
00b64e: 5202 2600                              |0223: iget v2, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b652: 8922                                   |0225: float-to-double v2, v2
00b654: 5200 2700                              |0226: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.value:I // field@0027
00b658: d800 00ff                              |0228: add-int/lit8 v0, v0, #int -1 // #ff
00b65c: 7120 4406 0400                         |022a: invoke-static {v4, v0}, Ljava/lang/Math;.max:(II)I // method@0644
00b662: 0a00                                   |022d: move-result v0
00b664: 7120 4806 0500                         |022e: invoke-static {v5, v0}, Ljava/lang/Math;.min:(II)I // method@0648
00b66a: 0a00                                   |0231: move-result v0
00b66c: 4500 0100                              |0232: aget-wide v0, v1, v0
00b670: ad07 0200                              |0234: mul-double v7, v2, v0
00b674: 2200 9100                              |0236: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b678: 140b 0040 b544                         |0238: const v11, #float 1450 // #44b54000
00b67e: 120c                                   |023b: const/4 v12, #int 0 // #0
00b680: 1809 52b8 1e85 eb51 c83f               |023c: const-wide v9, #double 0.19 // #3fc851eb851eb852
00b68a: 0704                                   |0241: move-object v4, v0
00b68c: 0475                                   |0242: move-wide v5, v7
00b68e: 7609 e901 0400                         |0243: invoke-direct/range {v4, v5, v6, v7, v8, v9, v10, v11, v12}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b694: 1100                                   |0246: return-object v0
00b696: 2200 9100                              |0247: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b69a: 1414 0080 a244                         |0249: const v20, #float 1300 // #44a28000
00b6a0: 1315 0100                              |024c: const/16 v21, #int 1 // #1
00b6a4: 180e 0000 0000 0040 5f40               |024e: const-wide v14, #double 125 // #405f400000000000
00b6ae: 1810 0000 0000 0080 4b40               |0253: const-wide v16, #double 55 // #404b800000000000
00b6b8: 1812 3333 3333 3333 b33f               |0258: const-wide v18, #double 0.075 // #3fb3333333333333
00b6c2: 070d                                   |025d: move-object v13, v0
00b6c4: 7609 e901 0d00                         |025e: invoke-direct/range {v13, v14, v15, v16, v17, v18, v19, v20, v21}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b6ca: 1100                                   |0261: return-object v0
00b6cc: 220a 9100                              |0262: new-instance v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00b6d0: 5201 2600                              |0264: iget v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b6d4: 8911                                   |0266: float-to-double v1, v1
00b6d6: 1903 f83f                              |0267: const-wide/high16 v3, #long 4609434218613702656 // #3ff8
00b6da: ad05 0103                              |0269: mul-double v5, v1, v3
00b6de: 5200 2600                              |026b: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.root:F // field@0026
00b6e2: 8900                                   |026d: float-to-double v0, v0
00b6e4: ad07 0003                              |026e: mul-double v7, v0, v3
00b6e8: 1500 6144                              |0270: const/high16 v0, #int 1147207680 // #4461
00b6ec: 1209                                   |0272: const/4 v9, #int 0 // #0
00b6ee: 180b 0ad7 a370 3d0a a73f               |0273: const-wide v11, #double 0.045 // #3fa70a3d70a3d70a
00b6f8: 07a1                                   |0278: move-object v1, v10
00b6fa: 0452                                   |0279: move-wide v2, v5
00b6fc: 0474                                   |027a: move-wide v4, v7
00b6fe: 04b6                                   |027b: move-wide v6, v11
00b700: 0108                                   |027c: move v8, v0
00b702: 7609 e901 0100                         |027d: invoke-direct/range {v1, v2, v3, v4, v5, v6, v7, v8, v9}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.<init>:(DDDFI)V // method@01e9
00b708: 110a                                   |0280: return-object v10
00b70a: 0000                                   |0281: nop // spacer
00b70c: 0002 0a00 48ee 1eac 5bdd dac8 3568 ... |0282: sparse-switch-data (42 units)
00b760: 0001 0a00 0000 0000 a500 0000 9000 ... |02ac: packed-switch-data (24 units)
00b790: 0002 0a00 48ee 1eac 5bdd dac8 3568 ... |02c4: sparse-switch-data (42 units)
00b7e4: 0001 0a00 0000 0000 c500 0000 aa00 ... |02ee: packed-switch-data (24 units)
00b814: 0003 0800 0500 0000 0000 0000 0000 ... |0306: array-data (24 units)
      catches       : (none)
      positions     :
        0x0000 line=621
        0x0025 line=622
        0x0087 line=630
        0x009b line=629
        0x00ae line=628
        0x00c3 line=627
        0x00d6 line=626
        0x00eb line=625
        0x0114 line=624
        0x0129 line=623
        0x013c line=633
        0x01a0 line=641
        0x01ba line=640
        0x01ce line=639
        0x01ea line=638
        0x0203 line=637
        0x021e line=636
        0x0247 line=635
        0x0262 line=634
      locals        :
        0x0000 - 0x031e reg=24 (null) Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;

  Virtual methods   -
    #0              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'finished'
      type          : '()Z'
      access        : 0x0000 ()
      code          -
      registers     : 3
      ins           : 1
      outs          : 0
      insns size    : 10 16-bit code units
00b1d4:                                        |[00b1d4] com.valentinedesigns.chromalink.ArcadeAudio$Voice.finished:()Z
00b1e4: 5220 3e00                              |0000: iget v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.cursor:I // field@003e
00b1e8: 5221 4100                              |0002: iget v1, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.length:I // field@0041
00b1ec: 3410 0400                              |0004: if-lt v0, v1, 0008 // +0004
00b1f0: 1210                                   |0006: const/4 v0, #int 1 // #1
00b1f2: 2802                                   |0007: goto 0009 // +0002
00b1f4: 1200                                   |0008: const/4 v0, #int 0 // #0
00b1f6: 0f00                                   |0009: return v0
      catches       : (none)
      positions     :
        0x0000 line=644
      locals        :
        0x0000 - 0x000a reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;

    #1              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;)
      name          : 'next'
      type          : '()F'
      access        : 0x0000 ()
      code          -
      registers     : 11
      ins           : 1
      outs          : 2
      insns size    : 172 16-bit code units
00b844:                                        |[00b844] com.valentinedesigns.chromalink.ArcadeAudio$Voice.next:()F
00b854: 52a0 3e00                              |0000: iget v0, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.cursor:I // field@003e
00b858: 52a1 4100                              |0002: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.length:I // field@0041
00b85c: 3410 0400                              |0004: if-lt v0, v1, 0008 // +0004
00b860: 1200                                   |0006: const/4 v0, #int 0 // #0
00b862: 0f00                                   |0007: return v0
00b864: 52a0 3e00                              |0008: iget v0, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.cursor:I // field@003e
00b868: 8200                                   |000a: int-to-float v0, v0
00b86a: 52a1 4000                              |000b: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.inverseLength:F // field@0040
00b86e: c810                                   |000d: mul-float/2addr v0, v1
00b870: 53a1 4400                              |000e: iget-wide v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.phase:D // field@0044
00b874: 53a3 3f00                              |0010: iget-wide v3, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.fromStep:D // field@003f
00b878: 53a5 4500                              |0012: iget-wide v5, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.stepDelta:D // field@0045
00b87c: 52a7 3e00                              |0014: iget v7, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.cursor:I // field@003e
00b880: d808 0701                              |0016: add-int/lit8 v8, v7, #int 1 // #01
00b884: 59a8 3e00                              |0018: iput v8, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.cursor:I // field@003e
00b888: 8377                                   |001a: int-to-double v7, v7
00b88a: cd75                                   |001b: mul-double/2addr v5, v7
00b88c: cb53                                   |001c: add-double/2addr v3, v5
00b88e: cb31                                   |001d: add-double/2addr v1, v3
00b890: 5aa1 4400                              |001e: iput-wide v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.phase:D // field@0044
00b894: 53a1 4400                              |0020: iget-wide v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.phase:D // field@0044
00b898: 1903 f03f                              |0022: const-wide/high16 v3, #long 4607182418800017408 // #3ff0
00b89c: 2f01 0103                              |0024: cmpl-double v1, v1, v3
00b8a0: 3a01 0700                              |0026: if-ltz v1, 002d // +0007
00b8a4: 53a1 4400                              |0028: iget-wide v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.phase:D // field@0044
00b8a8: cc31                                   |002a: sub-double/2addr v1, v3
00b8aa: 5aa1 4400                              |002b: iput-wide v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.phase:D // field@0044
00b8ae: 52a1 4700                              |002d: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.waveform:I // field@0047
00b8b2: 1222                                   |002f: const/4 v2, #int 2 // #2
00b8b4: 1505 803f                              |0030: const/high16 v5, #int 1065353216 // #3f80
00b8b8: 3321 3700                              |0032: if-ne v1, v2, 0069 // +0037
00b8bc: 52a1 4300                              |0034: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8c0: 52a2 4300                              |0036: iget v2, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8c4: e002 020d                              |0038: shl-int/lit8 v2, v2, #int 13 // #0d
00b8c8: b721                                   |003a: xor-int/2addr v1, v2
00b8ca: 59a1 4300                              |003b: iput v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8ce: 52a1 4300                              |003d: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8d2: 52a2 4300                              |003f: iget v2, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8d6: e202 0211                              |0041: ushr-int/lit8 v2, v2, #int 17 // #11
00b8da: b721                                   |0043: xor-int/2addr v1, v2
00b8dc: 59a1 4300                              |0044: iput v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8e0: 52a1 4300                              |0046: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8e4: 52a2 4300                              |0048: iget v2, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8e8: e002 0205                              |004a: shl-int/lit8 v2, v2, #int 5 // #05
00b8ec: b721                                   |004c: xor-int/2addr v1, v2
00b8ee: 59a1 4300                              |004d: iput v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8f2: 52a1 4300                              |004f: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noiseState:I // field@0043
00b8f6: e201 0108                              |0051: ushr-int/lit8 v1, v1, #int 8 // #08
00b8fa: 8211                                   |0053: int-to-float v1, v1
00b8fc: 1402 ffff ff4a                         |0054: const v2, #float 8.38861e+06 // #4affffff
00b902: c921                                   |0057: div-float/2addr v1, v2
00b904: c751                                   |0058: sub-float/2addr v1, v5
00b906: 52a2 4200                              |0059: iget v2, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noise:F // field@0042
00b90a: 52a3 4200                              |005b: iget v3, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noise:F // field@0042
00b90e: c731                                   |005d: sub-float/2addr v1, v3
00b910: 1403 9a99 993e                         |005e: const v3, #float 0.3 // #3e99999a
00b916: c831                                   |0061: mul-float/2addr v1, v3
00b918: c612                                   |0062: add-float/2addr v2, v1
00b91a: 59a2 4200                              |0063: iput v2, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noise:F // field@0042
00b91e: 52a1 4200                              |0065: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.noise:F // field@0042
00b922: 8911                                   |0067: float-to-double v1, v1
00b924: 2831                                   |0068: goto 0099 // +0031
00b926: 52a1 4700                              |0069: iget v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.waveform:I // field@0047
00b92a: 1212                                   |006b: const/4 v2, #int 1 // #1
00b92c: 3321 1100                              |006c: if-ne v1, v2, 007d // +0011
00b930: 53a1 4400                              |006e: iget-wide v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.phase:D // field@0044
00b934: 1906 e03f                              |0070: const-wide/high16 v6, #long 4602678819172646912 // #3fe0
00b938: cc61                                   |0072: sub-double/2addr v1, v6
00b93a: 7120 3906 2100                         |0073: invoke-static {v1, v2}, Ljava/lang/Math;.abs:(D)D // method@0639
00b940: 0b01                                   |0076: move-result-wide v1
00b942: 1906 1040                              |0077: const-wide/high16 v6, #long 4616189618054758400 // #4010
00b946: cd61                                   |0079: mul-double/2addr v1, v6
00b948: ac01 0301                              |007a: sub-double v1, v3, v1
00b94c: 281d                                   |007c: goto 0099 // +001d
00b94e: 53a1 4400                              |007d: iget-wide v1, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.phase:D // field@0044
00b952: 1903 a040                              |007f: const-wide/high16 v3, #long 4656722014701092864 // #40a0
00b956: cd31                                   |0081: mul-double/2addr v1, v3
00b958: 8a13                                   |0082: double-to-int v3, v1
00b95a: 6204 3c00                              |0083: sget-object v4, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.SINE:[F // field@003c
00b95e: 4404 0403                              |0085: aget v4, v4, v3
00b962: 8946                                   |0087: float-to-double v6, v4
00b964: 6204 3c00                              |0088: sget-object v4, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.SINE:[F // field@003c
00b968: d808 0301                              |008a: add-int/lit8 v8, v3, #int 1 // #01
00b96c: 4404 0408                              |008c: aget v4, v4, v8
00b970: 6208 3c00                              |008e: sget-object v8, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.SINE:[F // field@003c
00b974: 4408 0803                              |0090: aget v8, v8, v3
00b978: c784                                   |0092: sub-float/2addr v4, v8
00b97a: 8948                                   |0093: float-to-double v8, v4
00b97c: 8333                                   |0094: int-to-double v3, v3
00b97e: cc31                                   |0095: sub-double/2addr v1, v3
00b980: cd18                                   |0096: mul-double/2addr v8, v1
00b982: ab01 0608                              |0097: add-double v1, v6, v8
00b986: 52a3 4600                              |0099: iget v3, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.volume:F // field@0046
00b98a: 8933                                   |009b: float-to-double v3, v3
00b98c: cd31                                   |009c: mul-double/2addr v1, v3
00b98e: 1503 7042                              |009d: const/high16 v3, #int 1114636288 // #4270
00b992: c803                                   |009f: mul-float/2addr v3, v0
00b994: 7120 4706 3500                         |00a0: invoke-static {v5, v3}, Ljava/lang/Math;.min:(FF)F // method@0647
00b99a: 0a03                                   |00a3: move-result v3
00b99c: 8933                                   |00a4: float-to-double v3, v3
00b99e: cd31                                   |00a5: mul-double/2addr v1, v3
00b9a0: c705                                   |00a6: sub-float/2addr v5, v0
00b9a2: 8953                                   |00a7: float-to-double v3, v5
00b9a4: cd31                                   |00a8: mul-double/2addr v1, v3
00b9a6: cd31                                   |00a9: mul-double/2addr v1, v3
00b9a8: 8c10                                   |00aa: double-to-float v0, v1
00b9aa: 0f00                                   |00ab: return v0
      catches       : (none)
      positions     :
        0x0000 line=646
        0x0008 line=647
        0x002d line=649
        0x0069 line=650
        0x007d line=651
        0x0099 line=652
      locals        :
        0x0000 - 0x00ac reg=10 this Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;

  source_file_idx   : 238 (ArcadeAudio.java)

Class #9 annotations:
Annotations on class
  VISIBILITY_SYSTEM Ldalvik/annotation/MemberClasses; value={ Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest; Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; Lcom/valentinedesigns/chromalink/ArcadeAudio$Cancelled; Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; }
Annotations on field #88 'effects'
  VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "Ljava/util/concurrent/ConcurrentLinkedQueue<" "Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;" ">;" }
Annotations on method #498 'assetName'
  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/io/IOException; }
Annotations on method #499 'checkCancelled'
  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Lcom/valentinedesigns/chromalink/ArcadeAudio$Cancelled; }
Annotations on method #502 'decode'
  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/io/IOException; }
Annotations on method #510 'loadBundle'
  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/io/IOException; }
Annotations on method #514 'readObject'
  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/io/IOException; }
Annotations on method #515 'readText'
  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/io/IOException; }
Annotations on method #516 'readTrackSpecs'
  VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/io/IOException; }

