I have been wasting this winter writing software. It is reasonably stable but needs some more effort by experts in various fields. It also needs thorough testing. Collaborators and testers would be very welcome.
What does it do? Well, the technical stuff first, because I am proud of it, but if you hate the techy stuff, then skip past the table and go to the summary:
-
- Analyses music input from microphone or recording The software likes simple sounds like whistle or fiddle, but cannot cope with complex noise like banjo, squeezey box. Can you help me train it to like these instruments? I am not sure that this is technically feasible, but I am willing to be proved wrong
- Renders the music as ABC The software can detect pitch and relative duration, and the ABC generates reasonable sounds when put through a MIDI generator. The ABC looks a mess though. The software can’t spot where bars begin or end, nor can it spot the emphasis on notes that give the rhythm. I am sure that this should be amenable to analysis, but it is beyond me. Likewise assigning key/mode.
- Takes and stores samples of the recorded sounds at each pitch for use in further processing. Some fast compression/decompression algorithms would help immensely here.
- Performs pattern substitution on the ABC This is where I really wanted to get to. Given a tune with two consecutive notes of the same pitch the software can automatically add a ‘cut’ by applying a brief snippet of a different note from its sample store. It actually gets a bit more involved than this - using the attack phases of the stored ‘grace note’ and the main note.
- Accepts ‘pattern substitution templates’ These define which patterns the software should detect and what substitutions it should make. There is plenty of scope in the substitution language to allow for random variations, to prevent too many uses of the same ornamentation. Different sets of rules can be stored and used.
- Can (on a fast processor/sound card) analyse, pattern-match, and decorate real-time!
Summary
Play your whistle into a microphone connected to the running software and hear it add cuts, taps and rolls in real time. This is really quite spooky - and far better than I thought possible for my first beta version. Take the standard template, play a simple tune through it, and out comes an version of you playing with added ornaments. The level of ornamentation is selectable, from very little to far too much.
Now, with some careful construction of substitution-rules, I reckon we could get good emulations of various styles of play. I have recorded a simple whistle passage, and played it through three different substitution rules, and got three plausible but very different ornamentation styles.
The software is written in Pure Java (platform independent, free), using Eclipse (platform independent, free) and will probably be coordinated via SourceForge.net.
Now, I reckon there will be lots of takers for this, and I don’t want the project growing too large too soon, so please PM me quickly stating whether you want to be a tester or a collaborator. If the latter, which bit do you want to help with?