Jump to content

CrazyM

Members
  • Posts

    86
  • Joined

  • Last visited

Posts posted by CrazyM

  1. Wow Ma-Shell that's cool, for some reason I hadn't considered accessing the underlying OpenAL directly. You're right, [alGetSourcei] is what I was referring to. I've been playing with a stand-alone copy of the OpenAL SDK for a few days to get my feet wet and find my bearings. I'm going to run these new ideas through my test environment and see what kind of accuracy I get on my second pass.

     

    Thanks for your help!

  2. What I have now is ultra hacky, I asked Josh if he could clarify a few details about the Bank class, which I believe is where audio data is loaded into memory before it's passed to OpenAL. Assuming this is true, this is good planning on his part since it appears windowing the data once it's been passed to OpenAL is a no go. My background in OpenAL only goes back a few days wink.png so it's quite possible I'm wrong.

     

    So rather that post my hacky mess of code, I'll explain what I'm doing as I understand it.

     

    I'm creating a Source and loading a clip into it, I believe Sound::Load probably does some detection and parsing of the sample rate, channels etc, then places the raw data into the Bank class, accessible via sound->data. I don't know what "raw data" actually means here since to me that means the entire wav file with its header, format chunk, and PCM data, but I looked for the header and can't find it. Although OpenAL provides a function for retrieving the index of the sample currently being played, I am unable find Leadwerks API that passes this through. So my first best attempt at an alternative was to convert elapsed play time to percentage complete, and use that to track the approximate current index. With (roughly) the current index in hand, I iterate the bank and pop bytes off the stack.

     

    My current issues are that it's not clear to me what format the bank data is in, which means I'm guessing at how best to parse it. I'm also still struggling to fully understand FFT windowing, which I believe solves the excessive noise I'm currently seeing in the signal. I can distinguish sound from silence, but not one amplitude from another.

  3. This is a very rough first pass attempt at reading amplitude data from a wav file. I'm hoping to get the signal cleaned up so that I can detect subtle differences in amplitude. Anybody really knowledgeable about the Bank class in regards to audio processing, or using fast fourier transform to smooth data?

     

    • Upvote 1
  4. Right now you can drag to select/deselect, or right click a vertex for the same effect. It's all a but clunky right now, but I think it could be made into a viable blend shape workflow if a native solution isn't added to the API. The idea would be to load characters into an editor map, and create and save shape information for use by a controller.

  5. Thanks, that's my thought as well. Now that I've got a couple of ways to isolate and move vertecies, saving a basis shape and some target shapes should be easy, then it's just a matter of Lerping values. I'd much rather have existing shapes detected and usable in the API, but I wanted to see if this could be a viable approach in case that doesn't happen.

  6. I grabbed it on Steam today for %40 off. My friend and I played quite a bit of Evochron Mercenary, it was fun and wildly impressive for a one-man project. Great flight physics and controls that are robust without going overboard.

  7. Wow, active discussion in my absence...LOL! I don't find the manually managed source route a bad option and am somewhat ambivalent. It would be nice to simply get a reference from EmitSound and have it's position updates already handled, but it's not really a big deal either way (to me anyway) now that I understand how it works.

  8. Doe anyone know if you can stop a looping Entity:EmitSound() method without releasing the entity, then start the sound again back in loop mode?

     

    It looks like EmitSound automatically creates a Source and the entity manages it. Is there some way to get reference to this Source to call Source:Stop()?

     

    EDIT:

    Nevermind, I'll just create and manage the Source manually.

  9. If you try to launch a fullscreen game in the Game Player that presumably doesn't have a full screen option. The game fails to launch because the fullscreen property is nil. I found this to be the case with [Minigolfmania] and [Hunt For Food].

     

    Steam Standard Edition

    Windows 7 64-bit

    Non-beta branch

     

    Log

    Launching process "E:\Program Files\Portable\Steam\steamapps\common\Leadwerks Indie Edition\Templates\Lua\$PROJECT_NAME.exe" -sandbox +game "C:\Users\Mike\AppData\Local\Leadwerks\Workshop\251810\Game_311533257_76561198002835201_Minigolfmania.zip" +screenwidth 1920 +screenheight 1200 -fullscreen +lightquality 2 +multisample 4

    Initializing Lua...

    Lua sandboxing enabled.

    Executing file "E:/Program Files/Portable/Steam/steamapps/common/Leadwerks Indie Edition/Templates/Common/Scripts/Error.lua"

    Executing file "E:/Program Files/Portable/Steam/steamapps/common/Leadwerks Indie Edition/Templates/Common/Scripts/App.lua"

    Lua Error: [string "E:/Program Files/Portable/Steam/steamapps/common/Leadwerks Indie Edition/Templates/Common/Scripts/App.lua"]:26: attempt to perform arithmetic on field 'Fullscreen' (a nil value)

    Process complete.

×
×
  • Create New...