Compartilhe
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qua 18 Set 2013, 19:21
Hi. :D
How get BASS_ChannelGetLevel() value or BASS_ChannelGetData() from CLEO audiostream ?hmm 
I did something like in C++, but I do not know how to do to make it work in Cleo.challengeaccepted 

I wanted to connect the LED display to make an audio spectrum analyzer or bargraph trollface 


Última edição por RafalSzm em Qui 19 Set 2013, 05:27, editado 1 vez(es)
avatar
Veterano
Veterano
Mensagens : 18207
Reputação : 116
Desde : 03/06/2012
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qua 18 Set 2013, 19:33
Bad english? Aqui é um forum brasileiro cara .-.

______________________________
Some
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qua 18 Set 2013, 19:41
Right, my bad :)
avatar
Mensagens Nível 5
Mensagens Nível 5
Mensagens : 720
Reputação : 11
Desde : 07/08/2013
Idade : 19
Localização : Palmas, Paraná
Ver perfil do usuáriohttps://www.youtube.com/user/andryogameplays

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qua 18 Set 2013, 19:43
VDD,mas pra que isso?

______________________________
Meu Notebook:

OS: Dual Boot - Windows 10 PRO and Windows 8.1
CPU: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz
HD: 500 GB
RAM: 8 GB DDR3
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qua 18 Set 2013, 20:01
https://www.youtube.com/watch?v=5WrANIQIiXI -vu bargraph audio meter
https://www.youtube.com/watch?v=Bn6BIfr_UgY - spectrum analyzer
I do not know how to retrieve data from the audio stream to be displayed on in game led display with the CLEO
With that as my question is made [Mod Vibraram Alto-Falantes]
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qua 18 Set 2013, 23:31
It is not possible to do so in CLEO.
Actually it is possible but it would break compatibility between CLEO versions (future versions)

Anyway, you must find what is the meaning of the "audiostream handle" that CLEO returns, currently (v4.1.1.30f) it seems to return the Bass handle itself but it will change in the future to a index to a internal CLEO array...
After that you can use LoadLibrary/GetProcAddress/FreeLibrary (just like in C++ with WinAPI) with the CLEO opcodes 0AA2/0AA4/0AA3 to get the bass function, then call it using 0AA5.

Again, it is not recommended to do it, it's kinda hacky.

Your name looks Brazilian, srsly

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1947
Reputação : 24
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 00:23
Como assim, Sorry my Bad English? Até parece que você fala português mais acha que esse Fórum é inglês
avatar
Mensagens Nível 5
Mensagens Nível 5
Mensagens : 720
Reputação : 11
Desde : 07/08/2013
Idade : 19
Localização : Palmas, Paraná
Ver perfil do usuáriohttps://www.youtube.com/user/andryogameplays

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 00:29
agora eu me cafundi,o cara fala Portugues,ou fala ingles?

______________________________
Meu Notebook:

OS: Dual Boot - Windows 10 PRO and Windows 8.1
CPU: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz
HD: 500 GB
RAM: 8 GB DDR3
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1947
Reputação : 24
Desde : 30/05/2013
Localização : Estância Velha - RS
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 00:41
∆и∂гчø escreveu:agora eu me cafundi,o cara fala Portugues,ou fala ingles?
Olha a última frase do Tópico: Sorry my Bad English.. Parece que ele fala Português e acha que o Fórum é Inglês.
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 05:35
So in Cleo can not handle audiostream take?
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 05:56
to idiots here: ele tava pedindo ajuda com isso no meu canal do youtube nos videos da BMS Sound, mas eu não sei muito bem, pedi pra ele perguntar aqui que o LINK/2012 e Fabio sabem mais

______________________________

avatar
Mensagens Nível 5
Mensagens Nível 5
Mensagens : 720
Reputação : 11
Desde : 07/08/2013
Idade : 19
Localização : Palmas, Paraná
Ver perfil do usuáriohttps://www.youtube.com/user/andryogameplays

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 09:12
Vc conhece ele de algum outro lugar Djjr?

______________________________
Meu Notebook:

