Advertisement

Reducing the number of octaves in a song

Started by October 04, 2015 08:55 PM
12 comments, last by SillyCow 9 years ago

Hi,

I am a programmer and have very limited knowledge in music.

I am building a robotic glockenspiel that can play midi files.

My problem is that most midi-files I encounter are for a piano.

A piano has a lot of octaves. My 27 note glock has 2.5 octaves.

Most midi that I want to play require more than 2.5 octaves, and as a result I am missing a bunch of notes.

Looking around on you-tube I have deduced 2 facts:

1. Some piano music uses redundant notes to sound more robust: I have encountered ferrere-jeaques played with bass chords, whereas all beginner xylophone tutorials teach it with single notes on 1.5 octaves.

2. I have seen some compositions of monster pieces like Tocatta and Fugue altered to be played on a xylophone. They were missing some notes, but they sounded allright.

As a programmer, I am guessing that there is some sort of musical transformation that I can make on a piano piece to make playable on only 2.5 octaves. As I am not trained in music, I do not know what that process is called, so Google is not helping out. What should I search for?

Also, is there some magical music program that could do this for me, and save me the trouble of writing my own algorithm?

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

Anything out of range needs to be transposed up or down to an octave in the glockenspiel's range. I don't know of any way to automate this. However the musical transformation you're talking about is not one thing. It's an array of aesthetic decisions. The arrangements you came across were made by people, and this type of thing requires human judgment. If you make an algorithm that could just move stuff from octave to octave to make it fit the range of the instrument, it would need human tweaking in order to sound right. I'm not saying it's impossible, but at this point it would be simpler to arrange the pieces yourself than it would be to design an algorithm to make complex aesthetic judgments.

Advertisement

would be simpler to arrange the pieces yourself than it would be to design an algorithm to make complex aesthetic judgments

That's what I feared...

Is there a way to obtain midi files that are intended for a certain instrament?

I am looking for pretty standard stuff, like famous classical works and fanfare.

I don't mind paying.

If not, is this "arrangement" process something that I could pay a reasonable amount of money to a freelance to carry out? This is a non profit hobby, so I'd say reasonable is <100$ for several famous pieces. Am I being optimistic here? I have no musical training, so I have no idea if this is a task for a highschooler, or something that requires Beethoven himself :-)

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

It is a simple task, it just requires some understanding of the structure of a musical piece (which notes form such a coherent part that they should be transposed by the same number of octaves? Which notes can be transposed independently from other close ones as a timbre change that doesn't affect melody too much?) and some aesthetic decisions (in which octave does something sound better? If a melody wanders over an excessive range, where should it be cut into differently transposed pieces?).

Practical editing means selecting notes in a piano roll or notation GUI, dragging them up or down (by a whole number of octaves) and auditioning various alternatives; anybody can do it, find a good MIDI sequencer and try on your own.

N.B. If you are targeting a mechanical automated instrument, you don't need to worry about using easy to play notes: in addition to folding part of the notes a whole number of octaves up or down, you can also freely transpose the whole piece by the same number of semitones to make it fit in your feasible note range. Note names change, but all intervals remain the same.

Omae Wa Mou Shindeiru


freely transpose the whole piece by the same number of semitones to make it fit in your feasible note range

But the pieces take up 4 octaves, whereas I only have 2.5. I can't see how moving the entire piece around would help. Geometrically speaking (for lack of musical lingo), the piece is too wide, moving it left or right will not make it fit in a narrow box...

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

By the way is this a physical robotic glockenspiel player? If so you have to post a video when you're done, sounds very cool.

Advertisement

I allready have it playing chords, but I haven't filmed it yet, because one of my H/W chips is shot.

But here are the perliminarys:

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

Very cool! Nice work

Awesome project...

As a first quick pass, I'd suggest your MIDI parsing routine just force the pitches into the range of your glockenspiel by doing an octave transpose.

It would sound a bit strange on some pieces (i.e it wouldn't make a 'complex aesthetic judgement'), but would let let all the notes be played and it would have the benefit of letting you give it any MIDI file.

The alternative would be to just ignore out-of-range notes.

For example

if (NotePitch > MAXGLOCKPITCH) { // are we out of range, too high?

While (NotePitch> MAXGLOCKPITCH) do { // yes, keep transposing down an octave until we're in range.

NotePitch -= 12; // transpose down an octave

}

}

if (NotePitch < MINGLOCKPITCH) { // are we out of range, too low

While (NotePitch < MAXGLOCKPITCH) do { // yes, keep transposing UP an octave until we're in range

NotePitch += 12; // tranpose it up an octave

}

}

// at this point we have a valid NotePitch within range of the glockenspiel

Brian Schmidt

Executive Director, GameSoundCon:

GameSoundCon 2016:September 27-28, Los Angeles, CA

Founder, Brian Schmidt Studios, LLC

Music Composition & Sound Design

Audio Technology Consultant

[quote name='bschmidt1962' timestamp='1444331297' post='5256259']
For example
[/quote]

Thanks

At the moment, I allready scan to find the best octavem then I cut out all the notes that don't fit.

I will try this method of transposing each musical note separately.

I have also thought that maybe I should do the above for each musical bar as a whole instead of individ[quote name='bschmidt1962' timestamp='1444331297' ual notes. Would that be better?

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

This topic is closed to new replies.

Advertisement