{"id":33226231,"url":"https://github.com/jvbalen/catchy","last_synced_at":"2025-11-21T10:01:18.472Z","repository":{"id":88619658,"uuid":"56095974","full_name":"jvbalen/catchy","owner":"jvbalen","description":"Python tools for the corpus analysis of popular music.","archived":false,"fork":false,"pushed_at":"2016-12-22T03:50:44.000Z","size":581,"stargazers_count":20,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-22T12:32:50.290Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jvbalen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-04-12T20:37:17.000Z","updated_at":"2023-12-21T20:40:52.000Z","dependencies_parsed_at":"2024-01-07T21:52:59.712Z","dependency_job_id":"5dc0d436-4780-413d-b3e5-7ab064dd861c","html_url":"https://github.com/jvbalen/catchy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jvbalen/catchy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvbalen%2Fcatchy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvbalen%2Fcatchy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvbalen%2Fcatchy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvbalen%2Fcatchy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jvbalen","download_url":"https://codeload.github.com/jvbalen/catchy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvbalen%2Fcatchy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285595606,"owners_count":27198560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-21T02:00:06.175Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-16T16:00:48.815Z","updated_at":"2025-11-21T10:01:18.460Z","avatar_url":"https://github.com/jvbalen.png","language":"Python","readme":"## CATCHY\n\n### Corpus Analysis Tools for Computational Hook discovery\n\nPython tools for the corpus analysis of popular music recordings. The tools can be used separately or together. I.e.: you can use your own psychoacoustic features and still use the other modules. Note that to use all scripts, it is assumed that audio files come pre-segmented (e.g., into structural sections).\n\nThe base feature modules' requirements include Matlab, Librosa and VAMP.\n\n### Structure\n\nExtracting catchy features from a folder of files involves three steps (look for the `eurovision_demo.ipynb` ipython notebook for a more detailed demo):\n\n1. Base feature extraction\n\n\tHere, basic, familiar feature time series are extracted. The toolbox currently implements (wrappers for) MFCC, chroma, melody and perceptual feature extraction. (Rhythm features under development in branch `rhythm`.)\n\tThis part of the toolbox relies on a lot of external code, but it's also easy to work around: if you want to use other features, just save them to a set of csv files (1 per song section--see below) in some folder (1 per feature).\n\n2. Pitch (and rhythm) descriptor extraction\n\n\tThis part computes mid-level pitch descriptors from chroma and/or melody information computed in step one. Essentially an implementation of several kinds of audio bigram descriptors. See also [1] and [2].\n\n3. Feature transforms\n\n\tCompute 'first' and 'second order' aggregates of any of the features computed in step 1 and step 2. See [2].\n\nThe above three steps correspond to the three columns in below diagram.\n\n![Module Diagram](https://github.com/jvbalen/catchy/blob/master/catchy%20modules.png)\n\n### Known issues:\n\n- i/o currently very conservative--you may have to do your own mkdirs when writing features.\n\n- Matlab path handling hasn't been checked on other machines than mine.\n\nHopefully these will be addressed soon.\n\n### License\n\nMatlab scripts under GNU Public license; everything else, see LICENSE.\n\nIf you use this, feel free to refer to [2].\n\n[1] Van Balen, J., Wiering, F., \u0026 Veltkamp, R. (2015). Audio Bigrams as a Unifying Model of Pitch-based Song Description. In Proc. 11th International Symposium on Computer Music Multidisciplinary Research (CMMR). Plymouth, United Kingdom.\n\n[2] Van Balen, J., Burgoyne, J. A., Bountouridis, D., Müllensiefen, D., \u0026 Veltkamp, R. (2015). Corpus Analysis Tools for Computational Hook Discovery. In Proc. 16th International Society for Music Information Retrieval Conference (pp. 227–233). Malaga, Spain.\n\nHome page: [http://www.github.com/jvbalen/catchy](http://www.github.com/jvbalen/catchy)\n\n(C) 2016 Jan Van Balen ([@jvanbalen](https://twitter.com/jvanbalen))","funding_links":[],"categories":["Audio Related Packages"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjvbalen%2Fcatchy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjvbalen%2Fcatchy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjvbalen%2Fcatchy/lists"}