Page 1 of 1

Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Posted: Fri Jan 10, 2025 5:38 pm
by oryaaaaa
Compare PI quality
PI = 3.141592653589793238462643383 this sound solutions
PI = 3.14159265358979323846 many sound solutions

Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Download executables Windows x64
deleted
2677KB filename is CRC64.dat

You did download "4523959E384B9D32.dat".

Run this program, and Uncompress.

Code: Select all

file.s = OpenFileRequester("", "", "",0)
fileno.i = ReadFile(#PB_Any, file, #PB_Ascii)
UseLZMAPacker()
Global length.i, *data_in, *data_out
If fileno
  length.i =  120000000
  *data_in = AllocateMemory( length + 4096 - length%4096 )
  *data_out = AllocateMemory( length + 4096 - length%4096 )
  length = Lof(fileno)
  Debug length
  ReadData(fileno, *data_in, length)
  CloseFile(fileno)
  length.i =  120000000
  length = UncompressMemory(*data_in, length, *data_out, length, #PB_PackerPlugin_Lzma)
  Debug length
  !MOV R8, [p_data_out]
  !MOV Rcx, 2500000
  !NOTE:
  !MOV R8b, R8b
  !MOV R8w, R8w
  !MOV R8, R8
  !MOV R9, [R8]
  !NOT R9
  !MOVNTI [R8], R9
  !ADD R8, 32
  !DEC Rcx
  !JNZ NOTE
  fileno = CreateFile(#PB_Any, ReplaceString(file,".dat", ".iso") )
  If fileno
    WriteData(fileno, *data_out, length)
    CloseFile(fileno)
  EndIf  
  FreeMemory(*data_in)
  FreeMemory(*data_out)
EndIf
CallDebugger
Create iso file
"4523959E384B9D32.iso"

Extract "4523959E384B9D32.iso" by 7zip

Make directory "20250121PBforumNontallion"
bass.dll bassalac.dll bassasio.dll bassdsd.dll bassenc.dll bassenc_flac.dll
bassenc_opus.dll bassflac.dll bassopus.dll basswasapi.dll bass_aac.dll
CruseAAcFlacResamplerAutoMotive.exe CruseAAcFlacUpsampler176.exe
CruseBusterElegantLPF.exe CruseBusterElementaryLPF.exe CruseCDRWmusicLPF.exe
CruseEleganceRadioLPF.exe CruseResamplerLPF.exe GetAsioDeviceName.exe
GetWasapiDeviceName.exe Nontallion.exe SaverageLPF.exe SharewareLicenseBASS.txt

"20250121PBforumNontallion.iso"


Elementary make any sound split waves.
Many sound speaker support Max 64way

S.M.S.L M300SE CS43131 2way (DAC x2/ch) + pre 1way = 2way
Supported Max 32way | up-sampling x2 Max96kHz

Singxer SDA-2 AK4497EQ 1way (DAC x1/ch) + pre 4way = 4way
Supported Max 16way | up-sampling x2 x4 Max192kHz

Gustard DAC-A18 AK4499EQ 2way (DAC x2/ch) + pre 8way = 16way
Supported Max 4way | up-sampling x2 x4 Max192kHz

I like [Snow x4] "OC D D CO" [1024] [40.0kHz] 86.13Hz 6/4way
Because SDA-2 sound "Elementary 4way" * "Dac 4way" = 16way outputs
I use Sennheiser HD 660 S XLR [AK4497EQ Sharp] PCM 176.4kHz

many users said "YOU ARE DANGER!"
You should Max 64way limit outputs.
If you want to dump your headphones, next try Max 512way ... sound and died.

[Snow x4] setup, playing stop mode only.
OC ... SincResamples Loop 1samples skip + SincResamples Loop normal = 2way * 1way
DD ... Up-sampling , this sound edge is like AKM DAC sound. = 2way
CO ... SincResamples Loop normal + SincResamples Loop 1samples skip = DD 2way * 1way * 2way = 4way

[Tester x4] for hearing loss with Smartphones
LPF ... 11025 Hz Slow , calc setup 9801 Hz (inside)
DD ... D D | PI = 3.141592653589793238462643383
Finished data + LPF | PI = 3.141592653589793238462643383 (= CruseAAcFlacUpsampler176 + Normal)

CruseBusterElementaryLPF vs CruseBusterElegantLPF
Test: [Snow x4] [1024] [176.4kHz] 86.13Hz 6/4way + AK4497EQ DAC + HD 660 S XLR
CruseBusterElegantLPF: Vocal singer is REAL phase
CruseBusterElementaryLPF: Vocal singer is Studio phase


CruseEleganceRadioLPF
Stream test: DI.FM Premium 320kbps
PLAY , If DarkPSY? no, If HandsUp? no, If Nightcore Yes and run.
User in Japan, You should pay GooglePLAY app DI.FM with Smartphones.
PC WEB: You setup Favorites and Download Premium 320kbps MP3 Playlist.

"DI.FM - Favorites.pls"
---Start---
[playlist]
NumberOfEntries=5
File1=http:
Title1=DI.FM - Dark PsyTrance
Length1=0
File2=http:
Title2=DI.FM - Hands Up
Length2=0
File3=http:
Title3=DI.FM - Nightcore
Length3=0
File4=http:
Title4=DI.FM - Dark DnB
Length4=0
File5=http:
Title5=DI.FM - Vocal Trance
Length5=0
Version=2
---End---

Code: Select all

Protected FileNo.i, FileReadLoop.i, FileReadLoopNo.i, FileBufStr.s
FileNo = ReadFile(#PB_Any, ExePath()+"DI.FM - Favorites.pls")
If FileNo>0
  If ReadString(FileNo)="[playlist]"
    FileReadLoop = Val(StringField(ReadString(FileNo),2, "=") )
    For FileReadLoopNo=1 To FileReadLoop
      FileBufStr = StringField(ReadString(FileNo),2, "=")
      FileName = InputRequester("Radio URL http only",StringField(ReadString(FileNo),2, "="), FileBufStr)
      FileBufStr = StringField(ReadString(FileNo),2, "=")
      If  Len(FileName)>0
        Break
      EndIf
    Next
  EndIf
  CloseFile(FileNo)
Else
  FileName = InputRequester("Radio URL http only", "Input URL spells", "")
EndIf
;
If Len(FileName)>0
  chan = BASS_StreamCreateURL(@FileName, 0, #BASS_UNICODE | #BASS_STREAM_DECODE | #BASS_SAMPLE_FLOAT , 0, 0)
  If chan=0 
    chan = BASS_FLAC_StreamCreateURL(@FileName, 0, #BASS_UNICODE | #BASS_STREAM_DECODE | #BASS_SAMPLE_FLOAT , 0, 0)
  EndIf
  If chan=0 
    chan = BASS_ALAC_StreamCreateURL(@FileName, 0,  #BASS_UNICODE | #BASS_STREAM_DECODE | #BASS_SAMPLE_FLOAT , 0, 0)
  EndIf
  If chan=0 
    chan = BASS_DSD_StreamCreateURL(@FileName, 0, #BASS_UNICODE | #BASS_STREAM_DECODE | #BASS_SAMPLE_FLOAT , 0, 0, 44100)
  EndIf
EndIf
BASS 2.4
Copyright (c) 1999-2022 Un4seen Developments Ltd. All rights reserved.

Licence
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASS IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASS. YOU USE
BASS ENTIRELY AT YOUR OWN RISK.


BASSASIO 1.4
Copyright (c) 2005-2023 Un4seen Developments Ltd. All rights reserved.

Licence
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSASIO IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSASIO. YOU USE
BASSASIO ENTIRELY AT YOUR OWN RISK.


BASSWASAPI 2.4
Copyright (c) 2009-2023 Un4seen Developments Ltd. All rights reserved.

Licence
=======
BASSWASAPI is free to use with BASS.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSWASAPI IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSWASAPI. YOU USE
BASSWASAPI ENTIRELY AT YOUR OWN RISK.


BASSenc 2.4
Copyright (c) 2003-2022 Un4seen Developments Ltd. All rights reserved.

Licence
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSENC IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSENC. YOU USE
BASSENC ENTIRELY AT YOUR OWN RISK.


BASSDSD 2.4
Copyright (c) 2014-2022 Un4seen Developments Ltd. All rights reserved.

Licence
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSDSD IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSDSD. YOU USE
BASSDSD ENTIRELY AT YOUR OWN RISK.


BASSOPUS 2.4
Copyright (c) 2012-2024 Un4seen Developments Ltd. All rights reserved.

Licence
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSOPUS IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSOPUS. YOU USE
BASSOPUS ENTIRELY AT YOUR OWN RISK.

Credits
=======
Opus decoding is based on libOpus, Copyright 2001-2011 Xiph.Org,
Skype Limited, Octasic, Jean-Marc Valin, Timothy B. Terriberry,
CSIRO, Gregory Maxwell, Mark Borgerding, Erik de Castro Lopo


BASSenc_OPUS 2.4
Copyright (c) 2016-2024 Un4seen Developments Ltd. All rights reserved.

Licence
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSENC_OPUS IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSENC_OPUS. YOU USE
BASSENC_OPUS ENTIRELY AT YOUR OWN RISK.

Credits
=======
Opus encoding is based on libOpus, Copyright 2001-2011 Xiph.Org,
Skype Limited, Octasic, Jean-Marc Valin, Timothy B. Terriberry,
CSIRO, Gregory Maxwell, Mark Borgerding, Erik de Castro Lopo.
And libSpeexDSP, Copyright 2002-2008 Xiph.Org, Jean-Marc Valin.


BASSFLAC 2.4
Copyright (c) 2004-2024 Un4seen Developments Ltd. All rights reserved.

Licence
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSFLAC IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSFLAC. YOU USE
BASSFLAC ENTIRELY AT YOUR OWN RISK.

Credits
=======
FLAC decoding is based on libFLAC, Copyright (c) 2000-2009 Josh Coalson,
Copyright (C) 2011-2023 Xiph.Org Foundation


BASSenc_FLAC 2.4
Copyright (c) 2017-2023 Un4seen Developments Ltd. All rights reserved.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSENC_FLAC IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSENC_FLAC. YOU USE
BASSENC_FLAC ENTIRELY AT YOUR OWN RISK.

Credits
=======
FLAC encoding is based on libFLAC, Copyright (C) 2000-2009 Josh Coalson,
Copyright (C) 2011-2023 Xiph.Org Foundation


BASSALAC 2.4
Copyright (c) 2016-2024 Un4seen Developments Ltd. All rights reserved.

Licence
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSALAC IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSALAC. YOU USE
BASSALAC ENTIRELY AT YOUR OWN RISK.

Credits
=======
BASSALAC contains code from Apple's ALAC decoder (http://alac.macosforge.org/),
Copyright (c) 2011 Apple Inc. And from David Hammerton's ALAC decoder,
Copyright (c) 2005 David Hammerton.


BASS_AAC 2.4
Copyright Unknown

CruseAAcFlacResamplerAutoMotive.asm | SHA-1 bc772abea33469d0bad362e134517715c20019c1
CruseAAcFlacResamplerAutoMotive.exe | SHA-1 b3aca067272185e61e02c0f57c01bf28652a3b98
MajiorityVideo.asm | SHA-1 a5542cfc1362ce13c7814c3b428e245845f44062
MajiorityVideo.exe | SHA-1 643583b03b73b3fdfdea84832a3854282ba77b22
MajiorityVideoML32.asm | SHA-1 cc4366d904b718ef750612c84d20f654bf5faa49
MajiorityVideoML32.dll | SHA-1 7bb550ba46f3de6a4c977180d06932b64a259185
MajiorityAudio.asm | SHA-1 0e77b918057dfaa89a6260a9476e3cb363f939d8
MajiorityAudio.exe | SHA-1 ec069616bc353a453e35d97e5dfd94f1e135dcc9
MajiorityAudioML33.asm | SHA-1 b991620f1c76e7c3d9f77a7d0a7f60fa4202fe53
MajiorityAudioML33.dll | SHA-1 90cc67e6b51873b9cb10d87e21600fbf99753db1
SaverageLPF.asm | SHA-1 455399b86e227f84b56fba68f781bf23e29aa152
SaverageLPF.exe | SHA-1 5b41bcdd2e30a49b451aa3c8bd7f23310e1e069f
Nontallion.asm | SHA-1 821e73401b2eb173aac893083be46dd0ba83cf8b
Nontallion.exe | SHA-1 04888157172bea0fcb4a287c3480e6ad4d844923
GetAsioDeviceName.asm | SHA-1 7e8def6ebb640a71ebdad4279218767794d8e6b9
GetAsioDeviceName.exe | SHA-1 7ac8e96a72936f49f33ff59e4ad5f1d3c7a5f40a
GetWasapiDeviceName.asm | SHA-1 cac4cdbe28dd60a2ab90e39725fb6370905ce6aa
GetWasapiDeviceName.exe | SHA-1 f15055b22b6f342775a52f0f5bad25d9c22c06dd
JKprint.asm | SHA-1 be2ce480268edf435c331eb4e1a6bc4b4f24b53a
JKprint.exe | SHA-1 ed37ce024d440ae908218a81ff111497150cff90
MagiclobeViewer.asm | SHA-1 b7ead58b169bba75ca1099aa2c31e33083fbb6ad
MagiclobeViewer.exe | SHA-1 0cae3d38f5a189faf879b41c6fba9b410c5bb245
RewriteData.asm | SHA-1 58b9aabfdca56fc9fb81dbd0abad693b5cbbc37a
RewriteData.exe | SHA-1 e14a6f05340cc9d04581df820123658f6e9614b6
RD_INPUT.asm | SHA-1 74f9caaf96bfa19c05c89340dd8afb9a12355ed3
RD_INPUT.exe | SHA-1 af9254a6a495442c051a4e0e27fc2be3ba16e814
CruseResamplerLPF.asm | SHA-1 ae2af7a4edf563d887ca5f7e6ed191ebd49b2107
CruseResamplerLPF.exe | SHA-1 7083292b331dc5ce68cb0078696075ce08105cbb
CruseBusterElementaryLPF.asm | SHA-1 1c95f63b18478a2ef20c583bfb7a5b234a26d930
CruseBusterElementaryLPF.exe | SHA-1 8d6250b92767eb312697c13c226534c407d29ce8
CruseEleganceRadioLPF.asm | SHA-1 ba83560b84fcdb5f7b49f7bb654435549a73022e
CruseEleganceRadioLPF.exe | SHA-1 a08e26e509ffc20b79be85b0dd55c6934d240abc
CruseBusterElegantLPF.asm | SHA-1 11a96dbf8f79cd4e3c4f4ea0d768a1616ba220ac
CruseBusterElegantLPF.exe | SHA-1 b9796dc10d91588f7fb759e93f070fed86a3f844
CruseCDRWmusicLPF.asm | SHA-1 4853483933861309473e99824ecf47945306a91e
CruseCDRWmusicLPF.exe | SHA-1 8bd70d6c6679c9a9a2225069b2947b11304b0209
CruseAAcFlacUpsampler176.asm | SHA-1 cea53a3c53591d0b1cac8f2bb2dabc2d51879ae5
CruseAAcFlacUpsampler176.exe | SHA-1 d95730f7ace5f3b21e2d1034770f70fe431f88b4
CruseAAcFlacResamplerAutoMotive.asm | SHA-1 bc772abea33469d0bad362e134517715c20019c1
CruseAAcFlacResamplerAutoMotive.exe | SHA-1 b3aca067272185e61e02c0f57c01bf28652a3b98
THIS SOUND VOLUME LEVEL is MAX, Please adjust pre-amplifier with DAC.


User customize
Remove "LPF" : Nontallion.exe
Unlock : DSD raw output , skip LPF process
Change "GetPowerCores.txt" PowerCores = 2 ( 4 or 8 ) : NontallionLPF

GetAsioDeviceName.exe before launch Nontallion.exe
You should edit GetAsioDeviceName.txt
"GetAsioDeviceName.txt"
; Get asio device name - ANSI access
; Date of survey Y=2025, M= 01, D=08
; Please select only use the device you want to output. Delete lines.
;
Singxer USB Audio Device = 2
Gustard USB Audio Device = 1
; ASIO4ALL v2 = 0

"GetPowerCores.txt"
; Set power cores, 13th Gen Intel(R) Core(TM) i7-13700 Y=2025, M= 01, D=08
PowerCores = 2
CruseBusterElementaryLPF CruseBusterElegantLPF
To solve the problem of smartphone hearing loss, the condition of [EL Tester x4 1024 AD176.4kHz], which is a correction process for pi, is appropriate.
CruseAAcFlacUpsampler176: x2 x2 LPF
CruseBusterElementaryLPF: x2 x2 LPF
CruseBusterElegantLPF: x2 x2 LPF
2012-2022 versions
CruseBusterElementary: x2 x2
CruseBusterElegant: x2 x2
required DAC with LPF | AKM AK4497EQ , ESS ES9038PRO
The higher end audio environments were not designed to include LPFs and required prior software processing. When it comes to sacred music, there is no sound data above 8000 Hz, and LPF 9801 Hz is a reasonable choice.

ASIOcontrol Panel
You setup [Tester x4], Mouse right click menu - Control devices - ASIO control Panel
Setup to Latency 16ms 4096 samples 176.4kHz, output depth 24-bits

I use Core i7-13700, But BIOS setup is P-2 E-0 HT-enabled.
If you feel bad sound quality, setup to P-2 4 E-0 HT-enabled or P-8 E-0 HT-disabled.

Re: Nontallion, CruseAAcFlacResampler [Windows]

Posted: Sat Jan 11, 2025 8:56 am
by oryaaaaa
If you don't hear sound, "Refresh init Asio"
If you use systray AsioControlPanel, "PAUSE" EditASIOcontrol "Refresh init Asio"
My setup latency 16ms (48000Hz 1024 samples)

User's another sound solution.
JPLAY, Fidelizer, Diretta, ... I don't use this sound solutions.

Nontallion operation

Code: Select all

PopMenu = CreatePopupMenu(APB_Any)
MenuItem(PopMenu_PAUSE, "PAUSE")
MenuBar()
MenuItem(PopMenu_SKIP, "SKIP")
MenuBar()
MenuItem(PopMenu_FIRST, "FIRST")
MenuBar()
MenuBar()
OpenSubMenu("COLOR")
MenuBar()
MenuItem(PopMenu_Color_PINK, "PINK")
MenuBar()
MenuItem(PopMenu_Color_MINT, "MINT")
MenuBar()
MenuItem(PopMenu_Color_ORCHID, "ORCHID")
MenuBar()
MenuItem(PopMenu_Color_GOLD, "GOLD")
MenuBar()
MenuItem(PopMenu_Color_BLACK, "BLACK")
MenuBar()
MenuItem(PopMenu_Color_GREEN, "GREEN")
MenuBar()
MenuItem(PopMenu_Color_BLUE, "BLUE")
MenuBar()
MenuItem(PopMenu_Color_RED, "RED")
MenuBar()
CloseSubMenu() 
MenuBar()
MenuBar()
MenuBar()
MenuItem(PopMenu_RECONNECT, "Refresh init Asio")
MenuBar()
MenuBar()
MenuBar()
MenuItem(PopMenu_Root_Folder, "Root folder")

PopMenu_N = CreatePopupMenu(APB_Any)
MenuBar()
MenuBar()
OpenSubMenu("COLOR")
MenuBar()
MenuItem(PopMenu_Color_PINK, "PINK")
MenuBar()
MenuItem(PopMenu_Color_MINT, "MINT")
MenuBar()
MenuItem(PopMenu_Color_ORCHID, "ORCHID")
MenuBar()
MenuItem(PopMenu_Color_GOLD, "GOLD")
MenuBar()
MenuItem(PopMenu_Color_BLACK, "BLACK")
MenuBar()
MenuItem(PopMenu_Color_GREEN, "GREEN")
MenuBar()
MenuItem(PopMenu_Color_BLUE, "BLUE")
MenuBar()
MenuItem(PopMenu_Color_RED, "RED")
MenuBar()
CloseSubMenu() 
MenuBar()
MenuBar()
OpenSubMenu("Quality")
MenuItem(PopMenu_QualitySKIP, "Skip , no wait , DSD-PCM 44.1kHz")
MenuBar()
If LowPathCut = "LPF"
  MenuItem(PopMenu_QualityLOW, "Buffer stabilizer , no wait , DSD-PCM 44.1kHz")
  MenuBar()
  MenuItem(PopMenu_QualityHIGH, "Buffer initialize & stabilizer, DSD-PCM 44.1kHz")
Else
  MenuItem(PopMenu_QualityLOW, "Buffer stabilizer , no wait , DSD-RAW")
  MenuBar()
  MenuItem(PopMenu_QualityHIGH, "Buffer initialize & stabilizer, DSD-RAW")
EndIf
CloseSubMenu() 
MenuBar()
MenuBar()
MenuBar()
MenuItem(PopMenu_ASIO_CONTROL, "ASIO Control Panel")
MenuBar()
MenuBar()
MenuBar()
MenuItem(PopMenu_Root_Folder, "Root folder")

Re: Nontallion, CruseAAcFlacResampler [Windows]

Posted: Sun Jan 12, 2025 2:01 am
by oryaaaaa
Extreme Super Low Jitter Digital Outputs

[Normal] Digital Outputs
It depends not only on the quality of CPU manufacturing and structural design, but also on the quality of power supply and memory.
Due to digital jitter, low frequencies sound amplified.
Therefore, "pre-amplifier" was considered unnecessary for PC audio.
Under these conditions, music production would not sell, no matter how hard you tried.
# I reached here at 2006.

[Low Jitter] Digital Outputs
Amplification of low frequencies due to digital jitter is gone, but unclear.
High-precision Pi is considered research for military technology, leading to the problem of smartphone hearing loss.
If high-precision Pi is suppressed for fear of Russian military diversion, it cannot be researched.
If Russian military technology becomes the best in the world, this policy will turn into a fetter of hell.
# I reached here at 2014.

[Super Low Jitter] Digital Outputs
Every time a digital cable is changed, the tonal trend of the audio changes.
Loudspeakers stop selling and only high-end earphones start selling.
The semiconductor industry denies that the accuracy of the pi is the cause of the change, and manufacturing becomes difficult.
# I reached here at 2019.

[Military Super Low Jitter] Digital Outputs
Prohibited in the audio field; in Nontallion, the design produces periodic fluctuations.
The periodic oscillation of the electronic bit reference avoids diversion to military technology.
# I reached here at 2021.

[Extreme Super Low Jitter] Digital Outputs
USB DAC can be used in NOS (Non-OverSampling) mode.
No headaches caused by high frequency distortion that can occur with NOS DACs.
High-precision upsampling processing allows you to recognize the realism of the singer.
Stable digital transmission regardless of digital cable type.
# I reached here at 2023.

[Science Matrix Extreme Super Low Jitter] Digital Outputs
Jitterless signals that completely destroy digital devices used in the most advanced technologies.
Destroyed by high precision distortion that exceeds femtoclock by jitterless signal.
# I can't stay here.

Re: Nontallion, CruseAAcFlacResampler [Windows]

Posted: Sun Jan 12, 2025 2:57 pm
by oryaaaaa
Car audio's sound spilited wave
1 way: car glass change to echo around sound speaker
2 way: no problem
4 way: Sound waves run away from my car, distance 5m
8 way: Sound waves run away from my car, distance 50m
16 way: Sound waves run away from my car, distance 70m
64 way: Sound waves run away from my car, distance 500m
then I selected 2 way.

My car's speaker have problems.
Car product information writed "This speaker is Pioneer".
Why? I think Mark audio speaker units.
This is not Pionner speaker units. Hi-end spec here.

Car audio setup informations
EQ: FLAT , MP3 enhancer: OFF, Balance: Center
Volume up optimizer by speed: OFF
because audio dsp use 15 digit PI, quality down.
This process use 28 digit PI, famaous quality.

AD frequency customize
40,000 Hz: Error waves
44,100 Hz: AD max44.1kHz recoder
48,000 Hz: AD max48.0kHz recoder DAT
88,200 Hz: None
96,000 Hz: AD max96.0kHz recoder USB-MIC
176,400 Hz: SACD 2.8MHz recorder (Best)
192,000 Hz: AD max192.0kHz recoder USB-MIC
352,800 Hz: SACD 5.6MHz recorder
384,000 Hz: AD max384kHz recoder
705,600 Hz: SACD 11.2MHz recorder

UK chart rank 10 use SACD 2.8MHz recorder.
UK chart rank 200 use always SACD 5.6MHz recorder.

Re: Nontallion, CruseAAcFlacResampler [Windows]

Posted: Mon Jan 13, 2025 6:33 am
by Aleks_Longard
Very big thanks!
It's interesting for me.

Re: Nontallion, CruseAAcFlacResampler [Windows]

Posted: Tue Jan 14, 2025 4:06 pm
by oryaaaaa
Aleks_Longard wrote: Mon Jan 13, 2025 6:33 am Very big thanks!
It's interesting for me.
Thank you.
I add 44.1Hz .m4a AAC to 176.4kHz .flac FLAC converter today.
This result sound need DAC filter "SHARP" or "SLOW", little high-band noise included.

I use S.M.S.L M300SE CS43131 USB-DAC and audio-technica ATH-AVA500 headphone.
#Sound driver ver5.58 ASIO Latency 16ms

Re: Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Posted: Mon Jan 20, 2025 5:17 am
by oryaaaaa
oryaaaaa wrote: Fri Jan 10, 2025 5:38 pm Compare PI quality
PI = 3.141592653589793238462643383 this sound solutions
PI = 3.14159265358979323846 many sound solutions

Make directory "20250120PBforumNontallion"
bass.dll bassalac.dll bassasio.dll bassdsd.dll bassenc.dll bassenc_flac.dll
bassenc_opus.dll bassflac.dll bassopus.dll basswasapi.dll bass_aac.dll
CruseAAcFlacResamplerAutoMotive.exe CruseAAcFlacUpsampler176.exe
CruseBusterElegantLPF.exe CruseBusterElementaryLPF.exe CruseCDRWmusicLPF.exe
CruseEleganceRadioLPF.exe CruseResamplerLPF.exe GetAsioDeviceName.exe
GetWasapiDeviceName.exe Nontallion.exe SaverageLPF.exe SharewareLicenseBASS.txt
I closed my developer's homepage in Japan.
This data files upload only.

CruseSolutions have any problems for MUSIC Entertainment.
You should use for local PC area only.

CruseBuster need expesive USB-DAC.
Singxer SDA-2 AK4497EQ XMOS Discreet Femto USB-DAC.
Gustard XMOS Femto USB-DAC.
price USD 1500+
or
USB-DDC Singxer SU-2 XMOS Femto , price USD 800+
and Headphone Sennheiser HD 660 S2 or HD 820.
or
Speaker FYNE AUDIO F500 over class

Re: Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Posted: Mon Jan 20, 2025 8:51 pm
by oryaaaaa
oryaaaaa wrote: Fri Jan 10, 2025 5:38 pm CruseEleganceRadioLPF
Stream test: DI.FM Premium 320kbps
PLAY , If DarkPSY? no, If HandsUp? no, If Nightcore Yes and run.
User in Japan, You should pay GooglePLAY app DI.FM with Smartphones.
PC WEB: You setup Favorites and Download Premium 320kbps MP3 Playlist.

CruseAAcFlacUpsampler176: x2 x2 LPF
CruseBusterElementaryLPF: x2 x2 LPF
CruseBusterElegantLPF: x2 x2 LPF
2012-2022 versions
CruseBusterElementary: x2 x2
CruseBusterElegant: x2 x2
Before
CruseAAcFlacUpsampler176: x2 LPF x2 LPF LPF
CruseBusterElementaryLPF: x2 LPF x2 LPF LPF
CruseBusterElegantLPF: x2 LPF x2 LPF LPF
VOICE "PLEASE REMOVE x2 LPF setup"


"GooglePLAY app DI.FM with Smartphones" required in JAPAN.
I think copyright any charged "Smartphones" only.
before, I pay DI.fm by facebook or money, MUSIC police BAAAAAN.
take care.

Re: Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Posted: Tue Jan 21, 2025 12:25 pm
by oryaaaaa
oryaaaaa wrote: Fri Jan 10, 2025 5:38 pm CruseBusterElegantLPF.exe CruseBusterElementaryLPF.exe CruseEleganceRadioLPF.exe
[Removed] LAST100 functions

Radio: Safety process only [Tester x2 x4] [Red x1] [Shadow x1] [Normal]
[512] [1024] [2048] | Single thread only [U1/F0]

Cruse EL RS RW does'nt match the sound data like xrecode3, but modifies the sound data to improve the efficiency of shaking the speaker's diaphragm. and cannot be removed. The dolls that mention that the operation method is unclear are “only Japanese boys,” while foreign dolls are proficient in their use and do not require an operation explanation.

I have completed the re-signing of DI.FM.
mark up to radio get data BUG, and just fixed.
maybe this BUG is multi-thread-programming error.
add favorite mark, download VLC MP3 320kbps .pls

Thank you.

Re: Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Posted: Wed Jan 22, 2025 1:16 am
by oryaaaaa
Cruse Elegance Radio: Shoutcast styles mp3 streaming sound player. Low frequency range improved for DI.FM, Corrected 27 digit PI processing for sound waves with femto clocks USB-DAC and Ultra low jitter digital outputs functions.

ProcessingA:
Suppressing the signal value by multiplying every two samples by LOG10(8) = 0.9030899869919435 prevents the sound from sounding above 12 kHz, allowing you to enjoy a strong analog feel. The system provides complete music reproduction with only one full range.

ProcessingB:
Output Bit Limitation at Low Amplitude (15-bit output <0.4)
At low amplitude, "low efficiency" suppresses the drive power of the amplifier. At high amplitude, "suppressed amount, high efficiency" gives a pleasant feeling of sound separation.

ProcessingC:
Sonic Wave Segmentation (Resample Processing with Skip Referencing)
When resample processing is performed with “7 skip” to reference every 8 samples, the sound wave is divided into 8 segments. By splitting the sound wave, the vibration in the air is not slowed down and you can enjoy a high speed low frequency sound like high quality audio, despite the low sound pressure.

UpSampling:
2048 reference points (high-precision resample processing)
High-precision resample processing with 27 decimal places of pi restores lost sounds not heard in music, thereby restoring low frequencies by digitally resampling buffer circuits that are standard in high-end audio.

LPF:
9801Hz SLOW
AKM DAC SLOW or ESS DAC SLOW is 10700Hz.
CS43131 CS43198: 0.482FS = (44100 / 2) * 0.482 = 10628.1Hz

Normal: ProcA + ProcB + LPF
Red: ProcA + Upsampling x1 freq 44.1kHz + ProcC #2way + ProcB + LPF
Shadow1: ProcA + ProcC #2way + Upsampling x1 freq 44.1kHz + ProcB + LPF
Shadow2: ProcA + ProcC #4way + Upsampling x1 freq 44.1kHz + ProcB + LPF
Shadow3: ProcA + ProcC #8way + Upsampling x1 freq 44.1kHz + ProcB + LPF
Tester x2: ProcA + Upsampling x2 freq 88.2kHz + ProcB + LPF
Tester x4: ProcA + Upsampling x4 freq 176.4kHz + ProcB + LPF

Upsampling x1: Resample
Upsampling x2: Signal + Resample
Upsampling x4: Signal + Resample + Upsampling x2 + Resample

Sound Data 1 2 3 4 5 6 7 8 9 A B C D E F
ProcC #2way = Reample 1 3 5 7 9 B D F + Resample 2 4 6 8 A C E + ..135 + ...246
ProcC #4way = Resample 1 5 9 D + Resample 2 6 A E + RS 3 7 B F + RS 4 8 C + ...159 + ...26A
ProcC #8way = RS 1 9 + RS 2 A + RS 3 B + RS 4 C + RS 5 D + RS 6 E + RS 7 F + ...19 + ...2A
Low freq data 40Hz: #2way 20Hz, #4way 10Hz, #8way 5Hz ( lowfreq resample )

ASIO setup
output depth: 24bits , 32-bit contains noise and distortion.
output latency: 44.1kHz 8ms 512samples | 44.1kHz 16ms 1024samples
USB-DAC: XMOS driver v5.58 test, SMSL M300SE CS43131, Singxer SDA-2 AK4497EQ
Expensive DAC: GUSTARD USB-DAC (amazon ebay aliexpress only)
Japanese users setup: Singxer SU-2 USB-DDC + HDMI I2C connect + Gustard USB-DAC + TANNOY Hi-End Speaker

Question, “Why do you specify audio product?”

Products from Japan's popular audio manufacturers “SONY,” “TEAC,” and “DENON” are “non-support with ultra-low jitter digital input,” so the digital board was destroyed within 10 seconds after the music was played. "oyraaaaa, You don't choice Japan audio products!"
Damage to the digital board destroys the preamplifier circuitry inside the DAC, which destroys the preamplifier product, which destroys the power amplifier product, which destroys the speaker network, which typically results in $70,000 or more in audio products destruction.
I don't know any troubles report, because You don't send to me with troubles report.

Question, “Do you get any reports of trouble?”
Store “Hi, how can I help you?”
User “No sound, so where is the problem?”
Store “What is your DA Converter?”
User “It's SONY.”
Store “Tired of the sound, did they do something to it?”
User “I tried an audio solution from oryaaaaa”
Store “Well, he is a kind person, but he is surrounded by a family full of ministers of the music industry, so it is better not to say anything”
User “Is this all broken?”
Store “We would like to take everything back and bring it to SONY's audio research department, so in exchange, why don't you try our listening equipment? If they break again, we won't charge you anything.”
User “Okay, then. Then, please do me a favor.”
The store then notifies the customer of the delivery of SOULNOTE's USD200,000 equipment to the customer's site.
User “This is expensive, isn't it?
Store “Why don't you experience the great sound, I'm not going to sell it to you”.
User “If you just want to listen”.
The store's result was a room dedicated to ESOTERIC TANNOY, totaling USD400,000.
Answer, “No”

Realtek audio problem
The Realtek driver is prone to forced termination of the music playback program due to the long CPU occupation time for the PCIE bus transfer process. In reference to detailed setup conditions, conditions using Realtek and ASMedia drivers are invalid; conditions using Intel LAN, Intel WiFi, and Renesas USB drivers are more stable. The reason is that Windows 11 is designed for Intel drivers that use MOVNTI MOVNTQ; Realtek and ASMedia drivers do not use MOVNTI MOVNTQ, so there is a delay in the internal process of caching and transfer errors. In the case of the Gigabyte B760 AORUS ELITE AX, Wi-Fi 6E AX211 (For PCB rev. 1.0) is recommended but you must disable the Realtek 2.5GbE LAN chip and Realtek Audio CODEC. HDMI Audio issues include poor SRC quality and degradation of anti-distortion; Wi-Fi 6E RTL8852CE (For PCB rev. 1.1) don't work for law because the Realtek chip with Bluetooth 5.3 has radio law issues. Whether it can be used for audio applications is proportional to the speed of sound waves. The surface of the diaphragm of a car audio speaker looks rougher the more expensive the product is, but that is for the purpose of sound wave splitting, which is intended to make the sound waves faster. Trying to create fast sound waves requires an audio product with a superior preamplifier circuit. Only men in their thirties and older can understand the speed of sound waves, so women and young men will not understand the above. Symptoms of hearing loss may be cured by conditions “in which the skin of the ear is washed with bath salts containing hydrogen components, which break down the solidified sebum.
#Realtek audio: Behringer DH-100 (Closed type Headphone) is recommend product.

The frequency displayed in the upper right corner is the “estimated lower frequency limit” and should be matched to the frequency response of the speaker.
172.72Hz: TV Speaker, Portable Speaker
86.13Hz: Full range 8cm Speaker System
43.07Hz: Monitor 16cm Speaker System
21.53Hz: Headphone, Hi-Fi Audio Speaker System
10.77Hz: Dance floor (Shadow1-2-3) #Danger
#Uses a setup below 30 Hz need robust underground parking garage needed because loud sound will cause house damage.

Re: Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Posted: Wed Jan 22, 2025 10:44 pm
by oryaaaaa
In calculations using pi, the pi variable is prone to error. Therefore, I used an assembler to set up the variable values and achieve highly accurate pi calculations.

References
https://en.wikipedia.org/wiki/Quadruple ... int_format
double-double computations

Code: Select all

Global a.d, b.i
Procedure GenerateFloatASM(variables.s)
  Debug "Protected "+variables+".d"
  Debug "XOR_Rcx_Rcx"
  Debug "XOR_R8_R8"
  Debug "!INC cl"
  Debug "MOVZX_Rcx"
  Debug "MOVZX_R8"
  !XOR Rax, Rax
  !MOV Rax, [v_a]
  !XOR R8, R8
  !MOV R8, Rax
  !MOV [v_b], R8
  Debug "; "+Bin(b)
  For I=62 To 1 Step -1
    If b&(2<<I)
      Debug "!INC R8b"
      Debug "!SHL R8, cl"
    Else
      Debug "!SHL R8, cl"
    EndIf  
  Next
  If b&2
    Debug "!INC R8b"
    Debug "!SHL R8, cl"
  Else
    Debug "!SHL R8, cl"
  EndIf  
  If b&1
    Debug "!INC R8b"
  Else
    ;   st.s + "0"
  EndIf  
  Debug "!MOVQ xmm5, R8"
  Debug "!MOVSD [p.v_"+variables+"], xmm5"
  Debug "!NOP [Rip]"
  Debug "!NOP [p.v_"+variables+"]"
EndProcedure

;a= 3.1415926535897932384626433832795 : GenerateFloatASM()
Debug "; // 1st 3.141592653"
a = 3.141592653 : GenerateFloatASM("Freq_d1")
Debug "; // 1st 3.141592653 End"
CallDebugger
Debug ";"
Debug "; // 2nd 589793"
a = 0.000000000589793 : GenerateFloatASM("Freq_d2")
Debug "; // 2nd 589793 End"
CallDebugger
; ; ; ; ; ; ; a = 0.589793 / Pow(10, 9) : GenerateFloatASM()
; ; ; ; ; ; ; zero is 9 ko
; ; ; ; ; ; ; Debug "; // 2nd 589793 End"
; ; ; ; ; ; ; CallDebugger
Debug ";"
Debug "; // 3rd 238462"
; ; a = 0.000000000000000238462 : GenerateFloatASM()
;; zero is 15 ko
a = 0.238462 / Pow(10, 15) : GenerateFloatASM("Freq_d3")
Debug "; //  3rd 238462 End"
CallDebugger
Debug ";"
Debug "; // 4th 643383"
; ; a= 0.000000000000000000000643383 : GenerateFloatASM()
; ; zero is 21 ko
a = 0.643383/ Pow(10, 21 ) : GenerateFloatASM ("Freq_d4")
Debug "; // 4th 643383 End"
CallDebugger

End

; Results
; StrD(Freq_d1, 35)
; 3.14159265300000000000000000000000000
; StrD(Freq_d2, 35)
; 0.00000000058979300000000012000000000
; StrD(Freq_d3, 35)
; 0.00000000000000023846200000000002000
; StrD(Freq_d4, 35)
; 0.00000000000000000000064338300000000
; StrD(Freq_d1+Freq_d2, 35)
; 3.14159265358979310000000000000000000
; StrD(Freq_d2+Freq_d3, 35)
; 0.00000000058979323846200008000000000
; StrD(Freq_d3+Freq_d4, 35)
; 0.00000000000000023846264338300002000
In PureBasic, the accuracy of an 80-bit FPU can be achieved by writing on a single line.

Code: Select all

Macro SetCalc
  Sin(Freq_d1 * I + k * Freq_d2 / kfreq + Freq_d2 * I + k * Freq_d1 / kfreq  +  Freq_d3 * I + k * Freq_d4 / kfreq + Freq_d4 * I + k * Freq_d3 / kfreq)/(Freq_d2 * k / kfreq + I * Freq_d1 + Freq_d1 * k / kfreq + I * Freq_d2  + Freq_d4 * k / kfreq + I * Freq_d3 + Freq_d3 * k / kfreq + I * Freq_d4)
EndMacro

PokeD(*sinc_table, SetCalc)
The site that offers high-precision calculation services offers up to three calculations free of charge. Using this method, the results of the calculations can be determined to be correct by agreement. However, in the much-used arithmetic model using GNU C Compiler, the calculation results are different, and the calculation does not use pi. The pi is degraded by the number of arithmetic digits, which renders the definition of pi untenable.

Large Japanese companies that hired students who did not understand this logic lost out to large Chinese companies in terms of technology and were on the verge of bankruptcy. For example, “SHARP,” “TOSHIBA,” “TOYOTA,” “SONY,” ...

In the low-pass filtering process, I cannot investigate the digits of Pi because of U.S.A military pressure to “research only permitted by universities”. At least any sounds is distorted by the pi in ffmpeg's Executables.

Code: Select all

Structure lowpass
  *buffer_in
  Length.i
  Freq_double.d
  ThreadID.i
EndStructure

Procedure lowpass(*param.lowpass)
  Protected *output, size.i, samplerate.d
  *output = *param\buffer_in
  size = *param\Length
  samplerate = *param\Freq_double
  Protected D4.i
  ; p.v_D4 = 4
  BLSR_Rcx_x64
  BLSR_R8_x64
  !INC cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !MOVNTI [p.v_D4], R8
  !NOP [Rip]
  !NOP [p.v_D4]
  
  Protected D8.i
  ; p.v_D8 = 8
  BLSR_Rcx_x64
  BLSR_R8_x64
  !INC cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !MOVNTI [p.v_D8], R8

  Protected D0.i
  ; p.v_D0 = 0
  BLSR_R8_x64
  !MOVNTI [p.v_D0], R8
  !NOP [Rip]
  !NOP [p.v_D0]
  
  Protected D1.i
  ; p.v_D1 = 1
  BLSR_R8_x64
  !INC R8b
  !MOVNTI [p.v_D1], R8
  !NOP [Rip]
  !NOP [p.v_D1]
  ;
  Protected D9801.i
  ; p.v_D9801 = 9801
  !SHL cl, 1
  !SHL cl, 1
  !SHL cl, 1
  !SHL cl, 1
  !SHL cl, 1
  !SHL cl, 1
  !SHL cl, 1
  !SHL cl, 1
  !MOVZX Rcx, cl
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !MOVZX R8, R8b
  !INC cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !MOVNTI [p.v_D9801], R8
  !NOP [Rip]
  !NOP [p.v_D9801]
  
  Protected F_2_0_d.d, F_1_0_d.d
  ; p.v_F_1_0_d = 1.0
  BLSR_Rcx_x64
  BLSR_R8_x64
  !INC cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !MOVQ xmm14, R8
  !MOVSD [p.v_F_1_0_d], xmm14
  !NOP [Rip]
  !NOP [p.v_F_1_0_d]
  ;
  ; p.v_F_2_0_d = 2.0
  BLSR_Rcx_x64
  BLSR_R8_x64
  !INC cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !MOVQ xmm14, R8
  !MOVSD [p.v_F_2_0_d], xmm14
  !NOP [Rip]
  !NOP [p.v_F_2_0_d]
  ;
  Protected in1.d, in2.d, out1.d, out2.d, pos.i
  Protected in3.d, in4.d, out3.d, out4.d, in1pre.d, in3pre.d
  Protected Freq_d1.d, Freq_d2.d, Freq_d3.d, Freq_d4.d
  ; // 1st 3.141592653
  !NOP QWORD [Rip]
  !CRC32 Rcx, QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP cx
  !NOP QWORD [Rip]
  BLSR_Rcx_x64
  !NOP QWORD [Rip]
  !CRC32 R8, QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP R8w
  !NOP QWORD [Rip]
  BLSR_R8_x64
  !INC cl
  MOVZX_Rcx
  MOVZX_R8
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  ;
  !MOVQ xmm5, R8
  !MOVSD [p.v_Freq_d1], xmm5
  !NOP QWORD [Rip]
  !NOP QWORD [p.v_Freq_d1]
  ; // 1st 3.141592653 End
  ;
  ; // 2nd 589793
  !NOP QWORD [Rip]
  !CRC32 Rcx, QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP cx
  !NOP QWORD [Rip]
  BLSR_Rcx_x64
  !NOP QWORD [Rip]
  !CRC32 R9, QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP R9w
  !NOP QWORD [Rip]
  BLSR_R9_x64
  !INC cl
  MOVZX_Rcx
  MOVZX_R9
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !MOVQ xmm5, R9
  !MOVSD [p.v_Freq_d2], xmm5
  !NOP QWORD [Rip]
  !NOP QWORD [p.v_Freq_d2]
  ; // 2nd 589793 End
  ;
  ; // 3rd 238462
  !NOP QWORD [Rip]
  !CRC32 Rcx, QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP cx
  !NOP QWORD [Rip]
  BLSR_Rcx_x64
  !NOP QWORD [Rip]
  !CRC32 R8, QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP R8w
  !NOP QWORD [Rip]
  BLSR_R8_x64
  !INC cl
  MOVZX_Rcx
  MOVZX_R8
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !SHL R8, cl
  !INC R8b
  !MOVQ xmm5, R8
  !MOVSD [p.v_Freq_d3], xmm5
  !NOP QWORD [Rip]
  !NOP QWORD [p.v_Freq_d3]
  ; //  3rd 238462 End
  ;
  ; // 4th 643383
  !NOP QWORD [Rip]
  !CRC32 Rcx, QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP cx
  !NOP QWORD [Rip]
  BLSR_Rcx_x64
  !NOP QWORD [Rip]
  !CRC32 R9, QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP R9w
  !NOP QWORD [Rip]
  BLSR_R9_x64
  !INC cl
  MOVZX_Rcx
  MOVZX_R9
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !SHL R9, cl
  !SHL R9, cl
  !INC R9b
  !SHL R9, cl
  !INC R9b
  !MOVQ xmm5, R9
  !MOVSD [p.v_Freq_d4], xmm5
  !NOP QWORD [Rip]
  !NOP QWORD [p.v_Freq_d4]
  ; // 4th 643383 End
  
  Macro saorya
    F_2_0_d * Freq_d1 * D9801 / samplerate + F_2_0_d * Freq_d2 * D9801 / samplerate + F_2_0_d * Freq_d3 * D9801 / samplerate + F_2_0_d * Freq_d4 * D9801 / samplerate
  EndMacro
  
  Protected LPFcalcA.d, LPFcalcB.d, LPFcalcD.d, LPFcalcE.d
  LPFcalcA = ((F_1_0_d - Cos(saorya)) / F_2_0_d)/(F_1_0_d + Sin(saorya) / (F_2_0_d * Log10(D8)))
  LPFcalcB = (F_1_0_d - Cos(saorya))/(F_1_0_d + Sin(saorya) / (F_2_0_d * Log10(D8)))
  LPFcalcD = ( -F_2_0_d * Cos(saorya))/(F_1_0_d + Sin(saorya) / (F_2_0_d * Log10(D8)))
  LPFcalcE = (F_1_0_d - Sin(saorya) / (F_2_0_d * Log10(D8)))/(F_1_0_d + Sin(saorya) / (F_2_0_d * Log10(D8)))
  
  For pos=D0 To size-D1 Step 8
    in1pre = PeekF(*output+pos)
    PokeF(*output+pos, LPFcalcA * PeekF(*output+pos)+ LPFcalcB * in1 + LPFcalcA * in2 - LPFcalcD * out1 - LPFcalcE * out2)
    Swap in1, in2
    in1 = in1pre
    Swap out1, out2
    out1 = PeekF(*output+pos)
    
    in3pre = PeekF(*output+pos+D4)
    PokeF(*output+pos+D4, LPFcalcA * PeekF(*output+pos+D4)+ LPFcalcB * in3 + LPFcalcA *in4 - LPFcalcD * out3 - LPFcalcE * out4)
    Swap in3, in4
    in3 = in3pre
    Swap out3, out4
    out3 = PeekF(*output+pos+D4)
    
    !NOP QWORD [Rip]
    !NOP QWORD [Rip]
  Next
EndProcedure

Protected lowpassVal.lowpass
InitializeStructure(@lowpassVal, lowpass)
lowpassVal\buffer_in = *SoundBuffer
lowpassVal\Length = SoundLength
lowpassVal\Freq_double = 176400 ; data frequency 44100 88200
lowpass(@lowpassVal)
Processing music data with high-precision PI made music studio re-editing data impossible.
"oryaaaaa, You just it's OK."

Re: Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Posted: Thu Jan 23, 2025 10:01 pm
by oryaaaaa
EL RS RW is very difficult codeviewing.
PureBasic - Examples Advance - PureAudioCDPlayer.pb , Get clipboard text ALL area.
and This code run.

Code: Select all

Global NewList valStr.s()
Global NewList INC_SHL.s()
Global NewList Output.s()

Procedure GenerateWordASM(val.s, a_d.s)
  Protected chk.i, b.i, a.i, I.i
  a = Val(a_d)
  AddElement(INC_SHL()) : INC_SHL() =  "; "+val+" = "+Str(a)
  AddElement(INC_SHL()) : INC_SHL() =  "BLSR_Rcx_x64"
  AddElement(INC_SHL()) : INC_SHL() =  "BLSR_R8_x64"
  AddElement(INC_SHL()) : INC_SHL() =  "!INC cl"
  ; !XOR Rax, Rax
  ; !MOV Eax, [v_a]
  ; CallDebugger
  !XOR Rax, Rax
  !MOV Rax, [p.v_a]
  !XOR R8, R8
  !MOV R8, Rax
  !MOV [p.v_b], R8
  For I=63 To 1 Step -1
    If b&(2<<I)
      chk+1
      AddElement(INC_SHL()) : INC_SHL() =  "!INC R8b"
      AddElement(INC_SHL()) : INC_SHL() =  "!SHL R8, cl"
    ElseIf chk
      AddElement(INC_SHL()) : INC_SHL() =  "!SHL R8, cl"
    EndIf  
  Next
  If b&2
    AddElement(INC_SHL()) : INC_SHL() =  "!INC R8b"
    AddElement(INC_SHL()) : INC_SHL() =  "!SHL R8, cl"
  Else
    AddElement(INC_SHL()) : INC_SHL() =  "!SHL R8, cl"
  EndIf  
  If b&1
    AddElement(INC_SHL()) : INC_SHL() =  "!INC R8b"
  Else
    ;   st.s + "0"
  EndIf  
  AddElement(INC_SHL()) : INC_SHL() =  "!MOVNTI ["+val+"], R8"
  AddElement(INC_SHL()) : INC_SHL() =  "!NOP [Rip]"
  AddElement(INC_SHL()) : INC_SHL() =  "!NOP ["+val+"]"
  AddElement(INC_SHL()) : INC_SHL() =  ";"
  AddElement(valStr()) : valStr() = RemoveString(val, "p.v_")+".i"
EndProcedure

Procedure GenerateDoubleASM(val.s, a_d.s)
  Protected chk.i, b.i, I.i
  Protected a_dd.d = ValD(a_d)
  Protected v_val.s = "; "+val+" = "+a_d
  AddElement(INC_SHL()) : INC_SHL() =  v_val
  AddElement(INC_SHL()) : INC_SHL() =  "BLSR_Rcx_x64"
  AddElement(INC_SHL()) : INC_SHL() =  "BLSR_R8_x64"
  AddElement(INC_SHL()) : INC_SHL() =  "!INC cl"
  ; !XOR Rax, Rax
  ; !MOV Eax, [v_a]
  ; CallDebugger
  !XOR Rax, Rax
  !MOV Rax, [p.v_a_dd]
  !XOR R8, R8
  !MOV R8, Rax
  !MOV [p.v_b], R8
  For I=63 To 1 Step -1
    If b&(2<<I)
      chk+1
      AddElement(INC_SHL()) : INC_SHL() =  "!INC R8b"
      AddElement(INC_SHL()) : INC_SHL() =  "!SHL R8, cl"
    ElseIf chk
      AddElement(INC_SHL()) : INC_SHL() =  "!SHL R8, cl"
    EndIf  
  Next
  If b&2
    AddElement(INC_SHL()) : INC_SHL() =  "!INC R8b"
    AddElement(INC_SHL()) : INC_SHL() =  "!SHL R8, cl"
  Else
    AddElement(INC_SHL()) : INC_SHL() =  "!SHL R8, cl"
  EndIf  
  If b&1
    AddElement(INC_SHL()) : INC_SHL() =  "!INC R8b"
  Else
    ;   st.s + "0"
  EndIf  
  AddElement(INC_SHL()) : INC_SHL() =  "!MOVQ xmm14, R8"
  AddElement(INC_SHL()) : INC_SHL() =  "!MOVSD ["+val+"], xmm14"
  AddElement(INC_SHL()) : INC_SHL() =  "!NOP [Rip]"
  AddElement(INC_SHL()) : INC_SHL() =  "!NOP ["+val+"]"
  AddElement(INC_SHL()) : INC_SHL() =  ";"
  If Right(val, 2)="_d"
    AddElement(valStr()) : valStr() = RemoveString(val, "p.v_")+".d"
  Else
    AddElement(valStr()) : valStr() = RemoveString(val, "p.v_")+".i"
  EndIf
EndProcedure


; a = #PB_Gadget_BackColor : GenerateWordASM_debug("p.v_C_PB_Gadget_BackColor")
;  
; End

Global NewList Num.s()
Global buf.s, buf_count.i, buf_pos.i, buf_pos2.i, buf_original.s, buf_mid.s
Global hex_pos.i, hex_mid.s, hex_results.s, hex_lists.i, hex_float.i

buf = GetClipboardText()
; buf = "fnt3 = LoadFont(#PB_Any, systemfontname, Round(12*ScreenDpi, #PB_Round_Down))"+Chr(13)+Chr(10)
buf_count = CountString(buf, Chr(13)+Chr(10))
For buf_pos=1 To buf_count
  buf_original = StringField(buf, buf_pos, Chr(13)+Chr(10))
  For buf_pos2=0 To Len(buf_original)
    buf_mid = Mid(buf_original, buf_pos2, 1)
    Select buf_mid
      Case ";"
        Break
      Case Chr(34)
        hex_results = buf_mid
        hex_pos = buf_pos2 +1
        Hex_Search_C34:
        hex_mid = Mid(buf_original, hex_pos, 1)
        If hex_mid<>Chr(34)
          hex_results + hex_mid
          hex_pos+1
          Goto Hex_Search_C34:
        EndIf
        buf_pos2 = hex_pos + 1
        
      Case "$"
        hex_results = buf_mid
        hex_pos = buf_pos2 +1
        Hex_Search1:
        hex_mid = Mid(buf_original, hex_pos, 1)
        Select UCase(hex_mid)
          Case "0","1","2","3","4","5","6","7","8","9", "A", "B", "C", "D", "E", "F"
            hex_results + hex_mid
            hex_pos+1
            Goto Hex_Search1
          Default
            hex_lists = 0
            ForEach num()
              If num()=hex_results
                hex_lists +1
              EndIf
            Next
            If hex_lists=0
              AddElement(Num())
              Num() = hex_results
            EndIf
        EndSelect
        buf_pos2 = hex_pos
        
      Case "#"
        If UCase(Left(Mid(buf_original, buf_pos2+1), 3))="PB_" Or UCase(Left(Mid(buf_original, buf_pos2+1), 4))="GWL_" Or UCase(Left(Mid(buf_original, buf_pos2+1), 3))="WS_" Or UCase(Left(Mid(buf_original, buf_pos2+1), 4))="SWP_"Or UCase(Left(Mid(buf_original, buf_pos2+1), 3))="WM_" Or UCase(Left(Mid(buf_original, buf_pos2+1), 2))="TV"
          hex_results = buf_mid
          hex_pos = buf_pos2 +1
          Hex_Search2:
          If Len(buf_original)=>hex_pos
            hex_mid = Mid(buf_original, hex_pos, 1)
            Select hex_mid
              Case ","," ",")","=",":","|"
                hex_lists = 0
                ForEach num()
                  If num()=hex_results
                    hex_lists +1
                  EndIf
                Next
                If hex_lists=0
                  AddElement(Num())
                  Num() = hex_results
                EndIf
              Default
                hex_results + hex_mid
                hex_pos+1
                Goto Hex_Search2
            EndSelect
          Else
            hex_lists = 0
            ForEach num()
              If num()=hex_results
                hex_lists +1
              EndIf
            Next
            If hex_lists=0
              AddElement(Num())
              Num() = hex_results
            EndIf            
          EndIf
          buf_pos2 = hex_pos
        ElseIf UCase(Left(Mid(buf_original, buf_pos2), 5))="#TRUE"
          hex_lists = 0
          hex_results = "#True"
          ForEach num()
            If num()=hex_results
              hex_lists +1
            EndIf
          Next
          If hex_lists=0
            AddElement(Num())
            Num() = hex_results
          EndIf
        ElseIf UCase(Left(Mid(buf_original, buf_pos2), 6))="#FALSE"
          hex_lists = 0
          hex_results = "#False"
          ForEach num()
            If num()=hex_results
              hex_lists +1
            EndIf
          Next
          If hex_lists=0
            AddElement(Num())
            Num() = hex_results
          EndIf
        EndIf
        
      Case "0","1","2","3","4","5","6","7","8","9"
        hex_results = buf_mid
        hex_pos = buf_pos2 +1
        hex_float = 0
        Hex_Search3:
        hex_mid = Mid(buf_original, hex_pos, 1)
        Select hex_mid
          Case "0","1","2","3","4","5","6","7","8","9"
            hex_results + hex_mid
            hex_pos+1
            Goto Hex_Search3
          Case "."
            hex_float = 1
            hex_results + hex_mid
            hex_pos+1
            Goto Hex_Search3
          Case "i", "d" , "b" , "s" , "f" , "l"
            Goto Hex_Search3_End
          Default
            Select Mid(buf_original, buf_pos2-1, 1)
              Case "(", " ", "=", ":", "," , ">" , "<" , "+", "*", "-", "/", "%", "_"
              Default
                Goto Hex_Search3_End
            EndSelect
            If hex_float = 1
              hex_lists = 0
              ForEach num()
                If num()="F"+hex_results
                  hex_lists +1
                EndIf
              Next
              If hex_lists=0
                AddElement(Num())
                Num() = "F"+hex_results
              EndIf
            Else
              hex_lists = 0
              ForEach num()
                If num()="D"+hex_results
                  hex_lists +1
                EndIf
              Next
              If hex_lists=0
                AddElement(Num())
                Num() = "D"+hex_results
              EndIf
            EndIf
        EndSelect
        Hex_Search3_End:
        buf_pos2 = hex_pos
      Default
    EndSelect
  Next
Next

SortList(num(), #PB_Sort_Descending )
ForEach num()
  If Left(num(), 1)="#"
    AddElement(Output())
    Output() = "a = #"+ Mid(num(), 2) + " : GenerateWordASM_debug("+Chr(34)+"p.v_C_"+Mid(num(), 2)+Chr(34)+")"
    AddElement(valStr()) : valStr() = "C_"+Mid(num(), 2)+".i"
  ElseIf Left(num(), 1)="$"
    GenerateWordASM("p.v_H_"+Mid(num(), 2), "$"+Mid(num(), 2))
  ElseIf Left(num(), 1)="F"
    GenerateDoubleASM("p.v_F_"+ReplaceString(Mid(num(), 2), ".", "_")+"_d",   Mid(num(), 2))
  Else
    GenerateWordASM("p.v_D"+Mid(num(), 2), Mid(num(), 2))
  EndIf
Next
Debug ""
Debug "Macro Macro_"
Global NewList OutputBuf.s()
debug_str.s = "Protected "
ForEach valStr()
  If Len(debug_str)>60
    AddElement(OutputBuf()) : OutputBuf() = debug_str + valStr()
    debug_str.s = "Protected "
  Else
    debug_str + valStr() + ", "
  EndIf
Next
If debug_str <> "Protected "
  AddElement(OutputBuf()) : OutputBuf() = Left(debug_str, Len(debug_str)-2)
EndIf
AddElement(OutputBuf()) : OutputBuf() = ";"
ForEach INC_SHL()
  AddElement(OutputBuf()) : OutputBuf() = INC_SHL()
Next
ForEach OutputBuf()
  Debug OutputBuf()
Next
Debug "EndMacro"
CallDebugger
FileNo.i = ReadFile(#PB_Any, "Integer32_INC_SHL_LoadClipText_ReCakc_.pb")
While Eof(FileNo)=0
  ReadStringFormat(FileNo)
  Debug ReadString(FileNo, #PB_Ascii)
Wend
ForEach Output()
  Debug Output()
Next
CallDebugger
next 1st calldebugger and Debug output Copy all

Code: Select all

Macro Macro_
Protected D90.i, D80.i, D60.i, D470.i, D440.i, D410.i, D400.i, D340.i
Protected D30.i, D280.i, D270.i, D25.i, D240.i, D210.i, D20.i, D2.i
Protected D190.i, D180.i, D170.i, D160.i, D150.i, D130.i, D100.i, D10.i
Protected D1.i, D0.i, C_True.i, C_PB_Window_SystemMenu.i, C_PB_Window_ScreenCentered.i, C_PB_Text_Right.i
Protected C_PB_Event_Timer.i, C_PB_Event_Gadget.i, C_PB_Event_CloseWindow.i, C_PB_Button_Toggle.i
Protected C_False.i
;
; p.v_D90 = 90
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D90], R8
!NOP [Rip]
!NOP [p.v_D90]
;
; p.v_D80 = 80
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D80], R8
!NOP [Rip]
!NOP [p.v_D80]
;
; p.v_D60 = 60
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D60], R8
!NOP [Rip]
!NOP [p.v_D60]
;
; p.v_D470 = 470
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D470], R8
!NOP [Rip]
!NOP [p.v_D470]
;
; p.v_D440 = 440
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D440], R8
!NOP [Rip]
!NOP [p.v_D440]
;
; p.v_D410 = 410
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D410], R8
!NOP [Rip]
!NOP [p.v_D410]
;
; p.v_D400 = 400
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D400], R8
!NOP [Rip]
!NOP [p.v_D400]
;
; p.v_D340 = 340
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D340], R8
!NOP [Rip]
!NOP [p.v_D340]
;
; p.v_D30 = 30
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D30], R8
!NOP [Rip]
!NOP [p.v_D30]
;
; p.v_D280 = 280
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D280], R8
!NOP [Rip]
!NOP [p.v_D280]
;
; p.v_D270 = 270
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D270], R8
!NOP [Rip]
!NOP [p.v_D270]
;
; p.v_D25 = 25
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!MOVNTI [p.v_D25], R8
!NOP [Rip]
!NOP [p.v_D25]
;
; p.v_D240 = 240
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D240], R8
!NOP [Rip]
!NOP [p.v_D240]
;
; p.v_D210 = 210
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D210], R8
!NOP [Rip]
!NOP [p.v_D210]
;
; p.v_D20 = 20
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D20], R8
!NOP [Rip]
!NOP [p.v_D20]
;
; p.v_D2 = 2
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D2], R8
!NOP [Rip]
!NOP [p.v_D2]
;
; p.v_D190 = 190
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D190], R8
!NOP [Rip]
!NOP [p.v_D190]
;
; p.v_D180 = 180
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D180], R8
!NOP [Rip]
!NOP [p.v_D180]
;
; p.v_D170 = 170
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D170], R8
!NOP [Rip]
!NOP [p.v_D170]
;
; p.v_D160 = 160
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D160], R8
!NOP [Rip]
!NOP [p.v_D160]
;
; p.v_D150 = 150
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D150], R8
!NOP [Rip]
!NOP [p.v_D150]
;
; p.v_D130 = 130
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D130], R8
!NOP [Rip]
!NOP [p.v_D130]
;
; p.v_D100 = 100
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D100], R8
!NOP [Rip]
!NOP [p.v_D100]
;
; p.v_D10 = 10
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_D10], R8
!NOP [Rip]
!NOP [p.v_D10]
;
; p.v_D1 = 1
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!SHL R8, cl
!INC R8b
!MOVNTI [p.v_D1], R8
!NOP [Rip]
!NOP [p.v_D1]
;
; p.v_D0 = 0
BLSR_Rcx_x64
BLSR_R8_x64
!INC cl
!SHL R8, cl
!MOVNTI [p.v_D0], R8
!NOP [Rip]
!NOP [p.v_D0]
;
EndMacro
Debug output Clear
next 2nd calldebugger and Debug output Copy all

Code: Select all

Global a.i
Global b.i
Procedure GenerateWordASM_debug(val.s)
  Protected chk.i
  Debug "; "+val+" = "+Str(a)
  Debug "XOR_Rcx_Rcx"
  Debug "XOR_R8_R8"
  Debug "!INC cl"
  ; !XOR Rax, Rax
  ; !MOV Eax, [v_a]
  ; CallDebugger
  !XOR Rax, Rax
  !MOV Rax, [v_a]
  !XOR R8, R8
  !MOV R8, Rax
  !MOV [v_b], R8
  For I=63 To 1 Step -1
    If b&(2<<I)
      chk+1
      Debug "!INC R8b"
      Debug "!SHL R8, cl"
    ElseIf chk
      Debug "!SHL R8, cl"
    EndIf  
  Next
  If b&2
    Debug "!INC R8b"
    Debug "!SHL R8, cl"
  Else
    Debug "!SHL R8, cl"
  EndIf  
  If b&1
    Debug "!INC R8b"
  Else
    ;   st.s + "0"
  EndIf  
  Debug "!MOVNTI ["+val+"], R8"
  Debug "!NOP [Rip]"
  Debug "!NOP ["+val+"]"
  Debug ";"
EndProcedure

Global a_d.d
Procedure GenerateDoubleASM_debug(val.s)
  Protected chk.i
  Debug "; "+val+" = "+StrD(a_d,3)
  Debug "XOR_Rcx_Rcx"
  Debug "XOR_R8_R8"
  Debug "!INC cl"
  ; !XOR Rax, Rax
  ; !MOV Eax, [v_a]
  ; CallDebugger
  !XOR Rax, Rax
  !MOV Rax, [v_a_d]
  !XOR R8, R8
  !MOV R8, Rax
  !MOV [v_b], R8
  For I=63 To 1 Step -1
    If b&(2<<I)
      chk+1
      Debug "!INC R8b"
      Debug "!SHL R8, cl"
    ElseIf chk
      Debug "!SHL R8, cl"
    EndIf  
  Next
  If b&2
    Debug "!INC R8b"
    Debug "!SHL R8, cl"
  Else
    Debug "!SHL R8, cl"
  EndIf  
  If b&1
    Debug "!INC R8b"
  Else
    ;   st.s + "0"
  EndIf  
  Debug "!MOVQ xmm14, R8"
  Debug "!MOVSD ["+val+"], xmm14"
  Debug "!NOP [Rip]"
  Debug "!NOP ["+val+"]"
  Debug ";"
EndProcedure
; IDE Options = PureBasic 5.73 LTS (Windows - x64)
; CursorPosition = 82
; FirstLine = 20
; Folding = -
; EnableXP
a = #True : GenerateWordASM_debug("p.v_C_True")
a = #PB_Window_SystemMenu : GenerateWordASM_debug("p.v_C_PB_Window_SystemMenu")
a = #PB_Window_ScreenCentered : GenerateWordASM_debug("p.v_C_PB_Window_ScreenCentered")
a = #PB_Text_Right : GenerateWordASM_debug("p.v_C_PB_Text_Right")
a = #PB_Event_Timer : GenerateWordASM_debug("p.v_C_PB_Event_Timer")
a = #PB_Event_Gadget : GenerateWordASM_debug("p.v_C_PB_Event_Gadget")
a = #PB_Event_CloseWindow : GenerateWordASM_debug("p.v_C_PB_Event_CloseWindow")
a = #PB_Button_Toggle : GenerateWordASM_debug("p.v_C_PB_Button_Toggle")
a = #False : GenerateWordASM_debug("p.v_C_False")
and run

Code: Select all

; p.v_C_True = 1
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!SHL R8, cl
!INC R8b
!MOVNTI [p.v_C_True], R8
!NOP [Rip]
!NOP [p.v_C_True]
;
; p.v_C_PB_Window_SystemMenu = 13107200
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_C_PB_Window_SystemMenu], R8
!NOP [Rip]
!NOP [p.v_C_PB_Window_SystemMenu]
;
; p.v_C_PB_Window_ScreenCentered = 1
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!SHL R8, cl
!INC R8b
!MOVNTI [p.v_C_PB_Window_ScreenCentered], R8
!NOP [Rip]
!NOP [p.v_C_PB_Window_ScreenCentered]
;
; p.v_C_PB_Text_Right = 2
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_C_PB_Text_Right], R8
!NOP [Rip]
!NOP [p.v_C_PB_Text_Right]
;
; p.v_C_PB_Event_Timer = 13110
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI [p.v_C_PB_Event_Timer], R8
!NOP [Rip]
!NOP [p.v_C_PB_Event_Timer]
;
; p.v_C_PB_Event_Gadget = 13100
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_C_PB_Event_Gadget], R8
!NOP [Rip]
!NOP [p.v_C_PB_Event_Gadget]
;
; p.v_C_PB_Event_CloseWindow = 13116
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_C_PB_Event_CloseWindow], R8
!NOP [Rip]
!NOP [p.v_C_PB_Event_CloseWindow]
;
; p.v_C_PB_Button_Toggle = 4099
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!MOVNTI [p.v_C_PB_Button_Toggle], R8
!NOP [Rip]
!NOP [p.v_C_PB_Button_Toggle]
;
; p.v_C_False = 0
XOR_Rcx_Rcx
XOR_R8_R8
!INC cl
!SHL R8, cl
!MOVNTI [p.v_C_False], R8
!NOP [Rip]
!NOP [p.v_C_False]
;
Although this appears to be a cumbersome obfuscation, setting up constants and variables using numbers is prone to arithmetic errors. So the execution reliability is increased by using the CPU's electronic bit reference rather than the SSD on which the program was executed. Since this process was adopted in the CometLake generation, the RapterLake generation changed the register initialization method from XOR to BLSR x64.

Code: Select all

; examples for games
!MOVNTI QWORD [p.v_C_False], R8
!NOP QWORD [Rip]
!NOP QWORD [p.v_C_False]
; Last code # for CPU power break down Protection
!NOP QWORD [Rip]
!NOP QWORD [Rip]

; after WindowEvent() or WaitWindowEvent()
!NOP QWORD [Rip]
!NOP QWORD [p.v_C_False]
!NOP QWORD [Rip]
!NOP QWORD [Rip]

Re: Nontallion, Saverage, Cruse RS EL RW and AAcFlac176[Windows]

Posted: Sat Jan 25, 2025 6:02 am
by oryaaaaa
The toughest part of developing music playback software is getting the music industry bosses to trust you. I can make it all in PureBasic, but when you release it to the world via the Internet, it won't work minutes after you release it. There are only a limited number of music-related libraries that the music industry bosses trust, and if I don't build it with them, it won't work.

Software related to the music industry can earn more than $100 million, and if it is not trusted on the principle of free distribution, killers will appear after a while. Even if it is explained that Japan is safer than the U.S. or the U.K., car doors are coated with “muscle relaxants” that make it impossible to hit the brakes. That is not all. A “hallucinogenic drug” was used on automobile engines, and via the air filters, the interior of the cars became a tragedy of paranoia.

So until they are credited with it, they have to put up with the status of “mentally handicapped” to make it. This treatment will not change even if they are informed that the product is being used in a high-end audio exhibition in Germany. I cannot return to “normal” status until I reach a state of complete musical expression. The bosses of the music industry can say “well done” after more than 10 years of maintaining an annual income of zero yen, even though they are working the same as working from 4 to 8 hours every day.

Still, “mentally disabled” would be an easier condition to complete than “killed”. Because if cruise missiles are flying in from foreign countries, if robotic weapons are used, and if unbelievably large scale fires occur because of it, normal developers would declare a halt. I have also declared more than 100 times to stop development so far. However, within a month after I call off development, my bosses in the music industry say, “You are still in the middle of the process, make sure you get it right! they will say.

Even though we call it an ultra-low noise digital output, this only reproduces the Pentium3 status, so we can only say that we are trying our best to return to the quality of the past. Still, I found at least seven more vulnerabilities in Intel CPUs. In the U.S., you can get a huge reward for reporting vulnerabilities, but in Japan, Intel does not accept reports unless are a large corporate entity. So the only way to report a vulnerability is to disclose it to the world for free on my “home page”.

(1) If the regulator voltage is set for each core, many arithmetic operations fail or breaks.
(2) Breaks when memory was repeatedly read into general-purpose registers by extended instructions.
(3) Fixed: Insufficient memory read burn-in and frequent arithmetic failures during CPU manufacturing.
(4) Fixed: Production of Broadwell discontinued and replaced with Skylake due to countermeasure (1).
(5) Fixed: Broken when loop processing of extended instructions is executed and NOP Rsp is included.
(6) News faked: Improper microcode in CPU instruction cache breaks in 5 seconds
(7) Fixed: Release of proper processing method for CPU instruction cache, limit-breaking technology
(8) RDSEED value is cached in CPU cache and encryption process is decipherable
(9) Fixed: Improper DRAM design, prone to PCIE bus x1 corruption

There are more, but none of them will solve the problems of semiconductors in the world unless too look at my website there, as SCREEN, where I used to work, has a semiconductor research division. The reason why they don't want to look at it is simple: they are mentally handicapped and are behind due to discrimination that they are not graduates of the University of Tokyo or Kyoto University. This was recently successfully communicated to the problem when I explained directly to a professor at the University of Tokyo that transients were generating high-frequency noise outside the measurement range about the motor control of electric cars, and that this was causing headaches in hybrid cars due to the high frequency noise every time the engine was restarted.

This is how it is, so if you don't change your treatment, the vulnerability report will be left alone. Still, if I persevered, music industry bosses from all over the world seemed to come to me and vouch for me, but the next problem that arose was “I can't play with my girlfriend". Something like, “Since you are representing Japan, you should take it seriously as if you are 10th in the line of succession to the throne,” due to pleas from the highest authority, I have been income-less, unmarried, and heart-less.

Question: Can you programming FLAC upsampling by Purebasic only?
Answer: No.


Today, I research this questions.
Result, I don't understand FLAC__StreamDecoderWriteCallback codes.
*buffer is memory address? I think FLAC.DLL variables maps.

Code: Select all

Prototype.i FLAC__stream_decoder_new()
Prototype.i FLAC__stream_decoder_init_file(*decoder, *filename, *write_callback, *metadata_callback, *error_callback, *client_data)
Prototype.i FLAC__stream_decoder_finish(*decoder)
Prototype.i FLAC__stream_decoder_process_until_end_of_stream(*decoder)

