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

A port of an early version of Baystation's new instruments #37447

Open
wants to merge 4 commits into
base: Bleeding-Edge
Choose a base branch
from

Conversation

mentgah
Copy link
Contributor

@mentgah mentgah commented Feb 23, 2025

What this does

I ported an early version of Baystation's new instruments, for now there's only one new physical instruments (the synth) which contains all of them. Future PRs will add more physical instruments (for now, old instruments are still there in the code and still work). The new interface looks like this.
image
New features include:

  1. A sustain function which might be the most requested feature ever;
  2. Several new instruments: Several brass instruments, chromatic percussions, fun ones like HONK, guitars, tones (square, sine and sawtooth waves), organs and pianos.
  3. A "virtual environment" function (still not in use) which allows you to change these parameters: "Direct", "Direct (High Frequency)","Room","Room (High Frequency)","Obstruction","Obstruction (Low Frequency Ratio)","Occlusion","Occlusion (Low Frequency Ratio)","Occlusion (Room Ratio)","Occlusion (Direct Ratio)","Exclusion","Exclusion (Low Frequency Ratio)","Outside Volume (High Frequency)","Doppler Factor","Rolloff Factor","Room Rolloff Factor","Air Absorption Factor","Flags" for more immersive music playing

Why it's good

Because our instruments sound bad and work bad.

How it was tested

I tested all the new instruments that come with the synthesizer and mostly do sound good. I didn't notice any performance drop while playing. Wrenching and unwrenching the synth works. I'm going to upload some videos of it as well. (audio only)
campanella real.webm

Sprites

I have two different sprites for the synth, made by Blonichu and Burntdevil. The synth will pick a random sprite when created (not implemented yet).
synth1
nusynth

Changelog

🆑

  • rscadd: A new synthesizer with updated sounds has hit the market! Get it while you can!

first commit for instruments, should have everything ready
@west3436 west3436 added Content Adds something. Neat! Port Stolen/Ported from another codebase. Sound CAN YOU SMELELELELELEL labels Feb 23, 2025
Copy link
Collaborator

@west3436 west3436 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still working through this but aside from the controller issue I'm mainly just seeing style issues. General notes:

  • Avoid same-line if's/for's/etc. The improved readability of splitting these into multiple lines is worth the added linecount.
  • src.*** is being applied liberally here - you typically do not need to put src. before accessing/setting a var within scope of the var's owner. No need to correct the existing instances; it's just worth noting for the future.

@mentgah mentgah marked this pull request as draft February 24, 2025 14:11
@mentgah mentgah marked this pull request as ready for review February 24, 2025 18:54
@angryturnip
Copy link
Contributor

The PR that saved /vg/station

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Content Adds something. Neat! Port Stolen/Ported from another codebase. Sound CAN YOU SMELELELELELEL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants