4 ms·
It's mostly manual work at this point, although it's not too bad because of some javascript that I wrote that makes it really straightforward to partition a sco
by siliconviking 13y ago
It's mostly manual work at this point, although it's not too bad because of some javascript that I wrote that makes it really straightforward to partition a score into time intervals...
And yes, I might actually write a blog post about this so make sure you have signed up on the site :)
- drhodes 13y agoFirst off, really nice job. Secondly, if you're not aware, audacity has a segment labeling feature - (I'm just throwing this out here because it might be easier than what you're doing). Select time boundaries and [ctrl+b] will label it. Labels can snap to abut each other. Each label might represent the span of a beat. The labels can be exported as an easy to parse .txt file and can be used to determine cursor position as a function of time.
- siliconviking 13y agoThanks! As for Audacity, can it recognize the beats automatically?
- eamonnbell 13y agoSonic Visualiser [1] can---or, at least, it makes an attempt to. It's a highly useful tool for the analysis of music recordings. I, too, am highly interested in the extent to which matching recordings to scores can be automated, as are a lot of music theorists. I hope you can publish a write-up of the process for syncing the audio and the score. If there is a significant human spend required, then developing an open tool for community contributions would greatly speed up the creation of a corpus of scores. [1] http://www.sonicvisualiser.org/ http://www.sonicvisualiser.org/
- siliconviking 13y agoI think a good case could be made for such an automatic system... although it's probably a somewhat too complex / labor intensive task at this particular stage for this particular project! As for the write-up however, the process I currently use is very simple (and it's pretty much all "manual labor"). To partition a score into time intervals, I have a couple of lines of javascript that record the time the audio is at, together with where in the score I click (and where I aim to click on the note currently being played). It doesn't take too much time and effort to partition a score this way actually, unless the piece is slightly complex. Beethoven's 5th took a little more effort than Air for example ;) Hope this helps for now! And I am planning to publish a more detailed write up of everything, so please stay expect that in the next month or so (easiest to hear about via Twitter or by submitting your email to the site). Thanks for your interest and suggestions!
- jay-anderson 13y agoIf you're not already you can extract the timing information from lilypond directly. It takes a bit of effort, but is worth it: https://github.com/aspiers/ly2video/blob/master/ly2video.py https://github.com/aspiers/ly2video/blob/master/ly2video.py.
- siliconviking 13y agoVery interesting - I wasn't aware of this! Looks like this could provide a solid first cut to the partitioning process. Thanks for recommending...
- jay-anderson 13y agoI wouldn't recommend using this structure directly since it requires the project to have a specific structure. There are some scheme callbacks in the writeSpaceTimeDumper function which you can use directly to extract the information that you can use. I've used a similar process to generate a video with a score: http://www.youtube.com/watch?v=OnoBD_QSskE http://www.youtube.com/watch?v=OnoBD_QSskE.
- siliconviking 13y agoOK, thank you for letting me know! Just checked out your video + followed you on youtube! Looks very cool as well!