Global *PlayData, PlaySize.i
*PlayData = AllocateMemory(512000000)

Procedure FLAC__StreamDecoderWriteCallback(*decoder, *frame, *buffer, *client_data)
  Protected FLAC_decode_Pos.i, FLAC_decode_PosA.i, FLAC_decode_PosB.i
  Protected *bufferD1 = *PlayData
  Protected *bufferD2 = *buffer

  FLAC_decode_PosA = 0
  FLAC_decode_PosB = 0
  For FLAC_decode_Pos=0 To PeekL(*frame)
    ; INT32 to INT 16
    PokeW(*bufferD1+PlaySize+FLAC_decode_PosB, PeekL(*bufferD2+FLAC_decode_PosA))
    FLAC_decode_PosB + 2 : FLAC_decode_PosA + 4
  Next

  PlaySize + FLAC_decode_PosB

  ProcedureReturn 0 ; #FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE
EndProcedure

Procedure FLAC__StreamDecoderErrorCallback(*decoder, Status.l, *cliend_data)
EndProcedure

Procedure FLAC_ReadData_Process(Filename.s)
  Shared FLAC__stream_decoder_new.FLAC__stream_decoder_new
  Shared FLAC__stream_decoder_init_file.FLAC__stream_decoder_init_file
  Shared FLAC__stream_decoder_finish.FLAC__stream_decoder_finish
  Shared FLAC__stream_decoder_process_until_end_of_stream.FLAC__stream_decoder_process_until_end_of_stream
  If OpenLibrary(0, "libFLAC.dll")
    FLAC__stream_decoder_new.FLAC__stream_decoder_new = GetFunction(0, "FLAC__stream_decoder_new")
    FLAC__stream_decoder_init_file.FLAC__stream_decoder_init_file = GetFunction(0, "FLAC__stream_decoder_init_file")
    FLAC__stream_decoder_finish.FLAC__stream_decoder_finish = GetFunction(0, "FLAC__stream_decoder_finish")
    FLAC__stream_decoder_process_until_end_of_stream.FLAC__stream_decoder_process_until_end_of_stream =  GetFunction(0, "FLAC__stream_decoder_process_until_end_of_stream")
  EndIf

  Protected *FLAC_Adecoder, FLAC_fileID.i, FLAC_Res.i
  *FLAC_Adecoder = FLAC__stream_decoder_new()
  If *FLAC_Adecoder
    FLAC_Res = FLAC__stream_decoder_init_file(*FLAC_Adecoder, UTF8(Filename), @FLAC__StreamDecoderWriteCallback(), 0, @FLAC__StreamDecoderErrorCallback(), *void )
    Select FLAC_Res
      Case  0 ; #FLAC__STREAM_DECODER_INIT_STATUS_OK
        Debug "OK"
      Case  1 ; #FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER
        Debug "CONTAINER"
      Case  2 ; #FLAC__STREAM_DECODER_INIT_STATUS_INVALID_CALLBACKS
        Debug "CALLBACK"
      Case  3 ; #FLAC__STREAM_DECODER_INIT_STATUS_MEMORY_ALLOCATION_ERROR
        Debug "MEMORY"
      Case  4 ; #FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE
        Debug "FILE"
      Case  5 ; #FLAC__STREAM_DECODER_INIT_STATUS_ALREADY_INITIALIZED
        Debug "ALREADY"
    EndSelect
    FLAC__stream_decoder_process_until_end_of_stream(*FLAC_Adecoder)
    FLAC__stream_decoder_finish(*FLAC_Adecoder)
  EndIf
EndProcedure

FLAC_ReadData_Process("test.flac")

End
and I Try.

Code: Select all

Global *PlayData, PlaySize.i, FlacFileName.s
FlacFileName = "test.flac"
*PlayData = AllocateMemory(FileSize(FlacFileName)*4+(FileSize(FlacFileName)*4)%16384)
*PlayDataTemp = AllocateMemory(FileSize(FlacFileName)*4+(FileSize(FlacFileName)*4)%16384)

Global FlacExe.i, FlacSize
FlacExe = RunProgram("flac-1.4.3-win\Win64\flac.exe", "-d -c "+Chr(34)+FlacFileName+Chr(34), "", #PB_Program_Open | #PB_Program_Read)
    While ProgramRunning(FlacExe)
      FlacSize = AvailableProgramOutput(FlacExe)
      If FlacSize
        ReadProgramData(FlacExe, *PlayData+PlaySize, FlacSize)
        PlaySize + FlacSize
      EndIf
    Wend
CloseProgram(FlacExe)

If InitSound() = 0
  MessageRequester("Error", "Sound system is not available",  0)
  End
EndIf

If CatchSound(5, *PlayData, PlaySize)
  SetSoundFrequency(5, 44100)
  PlaySound(5)
  Repeat
    Delay(1)
  Until SoundStatus(5) = #PB_Sound_Stopped
  StopSound(5)
Else
  Debug "ERROR"
EndIf

End
Then, I used BASS SDK for PureBasic.
Thank you.

Question: Are you know new Windows OS problems?
Answer: Yes.


In repeated experiments with the CPU instruction cache, I found that the cache process does not distinguish between the kernel processing program and the user processing program. As a very simple experiment, I created an instruction cache process for a precision timer instruction that does not execute as user processing, but is executed by kernel processing.

Action games will improve Display fps

Code: Select all

!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [QueryPerformanceCounter]
!NOP QWORD [QueryPerformanceCounter+8]
!NOP QWORD [QueryPerformanceCounter+16]
!NOP QWORD [QueryPerformanceCounter+24]
!NOP QWORD [QueryPerformanceCounter+32]
!NOP QWORD [QueryPerformanceCounter+40]
!NOP QWORD [QueryPerformanceCounter+48]
!NOP QWORD [QueryPerformanceCounter+56]
!NOP QWORD [QueryPerformanceCounter+64]
!NOP QWORD [QueryPerformanceCounter+72]
!NOP QWORD [QueryPerformanceCounter+80]
!NOP QWORD [QueryPerformanceCounter+88]
!NOP QWORD [QueryPerformanceCounter+96]
!NOP QWORD [QueryPerformanceCounter+104]
!NOP QWORD [QueryPerformanceCounter+112]
!NOP QWORD [QueryPerformanceCounter+120]
!NOP QWORD [QueryPerformanceCounter+128]
!NOP QWORD [QueryPerformanceCounter+136]
!NOP QWORD [QueryPerformanceCounter+144]
!NOP QWORD [QueryPerformanceCounter+152]
!NOP QWORD [QueryPerformanceCounter+160]
!NOP QWORD [QueryPerformanceCounter+168]
!NOP QWORD [QueryPerformanceCounter+176]
!NOP QWORD [QueryPerformanceCounter+184]
!NOP QWORD [QueryPerformanceCounter+192]
!NOP QWORD [QueryPerformanceCounter+200]
!NOP QWORD [QueryPerformanceCounter+208]
!NOP QWORD [QueryPerformanceCounter+216]
!NOP QWORD [QueryPerformanceCounter+224]
!NOP QWORD [QueryPerformanceCounter+232]
!NOP QWORD [QueryPerformanceCounter+240]
!NOP QWORD [QueryPerformanceCounter+248]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [QueryPerformanceFrequency]
!NOP QWORD [QueryPerformanceFrequency+8]
!NOP QWORD [QueryPerformanceFrequency+16]
!NOP QWORD [QueryPerformanceFrequency+24]
!NOP QWORD [QueryPerformanceFrequency+32]
!NOP QWORD [QueryPerformanceFrequency+40]
!NOP QWORD [QueryPerformanceFrequency+48]
!NOP QWORD [QueryPerformanceFrequency+56]
!NOP QWORD [QueryPerformanceFrequency+64]
!NOP QWORD [QueryPerformanceFrequency+72]
!NOP QWORD [QueryPerformanceFrequency+80]
!NOP QWORD [QueryPerformanceFrequency+88]
!NOP QWORD [QueryPerformanceFrequency+96]
!NOP QWORD [QueryPerformanceFrequency+104]
!NOP QWORD [QueryPerformanceFrequency+112]
!NOP QWORD [QueryPerformanceFrequency+120]
!NOP QWORD [QueryPerformanceFrequency+128]
!NOP QWORD [QueryPerformanceFrequency+136]
!NOP QWORD [QueryPerformanceFrequency+144]
!NOP QWORD [QueryPerformanceFrequency+152]
!NOP QWORD [QueryPerformanceFrequency+160]
!NOP QWORD [QueryPerformanceFrequency+168]
!NOP QWORD [QueryPerformanceFrequency+176]
!NOP QWORD [QueryPerformanceFrequency+184]
!NOP QWORD [QueryPerformanceFrequency+192]
!NOP QWORD [QueryPerformanceFrequency+200]
!NOP QWORD [QueryPerformanceFrequency+208]
!NOP QWORD [QueryPerformanceFrequency+216]
!NOP QWORD [QueryPerformanceFrequency+224]
!NOP QWORD [QueryPerformanceFrequency+232]
!NOP QWORD [QueryPerformanceFrequency+240]
!NOP QWORD [QueryPerformanceFrequency+248]
!NOP QWORD [Rip]
!NOP QWORD [Rip]

End
QueryPerformanceCounter_(0)
QueryPerformanceFrequency_(0)
When this instruction cache processing is executed as user processing, the DLL is ready to be executed as a Windows KERNEL API. Even if it is not executed, the DLL can be processed in the instruction cache. In other words, in the past, loading a DLL would block it at runtime, but if it is processed in the instruction cache without execution, it is possible to “disable clock control” for that part of the DLL. However, it is possible to exploit this technique to insert an attack without going through the WindowsAPI Hook. Anti-virus software probably uses the Hook to defend against attacks, but the attack process can be executed before this Hook process is executed.

Code: Select all

"NORMAL Wise"
PureBasicStart:
CALL  XXXX = Blocked

"GATE OF BABYLON"
PureBasicStart:
JMP NEAR XXXX
JMP WindowsAPI Shutdown
JMP WindowsAPI ReStart
XXXX:
Execuables data 10MB ... 30MB ; KERNEL address versus USER address distance 
NOP QWORD [Rip]
NOP QWORD [WindowsAPI Shutdown]
NOP QWORD [WindowsAPI Shutdown+8]
NOP QWORD [WindowsAPI Shutdown+16]
NOP QWORD [Rip]
NOP QWORD [Rip]
CALL WindowsAPI Shutdown = Windows OS Functions Priority First
The stories we hear about being able to address the issue have not been addressed by Microsoft because a small number of engineers are unable to handle the issue.