Back in 2012 I manually arranged a single melodic line of one of Bach’s Invention
The original blog post can be found here regards the challenges however the highlights are :
- Read a selected melodic line from a Midi file
- Calculate the various ways of playing each note of the melodic line on banjo (Currently excluding harmonics & alternate tunings however the approach should be able to scale to include at some point)
- Allow the definition of costs to be defined for arrangement decisions such as (Large changes in positions between notes, multiple notes played on a single string [Not desired for Melodic arrangement])
- Apply a cost based evaluation of every alternative arrangements
After much playing about in a number of languages I decided to work in C# due to previous experience with .net & I thought it would be a good opportunity to improve review and improve my development techniques in the language.
Some distractions in the last 2 years have hindered the development (Minecraft mod development, lots of contract work & becoming a father) however I have jumped back into the project and have made some strides in the right direction + learned a lot of interesting things along the way.
Over the next few posts I hope to dive down into some of the details regards my approach to the problem & as I continue to refine and develop the solution (to be honest it is not currently the best example of organised or optimized code!) I may throw some new developments into the discussion.
Project so far can be found at GitHub here
Next post : Where to start & decision trees!