{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/learning-to-listen-read-and-follow-score","title":"Learning to Listen, Read, and Follow: Score Following as a Reinforcement Learning Game","arxiv_id":"1807.06391","date":"2018-07-17","proceeding":null,"authors":["Matthias Dorfer","Florian Henkel","Gerhard Widmer"],"abstract":"Score following is the process of tracking a musical performance (audio) with\nrespect to a known symbolic representation (a score). We start this paper by\nformulating score following as a multimodal Markov Decision Process, the\nmathematical foundation for sequential decision making. Given this formal\ndefinition, we address the score following task with state-of-the-art deep\nreinforcement learning (RL) algorithms such as synchronous advantage actor\ncritic (A2C). In particular, we design multimodal RL agents that simultaneously\nlearn to listen to music, read the scores from images of sheet music, and\nfollow the audio along in the sheet, in an end-to-end fashion. All this\nbehavior is learned entirely from scratch, based on a weak and potentially\ndelayed reward signal that indicates to the agent how close it is to the\ncorrect position in the score. Besides discussing the theoretical advantages of\nthis learning paradigm, we show in experiments that it is in fact superior\ncompared to previously proposed methods for score following in raw sheet music\nimages.","url_abs":"http://arxiv.org/abs/1807.06391v1","url_pdf":"http://arxiv.org/pdf/1807.06391v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"learning-to-listen-read-and-follow-score","repo_url":"https://github.com/CPJKU/score_following_game","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"decision-making","task_name":"Decision Making"},{"task_slug":"deep-reinforcement-learning","task_name":"Deep Reinforcement Learning"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"sequential-decision-making","task_name":"Sequential Decision Making"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1807.06391","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1807.06391"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/CPJKU/score_following_game","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":9},"by_repo_kind":{"official":{"samples":10,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"f9e64946b23edb51","entry":"num_flat_features","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/agents/networks_utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/agents/networks_utils.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f9e64946b23edb51"}},{"code_sha256_prefix":"6cbd8b84ce428b76","entry":"cast_optim_params","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/agents/optim_utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/agents/optim_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6cbd8b84ce428b76"}},{"code_sha256_prefix":"5b3e31752a76d9a2","entry":"get_network","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/agents/networks_utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/agents/networks_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5b3e31752a76d9a2"}},{"code_sha256_prefix":"55f01012b2824dbb","entry":"get_opencv_bar","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"55f01012b2824dbb"}},{"code_sha256_prefix":"4c12014a9ee59130","entry":"get_optimizer","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/agents/optim_utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/agents/optim_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4c12014a9ee59130"}},{"code_sha256_prefix":"c01971874b5456bd","entry":"initialize_trained_agent","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/experiment_utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/experiment_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c01971874b5456bd"}},{"code_sha256_prefix":"4228790a0a1e15a5","entry":"prepare_grad_for_render","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/integrated_gradients.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/integrated_gradients.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4228790a0a1e15a5"}},{"code_sha256_prefix":"2d17361dd306dde2","entry":"setup_agent","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/experiment_utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/experiment_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2d17361dd306dde2"}},{"code_sha256_prefix":"bd6f4051caf6272a","entry":"setup_logger","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/experiment_utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/experiment_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bd6f4051caf6272a"}},{"code_sha256_prefix":"60481c7fa3a49bcc","entry":"write_video","repo":"CPJKU/score_following_game","repo_kind":"official","path":"score_following_game/utils.py","file_url":"https://github.com/CPJKU/score_following_game/blob/HEAD/score_following_game/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"60481c7fa3a49bcc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}