Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change .gpla format to binary, improving performance massively #236

Closed
wants to merge 8 commits into from

Conversation

DJLevel3
Copy link
Contributor

@DJLevel3 DJLevel3 commented May 1, 2024

As described above, the .gpla file is now a binary format that performs far better on save and load. Technically it's base64 encoded so it still works with the file save and load functions built into osci-render, but the decoded data is pure binary.

@DJLevel3 DJLevel3 marked this pull request as ready for review May 5, 2024 15:09
@jameshball
Copy link
Owner

Platforms and software tested

List any platforms tested. E.g. Windows or macOS

Also list any DAWs you are using to test. E.g. Ableton, Reaper, Logic.

Testing performed

Describe in detail any testing you've performed that is specific to the feature or bugfix this PR addresses.

Testing checklist

  • Tested PR on the standalone app
  • Tested PR when using as an audio plugin, e.g. VST or AU
  • Added unit tests to osci-render-test.jucer project when relevant
  • Checked that any parameters added or modified can be changed from a DAW and have the value updated in the GUI and vice versa
  • Added tooltips to any new labels or buttons to explain them
  • Made sure any new effects or sliders added still work when the range of the slider is changed

@jameshball
Copy link
Owner

Thanks for the PR this is awesome work! Do you mind filling out the template above for testing so I have an idea of what has been tested? Not everything is relevant to this PR so just remove it if you think it's not relevant.

Once you've filled out the template I'll try and do a proper review :)

@DJLevel3
Copy link
Contributor Author

Platforms and software tested
Windows Ableton and Standalone

Testing performed
Approximately 4 hours of use on various Blender projects and methods of making music, zero crashes or issues.

Testing checklist

  • Tested PR on the standalone app
  • Tested PR when using as an audio plugin, e.g. VST or AU
  • Added unit tests to osci-render-test.jucer project when relevant
  • Checked that any parameters added or modified can be changed from a DAW and have the value updated in the GUI and vice versa
  • Added tooltips to any new labels or buttons to explain them
  • Made sure any new effects or sliders added still work when the range of the slider is changed

@DJLevel3
Copy link
Contributor Author

Fixes #239

I need to do a bit of testing to ensure stability, but this fix makes the frame update to the newest frame in the queue instead of the next frame in the queue, ensuring that the animation is at most 1 audio block late. This might be possible to reduce to 0 blocks, I'll see if I can make that work soon.

@DJLevel3
Copy link
Contributor Author

0 blocks doesn't appear to be easily possible without significant rewrite of the audio processing code, so I'll leave it like this for now. Beginning testing.

@DJLevel3
Copy link
Contributor Author

...or I may have forgotten to enable plugin copy so I wasn't actually testing the changes 🤦

@DJLevel3
Copy link
Contributor Author

Platforms and software tested

Windows - VST3 in Ableton, Standalone

Testing performed

I have tested a very large GPLA file at high framerate along with the default OBJ file, and everything works as before except the frames now update when stale so there's not a large delay before the frame updates when starting a new MIDI note after some time not playing the previous one.

Testing checklist

  • Tested PR on the standalone app
  • Tested PR when using as an audio plugin, e.g. VST or AU
  • Added unit tests to osci-render-test.jucer project when relevant
  • Checked that any parameters added or modified can be changed from a DAW and have the value updated in the GUI and vice versa
  • Added tooltips to any new labels or buttons to explain them
  • Made sure any new effects or sliders added still work when the range of the slider is changed

@DJLevel3
Copy link
Contributor Author

Strange sounds are happening, I think I know what's wrong though

@DJLevel3
Copy link
Contributor Author

Fixed

@DJLevel3
Copy link
Contributor Author

Switched to a new PR, but code is largely the same. Regardless, I'm closing this PR now.

@DJLevel3 DJLevel3 closed this Aug 14, 2024
@DJLevel3 DJLevel3 deleted the misc-improvements branch January 23, 2025 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants