2

So you know how when playing a stringed instrument a low note will always play longer than a high note.

Here is a good question about it - When we press a piano key, why does a high pitch note not run for as long as a low pitch note?

Basically what I am wondering is, is there an instrument that will play all notes for the exact same duration regardless of pitch with the same effort applied by the musician.

The reason for this is I am working with a MIDI file that relies on synthesized instruments, and my intention with the MIDI file is to convert text into a series of notes as MIDIs take a range of notes from 0-127 so that I can turn text into music.

But I am also looking to reverse this music back into text by extracting the exact notes played in the MIDI file.

However I am running into errors in extracting the exact notes played in the music file because of certain notes (low notes) playing for longer durations than high notes as this is producing a sort of cross frequency sound effect with low notes lingering into high notes.

And as the heading of my question asks, I'm looking for suggestions into an instrument that won't leave me with this issue, as I am able to select which instrument I use in MuseScore3.

Carl Witthoft
  • 14,656
  • 2
  • 18
  • 41
missway
  • 47
  • 3
  • 5
    You could easily make an electronic instrument (e.g. using samples) that does it. Would that be a satisfying answer your questions? If not, please clarify. On a piano, you could place some kind of soft material (foam, felt...) on the lower pitch strings to shorten their sound. – user1079505 Feb 08 '22 at 20:30
  • I'm actually using a python script I found online the create MIDI files and the issue is that the sound fonts represent actual instruments - https://pypi.org/project/MIDIUtil/ and was trying to get help on another forum when I stumbled across the question i referenced above explaining in detail what for me is an inconvenience :) – missway Feb 08 '22 at 20:39
  • 3
    A careful wind player could also play everything the same length on the whole tessitura :) – Tom Feb 08 '22 at 20:40
  • 1
    This is about the physics of acoustics. Also, hehe, of course you're thinking of string instruments that are plucked or percussed; bowed strings can of course do whatever they want. This phenomenon only works for instruments that create sound using a single impulse (drum, cymbal, pitched percussion, plucked strings). It's not true of most winds, voice, organ, etc. – Andy Bonner Feb 08 '22 at 20:50
  • 1
    By the way, welcome, and thanks for contributing! I encourage you to use the "edit" link to change the question as you think about it, though. At the moment, the only answer is "Well sure, lots of them." But maybe you'd like to turn it into more of a "why/how" question (as long as it doesn't duplicate the linked one). – Andy Bonner Feb 08 '22 at 20:53
  • 5
    I sense an XY problem here. Why is it an inconvenience to have synthesized instruments behave in a way that imitates the natural instruments they are designed to mimic? Do you realize that MIDI doesn't encode the actual sound? – Theodore Feb 08 '22 at 20:53
  • @user1079505: If you're OK with having a 1980's chiptune sound, you don't even need to generate samples. If all notes have the same constant duration, you can just use the Win32 `Beep` function. I've even made a simple musical keyboard program with it. – dan04 Feb 08 '22 at 22:56
  • 1
    @dan04 OMG thankyou so much, that is Exactly what I am looking for, – missway Feb 09 '22 at 15:44
  • You have two different questions in one post. – Michael Curtis Feb 09 '22 at 17:12

3 Answers3

4

I think the best option for you would probably be the organ. Not only does it stay at a constant volume for the entire note duration, but the simple harmonics of the organ should make it easier to automatically detect the pitch of a note, which it seems you're looking for.

I'm not sure how it works in Musescore, but in real life, organs ignore dynamics markings, so it should play at a constant volume regardless of any dynamics as well.

user89654
  • 56
  • 2
3

As Theodore hinted, the best solution is not to find a certain instrument. Your issue is that you want no polyphony. In a MIDI sense, "polyphony" means being able to have overlapping notes. For instance, on a super-cheap toy keyboard, if you play a C and then an D, the D interrupts the C instead of layering on top of it. Depending on what software you're using to interact with the MIDI instrument, you may be able to disable polyphony, or choose a monophonic virtual instrument.

You also probably want to look into quantizing. This is the process of delimiting the start and duration of notes to mathematically precise amounts.

In your case, you're equating musical notes and letters, and each is a "byte" of data. You presumably want every note to be equal in duration, and to be handled discreetly.

Andy Bonner
  • 11,559
  • 1
  • 16
  • 57
1

An important concept to understand is the envelope: https://en.wikipedia.org/wiki/Envelope_(music).

One of the obvious ways to have the same duration for each note would be to make each of your midi notes the same length, and have a very short attack, decay, and release time. I would imagine you can do this in MuseScore3 by selecting some kind of organ-like sound?

Another way would be to set up a synthesizer to have a zero sustain level, and set the decay and release the same - and short enough that you don't get any apparent note overlapping. However, this may only allow very short notes, and I'm not familiar enough with MuseScore3 to know if it allows this.

Нет войне
  • 45,699
  • 3
  • 75
  • 157