    MOV ecx, Size
    Or ecx, ecx
    JZ SpectrumMonoMixJ1_No
    
    MOV eax, *SpectrumIn
    OR eax, eax
    JNZ SpectrumMonoMix_pSpecInValid
    MOV eax, SpecTmp
  !SpectrumMonoMix_pSpecInValid:
    MOV edx, *SpectrumOut
    OR edx, edx
    JNZ SpectrumMonoMix_pSpecOutValid
    MOV edx, SpecTmp
  !SpectrumMonoMix_pSpecOutValid:
    
    PUSH ebx
    MOV ebx, ecx
    SHL ebx, 2
    ADD ebx, eax
    FLD1
    FADD st, st ; 2
    FLD1
    FADD st, st1
    FDIVR st, st1 ; 0.66666
  ; (abs(ab)*0.666+a+b)/1  
  !SpectrumMonoMixJ1_Loop:
    FLD dword [eax]
    FSUB dword [ebx]
    FABS
    FMUL st, st1
    FADD dword [eax]
    ADD eax, 4
    FADD dword [ebx]
    ADD ebx, 4
    FDIV st, st2
    FSTP dword [edx]
    ADD edx, 4
    DEC ecx
    JNZ SpectrumMonoMixJ1_Loop
    
    POP ebx
  FSTP st
  FSTP st

!SpectrumMonoMixJ1_No:
; IDE Options = PureBasic 4.61 Beta 1 (Windows - x64)
; CursorPosition = 36
; FirstLine = 8
; EnableXP