Musical Software Development Help !

uworld

Free Member
Mar 14, 2010
36
3
Hi,

We are developing a software application in Air that manages content for users to train them to play the guitar. A key feature is MIDI playback of pre loaded music and graphical display of the score.

This is all great however the client wants something adding that is going beyond out area of knowledge.

Looking for some idea if anyone on here could code such a thing and what the rough cost may be.

The requirement is as follows.

Users to be able to input using keys or a mouse a guitar tab, with their been a live conversion to a score on screen and basic validation against impossible scores been produced.

The same as found in Guitar Pro however without the other functions guitar pro does.

Simple or complex.

Thanks,
Unis
 

Annoying Twit

Free Member
Jul 20, 2009
27
1
This sounds easy/impossible.

A guitar tab includes the notes being played, as well as an indication of slurs, slides, and trills. However, tab includes limited rhythmic information, unlike standard musical notation which is rhythmically exact (*). Hence in a tab to score conversion, the information concerning rhythm which is not present (or only partially present) in the tab will need to be produced from "somewhere". While in my day job I'd use much fancier words, this to some degree would be some form of guesswork, though various technology such as techniques from Artificial Intelligence, could be applied, which might result in a good guess.

A solution that makes guesses could be coded up very easily. As the sophistication of the guesses improves, more and more technology and more and more computer readable music knowledge is required. An exact perfect solution would probably imply that the software could read the mind of the person entering the tab, which is beyond current technology :) People would need to know exactly how sophisticated a solution you want before they could say how difficult/expensive creating that solution is.

I'm not sure how a tab could produce an impossible score. If we're talking standard music notation, then it is a very powerful language for music, and I'm not sure how any tab would not translate to a score. Of course, vice versa is not true. It's very easy to create scores which cannot be represented as tabs or cannot be physically played, e.g. when more than one note needs to be played on the same string at once, or where multiple notes need to be fretted on strings that are too far apart. But a tab producing an impossible score? I need an example.

Depending on how sophisticated a solution you need, I'd recommend you talk to a university department such as, ahem, mine, and find someone like, ahem, me, to discuss how this could be taken further. Partnering with a university is a "big" thing to do though, and it could be that your client isn't interested in such approaches. I could personally code such a thing in a variety of languages, but my employer would get involved in me doing consultancy work for you, which requires more "administration" than if you emailed some hacker working from their bedroom who would email you a solution for cash in hand.

(*) Though in some cases it's typical for players to play in a looser feel or with rhythmic peculiarities not as shown in the score, but this is not really relevant trivia.

Edit:
PS: If you limit the tab language to have a certain number of divisions per bar, e.g. 16, 32, or 64, and include a "tie" symbol in the usuable alphabet, then the whole thing becomes much easier.
 
Last edited:
Upvote 0
Simple or complex.
Complex.

What you have currently is a read only playback music system. Simple.

The new request is for a system that doesn't just playback, but also allows the user to input their own songs, and not even in a way that you are currently providing input for the playback. Complex.

The client might be dressing this up as a simple feature-creep request, but that request is in fact increasing the complexity of the whole system by a considerable factor (e.g. at least 3 or 4 times the complexity of the original system, or more).

Think about it, you are currently making use of some black box piece of software in Air which plays a midi file. Simple. With the new request you could be entering into the realms of writing your own black box midi composer and sequencer.
 
Upvote 0

uworld

Free Member
Mar 14, 2010
36
3
Hi,

Thanks for the detailed reply.

What I mean by impossible score I was referring to the software stopping a user placing two notes on top of each other, having 5 bars in a 4 bar score and so on, basically validation.

Regards,
 
Upvote 0

Annoying Twit

Free Member
Jul 20, 2009
27
1
Hi,

Thanks for the detailed reply.

What I mean by impossible score I was referring to the software stopping a user placing two notes on top of each other, having 5 bars in a 4 bar score and so on, basically validation.

Regards,

I would think that a properly designed user interface (assuming the users use a GUI) would prevent all of these problems, except perhaps the same note being played on two strings, automatically. If they're supplying a text file, then the validation still doesn't sound very hard except for the rhythm problem. Which can be solved if you interpret the meanings of the characters in the tabs more literally than the standard definition of a "tab".
 
Last edited:
Upvote 0

uworld

Free Member
Mar 14, 2010
36
3
awebapart,

yes, thats my theory as well, its gonna be complex.

I suppose I am just checking before I tell the client its going to need to be looked into that its true and they dont sent me a link to a standard function in air to input tabs !
 
Upvote 0

Annoying Twit

Free Member
Jul 20, 2009
27
1
Complex.

What you have currently is a read only playback music system. Simple.

The new request is for a system that doesn't just playback, but also allows the user to input their own songs, and not even in a way that you are currently providing input for the playback. Complex.

The client might be dressing this up as a simple feature-creep request, but that request is in fact increasing the complexity of the whole system by a considerable factor (e.g. at least 3 or 4 times the complexity of the original system, or more).

Think about it, you are currently making use of some black box piece of software in Air which plays a midi file. Simple. With the new request you could be entering into the realms of writing your own black box midi composer and sequencer.

Or, you'd need to convert the tab into a MIDI file, which doesn't sound that complicated. I don't know what language the OP is using, but, say, in Java, creating a midi file, adding (for guitar, I'd presume:) a single track, and then adding notes, is a doddle. The resulting MIDI file could then be played by AIR with the already used interface for playing MIDI files. Other languages would probably have similar libraries. If AIR plays MIDI files direct from disk, then a MIDI file could be created, written to disk, and then AIR instructed to play it from its current position.
 
Upvote 0

webboy

Free Member
Feb 27, 2007
198
11
Yes i agree re-inventing the wheel , people in the music industry would record deals and cash, not complex ideas to delay the process.
Not to crush your ideas but look at something that's is already out in the the market and make it better (I call it the follow my leader tip) and you will gut the idea on what people want not need.
 
Upvote 0

Latest Articles

Join UK Business Forums for free business advice