How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

    Compartilhe
    avatar
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

    How get BASS_ChannelGetData() or BASS_ChannelGetLevel() ?

    Mensagem por RafalSzm 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
    Pylm
    Veterano
    Veterano

    Título : Linuxer
    Mensagens : 18207
    Reputação : 116
    Desde : 03/06/2012

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

    Mensagem por Pylm em Qua 18 Set 2013, 19:33

    Bad english? Aqui é um forum brasileiro cara .-.


    ____________________
    Some
    avatar
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm em Qua 18 Set 2013, 19:41

    Right, my bad :)
    avatar
    Andryo
    Mensagens Nível 5
    Mensagens Nível 5

    Mensagens : 720
    Reputação : 11
    Desde : 07/08/2013
    Idade : 19
    Localização : Palmas, Paraná

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

    Mensagem por Andryo 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
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm 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
    LINK/2012
    Programador - Avançado
    Programador - Avançado

    Título : Veterano
    Mensagens : 7857
    Reputação : 347
    Desde : 03/05/2012

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

    Mensagem por LINK/2012 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
    Kevin Prestes
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 1891
    Reputação : 18
    Desde : 30/05/2013
    Localização : Estância Velha - RS

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

    Mensagem por Kevin Prestes 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
    Andryo
    Mensagens Nível 5
    Mensagens Nível 5

    Mensagens : 720
    Reputação : 11
    Desde : 07/08/2013
    Idade : 19
    Localização : Palmas, Paraná

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

    Mensagem por Andryo 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
    Kevin Prestes
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 1891
    Reputação : 18
    Desde : 30/05/2013
    Localização : Estância Velha - RS

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

    Mensagem por Kevin Prestes 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
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm em Qui 19 Set 2013, 05:35

    So in Cleo can not handle audiostream take?
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21614
    Reputação : 633
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

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

    Mensagem por Junior_Djjr 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
    Andryo
    Mensagens Nível 5
    Mensagens Nível 5

    Mensagens : 720
    Reputação : 11
    Desde : 07/08/2013
    Idade : 19
    Localização : Palmas, Paraná

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

    Mensagem por Andryo 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
    LINK/2012
    Programador - Avançado
    Programador - Avançado

    Título : Veterano
    Mensagens : 7857
    Reputação : 347
    Desde : 03/05/2012

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

    Mensagem por LINK/2012 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
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

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

    Mensagem por Fabio 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
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm em Qui 19 Set 2013, 11:49

    How about running your modification?
    You have added some new opcodes?
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

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

    Mensagem por Fabio 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
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm em Qui 19 Set 2013, 12:19

    Can you show us how to do it without the dll?
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

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

    Mensagem por Fabio 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
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm em Qui 19 Set 2013, 12:51

    Thanks :D Code partly works, but the game gets called BASS_ChannelPlay crash
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

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

    Mensagem por Fabio 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
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm em Qui 19 Set 2013, 13:19

    Great now works :D Thanks :D
    What is the "pop" in 0AA5:?
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

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

    Mensagem por Fabio 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
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm 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
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

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

    Mensagem por Fabio 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
    RafalSzm
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 10
    Reputação : 0
    Desde : 18/09/2013

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

    Mensagem por RafalSzm 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() ?

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg 26 Jun 2017, 04:08