OS: Dual Boot - Windows 10 PRO and Windows 8.1
CPU: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz
HD: 500 GB
RAM: 8 GB DDR3
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 7857
Reputação : 347
Desde : 03/05/2012
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 11:08
RafalSzm escreveu:So in Cleo can not handle audiostream take?
what?

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 11:16
Junior_Djjr escreveu:to idiots here: ele tava pedindo ajuda com isso no meu canal do youtube nos videos da BMS Sound, mas eu não sei muito bem, pedi pra ele perguntar aqui que o LINK/2012 e Fabio sabem mais
O sistema que eu fiz está prontinho aqui, mas se eu der todos os códigos prontos ele não vai aprender como se faz

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 11:49
How about running your modification?
You have added some new opcodes?
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 12:03
RafalSzm escreveu:How about running your modification?
You have added some new opcodes?
It's a dll (made by me) with functions called by a cleo script, but is possible do all functions inside of cleo script without .dll

I not have added new opcodes.

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 12:19
Can you show us how to do it without the dll?
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 12:35
RafalSzm escreveu:Can you show us how to do it without the dll?
Código:

{$CLEO}
var
   0@ : int
   1@ : int
   2@ : int
   3@ : int
end

0AAC: 2@ = load_audiostream "CLEO\example.mp3"
0AA2: 4@ = load_library "bass.dll" // IF and SET
0AA4: 5@ = get_proc_address "BASS_ChannelPlay" library 4@ // IF and SET


if 0AA2: 0@ = load_library "cleo.asi" // IF and SET
then
   1@ = 0@
   1@ += 0x44008 // Table of CLEO Sound System Struct (0x1000 + 0x43008)
  
   0A90: 3@ = 2@ * 4
   1@ += 3@
  
   0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0    // We have now a pointer to Sound System Struct
  
   //////////////////// Getting bass audio handle
   1@ += 4
   0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
  
   // ***************** Playing our audio stream
   0AA5: call 5@ num_params 2 pop 2   int 0 dword 1@  // BASS_ChannelPlay(dword, int) but to call with cleo opcodes we need invert parameters
end
0A93: end_custom_thread

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

CLEO Sound Struct is something like it:
struct CLEO_Sound_System{
   int dummy;
   unsigned int bassHandle;
   int status;
};


______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 12:51
Thanks :D Code partly works, but the game gets called BASS_ChannelPlay crash
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 13:12
RafalSzm escreveu:Thanks :D Code partly works, but the game gets called BASS_ChannelPlay crash
Change
Código:
0AA5: call 5@ num_params 2 pop 2  int 0 dword 1@
to
Código:
0AA5: call 5@ num_params 2 pop 0  int 0 dword 1@

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 13:19
Great now works :D Thanks :D
What is the "pop" in 0AA5:?
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 13:24
RafalSzm escreveu:Great now works :D Thanks :D
What is the "pop" in 0AA5:?
Number (divided by 4) to add in esp (a CPU register of x86) after function return

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 13:41
Now BASS_ChannelGetLevel work
and the code looks like this:

Código:
{$CLEO}
0000:

var
  0@ : int
  1@ : int
  2@ : int
  3@ : int
end
0ADF: add_dynamic_GXT_entry "_L" text "L~1~"
0ADF: add_dynamic_GXT_entry "_R" text "R~1~"

0AAC: 2@ = load_audiostream "Sleepwalking - The Chain Gang of 1974.mp3"
0AA2: 4@ = load_library "bass.dll" // IF and SET
0AA4: 5@ = get_proc_address "BASS_ChannelPlay" library 4@ // IF and SET
wait 1000
if 0AA2: 0@ = load_library "cleo.asi" // IF and SET
then
  1@ = 0@
  1@ += 0x44008 // Table of CLEO Sound System Struct (0x1000 + 0x43008)
 
  0A90: 3@ = 2@ * 4
  1@ += 3@
 
  0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0    // We have now a pointer to Sound System Struct
 
  //////////////////// Getting bass audio handle
  1@ += 4
  0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
 
  // ***************** Playing our audio stream
  0AA5: call 5@ num_params 2 pop 0 int 1 dword 1@  // BASS_ChannelPlay(dword, int) but to call with cleo opcodes we need invert parameters
 
  0AA4: 5@ = get_proc_address "BASS_ChannelGetLevel" library 4@ // IF and SET

end
0AC8: 6@ = allocate_memory_size 4
while true
wait 0
03F0: enable_text_draw 1
0AA7: call_function 5@ num_params 1 pop 0 1@ 7@
0A8C: write_memory 6@ size 4 value 7@ virtual_protect 0

