{"action":"created","issue":{"url":"https://api.github.com/repos/bmcfee/pyrubberband/issues/4","labels_url":"https://api.github.com/repos/bmcfee/pyrubberband/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/bmcfee/pyrubberband/issues/4/comments","events_url":"https://api.github.com/repos/bmcfee/pyrubberband/issues/4/events","html_url":"https://github.com/bmcfee/pyrubberband/pull/4","id":118368928,"number":4,"title":"replace librosa.load with pysoundfile.read","user":{"login":"faroit","id":72940,"avatar_url":"https://avatars.githubusercontent.com/u/72940?v=3","gravatar_id":"","url":"https://api.github.com/users/faroit","html_url":"https://github.com/faroit","followers_url":"https://api.github.com/users/faroit/followers","following_url":"https://api.github.com/users/faroit/following{/other_user}","gists_url":"https://api.github.com/users/faroit/gists{/gist_id}","starred_url":"https://api.github.com/users/faroit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/faroit/subscriptions","organizations_url":"https://api.github.com/users/faroit/orgs","repos_url":"https://api.github.com/users/faroit/repos","events_url":"https://api.github.com/users/faroit/events{/privacy}","received_events_url":"https://api.github.com/users/faroit/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bmcfee/pyrubberband/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"bmcfee","id":1190540,"avatar_url":"https://avatars.githubusercontent.com/u/1190540?v=3","gravatar_id":"","url":"https://api.github.com/users/bmcfee","html_url":"https://github.com/bmcfee","followers_url":"https://api.github.com/users/bmcfee/followers","following_url":"https://api.github.com/users/bmcfee/following{/other_user}","gists_url":"https://api.github.com/users/bmcfee/gists{/gist_id}","starred_url":"https://api.github.com/users/bmcfee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmcfee/subscriptions","organizations_url":"https://api.github.com/users/bmcfee/orgs","repos_url":"https://api.github.com/users/bmcfee/repos","events_url":"https://api.github.com/users/bmcfee/events{/privacy}","received_events_url":"https://api.github.com/users/bmcfee/received_events","type":"User","site_admin":false},"milestone":null,"comments":9,"created_at":"2015-11-23T12:15:38Z","updated_at":"2015-12-03T14:39:48Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/bmcfee/pyrubberband/pulls/4","html_url":"https://github.com/bmcfee/pyrubberband/pull/4","diff_url":"https://github.com/bmcfee/pyrubberband/pull/4.diff","patch_url":"https://github.com/bmcfee/pyrubberband/pull/4.patch"},"body":"I really like librosa but importing it only for the read/write capability [can make things complicated](https://github.com/bmcfee/librosa/issues/281).  There are other libraries which only focus on audio I/O like [pysoundfile](https://github.com/bastibe/PySoundFile) and therefore have less dependencies and are more flexible. \r\n\r\nThis PR therefore removes librosa dependency and replace it with pysoundfile. I know that pysoundfile is not optimal because it not pure python but since timestretching/pitch shifting is often applied on general audio files a library which supports a large number of input and output formats like portaudio is beneficial. Also to my knowledge there are currently no better solutions for python.\r\n\r\nI've also added a note howto easily install rubberband cli on mac by providing a homebrew recipe "},"comment":{"url":"https://api.github.com/repos/bmcfee/pyrubberband/issues/comments/161658731","html_url":"https://github.com/bmcfee/pyrubberband/pull/4#issuecomment-161658731","issue_url":"https://api.github.com/repos/bmcfee/pyrubberband/issues/4","id":161658731,"user":{"login":"bmcfee","id":1190540,"avatar_url":"https://avatars.githubusercontent.com/u/1190540?v=3","gravatar_id":"","url":"https://api.github.com/users/bmcfee","html_url":"https://github.com/bmcfee","followers_url":"https://api.github.com/users/bmcfee/followers","following_url":"https://api.github.com/users/bmcfee/following{/other_user}","gists_url":"https://api.github.com/users/bmcfee/gists{/gist_id}","starred_url":"https://api.github.com/users/bmcfee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmcfee/subscriptions","organizations_url":"https://api.github.com/users/bmcfee/orgs","repos_url":"https://api.github.com/users/bmcfee/repos","events_url":"https://api.github.com/users/bmcfee/events{/privacy}","received_events_url":"https://api.github.com/users/bmcfee/received_events","type":"User","site_admin":false},"created_at":"2015-12-03T14:39:48Z","updated_at":"2015-12-03T14:39:48Z","body":"This all looks great, thanks!\r\n\r\nI generally stick to nose, but pytest seems fine as well.\r\n\r\nAnd yes, I'll bump up the version number after merging.\r\n\r\nIs there anything else that needs to go into this PR?  If not, let's squash some intermediate commits and merge!"}}