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

Limit bugle notes to the actual bugle scale #1126

Open
wants to merge 1 commit into
base: NetHack-3.7
Choose a base branch
from

Conversation

entrez
Copy link
Contributor

@entrez entrez commented Nov 8, 2023

Bugles have a much more limited range than other instruments due to
the way they are constructed and played. Make bugles in NetHack reflect
this.

I think it is very likely that tooled horns would behave the same way,
but I let them be for now because it's not entirely clear what a "tooled
horn" is meant to be. Giving both tonal scaring instruments limited
ability to open the Castle might be interesting, though, since it would
give players a reason to actually hang on to wooden flutes and harps.

This also has a additional effect of explicitly rejecting characters
entered by the player that aren't associated with the musical scale.
Previously it would pass those to Hero_playnotes along with the real
notes.

@entrez
Copy link
Contributor Author

entrez commented Nov 8, 2023

This is another idea which is much more debatable than the straightforward
fixes I normally submit (similar to #1112 in that way -- I guess I am
receiving creative inspiration from some dubious Muse lately ;-).

@g-branden-robinson
Copy link
Contributor

I like the idea of restricting the tooled horn in the same manner as the bugle; your rationale seems fine to me.

However, according to the squeaky board logic, all 12 notes of the chromatic scale are recognized in the Mazes of Menace. There is consequently no reason for whoever constructs the tonal instruments of NetHack to limit themselves to bugles and horns in C.

Here are some ideas:

  • If you improvise with one of these wind instruments, you discover what key it's in. "You blow some triads in C."

(If hallucinating: "You won't be taking giant steps on this instrument.")

  • There only need be enough different horn tunings to cover the chromatic scale once the perfect fifth and major third overtones are accounted for. There is an infinite number of enharmonic spellings of any given note. Double-sharps and double-flats need not be dealt with. So...
  1. Horn in A♭: A♭ C E♭
  2. Horn in E♭: E♭ G B♭
  3. Horn in B♭: B♭ D♭ F
  4. Horn in F: F A C
  5. Horn in C: C E G
  6. Horn in G: G B D
  7. Horn in D: D F♯ A
  8. Horn in A: A C♯ E
  9. Horn in E: E G♯ B

So that's only nine kinds of horn to cover all 12 notes. Does the castle passtune code already handle enharmonicity?

This does presume that the equal-temperament tuning system is rigidly applied in the NetHack universe. If it doesn't, the problems get worse instead of better...

@paulwinner
Copy link

paulwinner commented Nov 8, 2023 via email

@entrez
Copy link
Contributor Author

entrez commented Nov 8, 2023

Haha, @g-branden-robinson, I didn't realize what a can of music theory worms this would invite opening...

Maybe the devteam can also license a short snippet of a Peter Brötzmann tune for the sound library integration on the scaring horn improvisation.

@g-branden-robinson
Copy link
Contributor

I checked do_play_instrument and only notes in the C major scale are accepted. This permits some simplification.

You would then only need four horn tunings: F, C, G, and D. That seems more practical. And since that D horn will blow an F#, there's room for a jokey Easter egg if the castle passtune requires an F natural.

You_hear("gears grinding in protest.");

@entrez entrez force-pushed the bugle_scale branch 2 times, most recently from 2d3281a to 1a6d5c8 Compare November 10, 2023 07:23
Bugles have a much more limited range than other instruments due to
the way they are constructed and played.  Make bugles in NetHack reflect
this.

I think it is very likely that tooled horns would behave the same way,
but I let them be for now because it's not entirely clear what a "tooled
horn" is meant to be.  Giving both tonal scaring instruments limited
ability to open the Castle might be interesting, though, since it would
give players a reason to actually hang on to wooden flutes and harps.

This also has a additional effect of explicitly rejecting characters
entered by the player that aren't associated with the musical scale.
Previously it would pass those to Hero_playnotes along with the real
notes.
@entrez
Copy link
Contributor Author

entrez commented Dec 12, 2023

I'm not going to work on resolving the merge conflicts in this pull request for now, since there's apparently little to no interest and anyway it was always more of a "that could be interesting, but it would need a lot of testing and discussion to see if it makes sense" idea than something I was convinced would improve the game. I'm happy to fix it up if someone comes along and wants to try it out/playtest it, though -- just let me know.

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.

None yet

3 participants