0004: 7@ = 6@
0A8D: 7@ = read_memory 7@ size 2 virtual_protect 0
7@ *= 1000
7@ /= 32767
//045A: draw_text_1number 320.0 145.333 GXT '_L' number 7@  // L
0AB1: call_scm_func @PROGRESS_BAR 10 Draw bar poz 320.0 145.333 int_value 7@ color_rgba 200 177 13 200 size 50.0 10.0 show_number 0
0004: 7@ = 6@
7@ += 2
0A8D: 7@ = read_memory 7@ size 2 virtual_protect 0
7@ *= 1000
7@ /= 32767
//045A: draw_text_1number 320.0 155.333 GXT '_R' number 7@  // R
0AB1: call_scm_func @PROGRESS_BAR 10 Draw bar poz 320.0 155.333 int_value 7@ color_rgba 13 177 200 200 size 50.0 10.0 show_number 0
{
level=BASS_ChannelGetLevel(chan);
L=LOWORD(level)*100/32767; //0-100
R=HIWORD(level)*100/32767;
}
end

0A93: end_custom_thread

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//CLEO Sound Struct is something like it:
//struct CLEO_Sound_System{
//  int dummy;
//  unsigned int bassHandle;
//  int status;
//}

:PROGRESS_BAR
              if
              6@ > 0
              then
              0086: 15@ = 2@
              15@ /= 10
              008D: 2@ = integer 2@ to_float
            //  2@ -= 250.0
              2@ /= 100.0
              if
                  not 2@ >= 0.0
              then
                  2@ = 0.0
              end
              if
                  2@ >= 100.0
              then
                  2@ = 99.9
              end
                  0086: 12@ = 2@  // floating-point values only
                  0086: 13@ = 7@
                  13@ /= 10.0                 
                  0011: 12@ *= 13@  // floating-point values
                  13@ /= 2.0                 
                  0011: 2@ *=  13@  // floating-point values                                               
                  0086: 11@ = 0@
                  0086: 13@ = 7@
                  13@ /= 2.0
                  0063: 11@ -= 13@
                  0086: 10@ =  11@  // floating-point values
                  0059: 10@ += 2@  // (float)
                  if and
                      0034: 10@ >= 0@
                      0034: 12@ >= 7@
                  then
                      0086: 10@ = 0@
                      0086: 12@ = 7@
                  end
              03F0: text_draw_toggle  1
              0086: 13@ = 7@
              13@ += 2.0
              0086: 14@ = 8@
              14@ += 2.0 
              038E: draw_box_position 0@ 1@ size 13@ 14@ RGBA 0 0 0 6@
              0085: 19@ = 6@
              19@ /= 2
              038E: draw_box_position 0@ 1@ size 7@ 8@ RGBA 3@ 4@ 5@ 19@
              038E: draw_box_position 10@ 1@ size 12@ 8@ RGBA 3@ 4@ 5@ 6@
              if
              9@ == 1
              then
              8@ /= 4.0
              0063: 1@ -= 8@
              8@ /= 5.0
              0085: 16@ = 8@
              16@ /= 2.0
              0342: set_text_draw_centered 1
              0340: set_text_draw_RGBA 3@ 4@ 5@ 6@
              0349: set_text_draw_font 3
              081C: draw_text_outline 1 RGBA 0 0 0 6@
              033F: set_text_draw_letter_size 16@ 8@
              045A: draw_text_1number 0@ 1@ GXT 'number' number 15@
              end
              03F0: toggle_text_draw 0
              end
0AB2: ret 0
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18835
Reputação : 344
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 14:27
RafalSzm escreveu:Now BASS_ChannelGetLevel work
and the code looks like this:

Código:
{$CLEO}
0000:

var
  0@ : int
  1@ : int
  2@ : int
  3@ : int
end
0ADF: add_dynamic_GXT_entry "_L" text "L~1~"
0ADF: add_dynamic_GXT_entry "_R" text "R~1~"

0AAC: 2@ = load_audiostream "Sleepwalking - The Chain Gang of 1974.mp3"
0AA2: 4@ = load_library "bass.dll" // IF and SET
0AA4: 5@ = get_proc_address "BASS_ChannelPlay" library 4@ // IF and SET
wait 1000
if 0AA2: 0@ = load_library "cleo.asi" // IF and SET
then
  1@ = 0@
  1@ += 0x44008 // Table of CLEO Sound System Struct (0x1000 + 0x43008)
 
  0A90: 3@ = 2@ * 4
  1@ += 3@
 
  0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0    // We have now a pointer to Sound System Struct
 
  //////////////////// Getting bass audio handle
  1@ += 4
  0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
 
  // ***************** Playing our audio stream
  0AA5: call 5@ num_params 2 pop 0 int 1 dword 1@  // BASS_ChannelPlay(dword, int) but to call with cleo opcodes we need invert parameters
 
  0AA4: 5@ = get_proc_address "BASS_ChannelGetLevel" library 4@ // IF and SET

end
0AC8: 6@ = allocate_memory_size 4
while true
wait 0
03F0: enable_text_draw 1
0AA7: call_function 5@ num_params 1 pop 0 1@ 7@
0A8C: write_memory 6@ size 4 value 7@ virtual_protect 0

0004: 7@ = 6@
0A8D: 7@ = read_memory 7@ size 2 virtual_protect 0
7@ *= 1000
7@ /= 32767
//045A: draw_text_1number 320.0 145.333 GXT '_L' number 7@  // L
0AB1: call_scm_func @PROGRESS_BAR 10 Draw bar poz 320.0 145.333 int_value 7@ color_rgba 200 177 13 200 size 50.0 10.0 show_number 0
0004: 7@ = 6@
7@ += 2
0A8D: 7@ = read_memory 7@ size 2 virtual_protect 0
7@ *= 1000
7@ /= 32767
//045A: draw_text_1number 320.0 155.333 GXT '_R' number 7@  // R
0AB1: call_scm_func @PROGRESS_BAR 10 Draw bar poz 320.0 155.333 int_value 7@ color_rgba 13 177 200 200 size 50.0 10.0 show_number 0
{
level=BASS_ChannelGetLevel(chan);
L=LOWORD(level)*100/32767; //0-100
R=HIWORD(level)*100/32767;
}
end

0A93: end_custom_thread

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//CLEO Sound Struct is something like it:
//struct CLEO_Sound_System{
//  int dummy;
//  unsigned int bassHandle;
//  int status;
//}

:PROGRESS_BAR
              if
              6@ > 0
              then
              0086: 15@ = 2@
              15@ /= 10
              008D: 2@ = integer 2@ to_float
            //  2@ -= 250.0
              2@ /= 100.0
              if
                  not 2@ >= 0.0
              then
                  2@ = 0.0
              end
              if
                  2@ >= 100.0
              then
                  2@ = 99.9
              end
                  0086: 12@ = 2@  // floating-point values only
                  0086: 13@ = 7@
                  13@ /= 10.0                 
                  0011: 12@ *= 13@  // floating-point values
                  13@ /= 2.0                 
                  0011: 2@ *=  13@  // floating-point values                                               
                  0086: 11@ = 0@
                  0086: 13@ = 7@
                  13@ /= 2.0
                  0063: 11@ -= 13@
                  0086: 10@ =  11@  // floating-point values
                  0059: 10@ += 2@  // (float)
                  if and
                      0034: 10@ >= 0@
                      0034: 12@ >= 7@
                  then
                      0086: 10@ = 0@
                      0086: 12@ = 7@
                  end
              03F0: text_draw_toggle  1
              0086: 13@ = 7@
              13@ += 2.0
              0086: 14@ = 8@
              14@ += 2.0 
              038E: draw_box_position 0@ 1@ size 13@ 14@ RGBA 0 0 0 6@
              0085: 19@ = 6@
              19@ /= 2
              038E: draw_box_position 0@ 1@ size 7@ 8@ RGBA 3@ 4@ 5@ 19@
              038E: draw_box_position 10@ 1@ size 12@ 8@ RGBA 3@ 4@ 5@ 6@
              if
              9@ == 1
              then
              8@ /= 4.0
              0063: 1@ -= 8@
              8@ /= 5.0
              0085: 16@ = 8@
              16@ /= 2.0
              0342: set_text_draw_centered 1
              0340: set_text_draw_RGBA 3@ 4@ 5@ 6@
              0349: set_text_draw_font 3
              081C: draw_text_outline 1 RGBA 0 0 0 6@
              033F: set_text_draw_letter_size 16@ 8@
              045A: draw_text_1number 0@ 1@ GXT 'number' number 15@
              end
              03F0: toggle_text_draw 0
              end
0AB2: ret 0
Código:
0AC8: 6@ = allocate_memory_size 4
You allocated only 4 bytes, so in this case, is better get the offset from a local variable, for example:

Código:
0AC7: 6@ = var 31@ offset

______________________________

Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 10
Reputação : 0
Desde : 18/09/2013
Ver perfil do usuário

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

em Qui 19 Set 2013, 14:48
I had not thought xD You can still read at once from the variable
Conteúdo patrocinado

Re: How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum