Euterpea 2.0.5 → 2.0.6
raw patch · 161 files changed
+189/−109 lines, 161 filesdep ~containersdep ~stmbinary-addedPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: containers, stm
API changes (from Hackage documentation)
Files
- .git/COMMIT_EDITMSG +0/−3
- .git/FETCH_HEAD +1/−1
- .git/ORIG_HEAD +1/−1
- .git/config +2/−0
- .git/hooks/fsmonitor-watchman.sample +114/−0
- .git/hooks/pre-rebase.sample +4/−4
- .git/hooks/prepare-commit-msg.sample +19/−13
- .git/index binary
- .git/logs/HEAD +2/−13
- .git/logs/refs/heads/master +2/−13
- .git/logs/refs/remotes/origin/HEAD +1/−1
- .git/logs/refs/remotes/origin/master +1/−11
- .git/objects/01/024db2f04aee6d9f60a91476631c20da20a599 binary
- .git/objects/02/38550e704e099e5372a409461f44547ea79b98 binary
- .git/objects/02/727d144f7ab7d1800989ad4c5168028fd03247 binary
- .git/objects/02/f0974406cb38a71a2bdfe8204e87bd0cd03892 +0/−2
- .git/objects/03/5dbf6733fe0e251e1d6763cc2cf1f92ec45b97 binary
- .git/objects/06/8ccf9b2b17b09afeb0945d8eea4e1ec9b5931b binary
- .git/objects/08/3f9c4ba34a66851c760b9606c31278e056e017 binary
- .git/objects/0a/43fe37ff7154b4ae2f767e21231fd4351d9af1 binary
- .git/objects/0a/761e547df00e9dc91da0a5099bf002fe064369 +0/−1
- .git/objects/0d/3b143490c5d1bc828167dea1870dde9cd4a6ed binary
- .git/objects/0e/1c38b33561bb4a50232bd0c9afbdc9aeb4fc76 binary
- .git/objects/0f/da2b43ce06c5f2bd8decb72778ac85da009fc5 binary
- .git/objects/10/940a60108e8947be43e6c5454b36703f3af527 binary
- .git/objects/17/e94f9e475ee049f36dfd19fee87e4e1fa9074a binary
- .git/objects/1a/c4c067ddd2305527b67e2aa9e56b19dfb3c808 binary
- .git/objects/1b/74031fc6b4b883f5b04cd072f3b2d31251ee89 binary
- .git/objects/1c/efbe95003d3a2016fb90f8131040cf38236ef3 binary
- .git/objects/1e/bd6e31aa5d954bcc0ccb6ac76b82ed892efb69 +0/−1
- .git/objects/1f/5f132d6440f505b17add35a81b31f4a6499b06 binary
- .git/objects/24/55b6c3cb801aeac9d6187d5f7b26dd93b946c5 binary
- .git/objects/29/529e1996bba392c92087b0f650514c6399bee7 binary
- .git/objects/2a/9bea58331ca40b8b405f96ea5d3d247e7289f0 binary
- .git/objects/2b/1cbcde96e1c5090959a5874b0c692f87c33105 binary
- .git/objects/2c/39ac3b3d015b52d52ed6c96d86577060ad5735 binary
- .git/objects/2e/6373695d1691df1d2172af4bab2e5d9a2b8cba binary
- .git/objects/2f/6595b291855c3afb62baa5f782de4acc472782 binary
- .git/objects/2f/f6fa63f2e9efaa4004c30e4a5f491bbe2dce79 binary
- .git/objects/33/1bb2029ff2d4b87f05d3b9d0968c29e2a49c95 +0/−1
- .git/objects/37/f795427c8e51b753de9d7ee5b858d9394bb50d binary
- .git/objects/39/463363d990ed242c0be4bcdcd09b6f1f4ddf51 binary
- .git/objects/3a/3f19d55b74d7aec2bd414cc388f0c581d037f5 binary
- .git/objects/3b/5d8b976e4848d4a39e7b0004bbf070df857f56 binary
- .git/objects/3c/4d533b912c3934c8f5d31f74ecd1738a14d1ea binary
- .git/objects/40/f7e1bcd3efe61dbaf46344cc8b4449c05adb1c too large to diff
- .git/objects/41/cd1beb04060f4de58355deec1958f1879357b9 binary
- .git/objects/42/5353d295a19c6a399e02b515a85e0036be7e98 binary
- .git/objects/42/a10db85f8de9ab90bd19b81ee041a157360902 binary
- .git/objects/44/4f7257c52f2671cbe413f4bdcf8ca94ca23263 +0/−5
- .git/objects/44/ab1907cf3f73e27e932b5f9adbc1aff0055bd9 binary
- .git/objects/44/f568871f65e55de26a74570d1c2c7cb3807108 binary
- .git/objects/46/3f7f59329b9a5f8bdf4aa81f7eeffac86a9c79 binary
- .git/objects/46/a33e2dc6a3ec2742374414f9bc62e88613f7b0 binary
- .git/objects/49/cb068c76678f59d50ff054d774c193fb8fb0ee binary
- .git/objects/4c/e69816c36136d41f468bf686466b772a599da1 binary
- .git/objects/4d/e09d19a52859416eebe7337b734228c36eeaea binary
- .git/objects/51/cd2dac70f36461ce75efa6dd04f4191cfb85a2 binary
- .git/objects/51/d7405b33a961325d382e2e1c063fdbbd9476e2 binary
- .git/objects/52/e61beeaa81f6b0c835d6c85fc13eac3efa4370 binary
- .git/objects/56/1a90e094ad0eb02d529258e705dc2eb8567006 binary
- .git/objects/58/0c534bc0e4a8acd956e26c44fdbe771daaeaee binary
- .git/objects/5b/3b5b7a40203f6670d667ccf1490af895b2532e binary
- .git/objects/5f/076dc7ec4d470f347d83ebdac8a52b61089ed6 binary
- .git/objects/64/b3cbe8b2375dc3a504cc49645a7c302d3bb03e binary
- .git/objects/66/ea5696732fb7b770ef550c4058ccfe97df5307 binary
- .git/objects/6a/3307ad57c076c3495045be348827023ba172f3 binary
- .git/objects/75/9312bb8b687b8750bf60d89157b2f743492c0f binary
- .git/objects/77/a0936d0edcb6a31830b464e6cc3eb066beffa9 +0/−1
- .git/objects/78/da1cc02000e99d137b8e57cdac5cfa0e1d61f0 binary
- .git/objects/7d/ee88664cf47d7a9c21afea2d12124baeba342a binary
- .git/objects/7e/4055ac6f1a57043bf851e0ac6895e48701dfb6 binary
- .git/objects/85/d332148dd5d2895c168281bd8f722082fb4642 binary
- .git/objects/89/a356e4e706425e0137fbc4647d4d79f7f79ee2 binary
- .git/objects/89/bb679180ec64b2834e0a662ccc642e384bd1d1 binary
- .git/objects/8a/8fe51cee7f28ddddda4a8ea391fc12c9535fd4 binary
- .git/objects/8b/b417a4b89ec3ecea4151d2ac8e0de8499e1eda binary
- .git/objects/8b/db3e4a0a2d31a39225a6dce662d10354bb03fb binary
- .git/objects/8e/4353c7c431de8e9b96c548c56404725cebf8d7 binary
- .git/objects/8f/a140281ee2f80eea601f0a6e9882faef292c1c binary
- .git/objects/90/7abff0690c0ed58be55989ef2baadd94ec74d6 binary
- .git/objects/91/319c18ed3cd939faff2d9ddece6f22b3f3ff89 binary
- .git/objects/91/7dd66d08b00840b6875838915e705cf274b67b binary
- .git/objects/92/1a567f84fd3c619896da656e8c6215500b0ee8 binary
- .git/objects/92/93d3861772b24047a535829d74e8eeb2b46735 +0/−1
- .git/objects/95/0a22f91621d654a3fc02109d04e693efd601dd binary
- .git/objects/95/7f3714d66fa6bd059f71b91a1e725b1d2e08a5 binary
- .git/objects/98/a4d35831b52864d3c04205efcf32d97fa71141 binary
- .git/objects/9d/13ddca6950d8ab266b2af51b7cfff182897246 binary
- .git/objects/9d/34353ee46571bf1ae1cd47576fd101f90adc6c binary
- .git/objects/9f/66bb45272eb441beabde0c9e3eb8ca0909560e binary
- .git/objects/9f/96656243a99efc634be16ce9bbc37153ddf901 binary
- .git/objects/a1/22b4153c502a959c1781b50c2d7a7c4aee9236 binary
- .git/objects/a2/1ce4cc33277796834cce54e132c455745fdc4a binary
- .git/objects/a3/0a6d1ed203bc1d93004fd1b0dad1d1375bd83a binary
- .git/objects/a3/c414d613cc00d65abcb35bc2becfd8750c1ea2 binary
- .git/objects/a4/5ecb0d529ba48d8eca951b686178162bb56fed binary
- .git/objects/a7/0504f785c4572afa4cf980332fe9b0f0da3245 binary
- .git/objects/a7/759cfaaf8d9cb9689de568e618cfdd0117725c binary
- .git/objects/aa/54f8d378706ccebc9f919eb858343684c0db35 binary
- .git/objects/aa/81ebb1eb76e5ad15763b0d1d4706c5e4e9b390 binary
- .git/objects/ab/968e1f5138259bf03a437adf6aeab81d2305f7 binary
- .git/objects/ab/b50d7aa6249900fe22e523218f814ec5b1c0c8 binary
- .git/objects/ac/4e27878b2d3c880435a26a956fc06090678680 binary
- .git/objects/af/7a81d59cb968562885db868d11c23397fe76c4 binary
- .git/objects/b1/13c29eb1f0e31fabe30a3806d50c684682ce7b binary
- .git/objects/b2/090cd8ae9dc5c97258a85c28874be97a4236fb +0/−2
- .git/objects/b3/318124d370ece16dadd88471b7da08edaec784 binary
- .git/objects/b4/4653878ead3d6a1487197e816f163cfb537ebb binary
- .git/objects/b4/54931a04f9f5ed704efee42f581efd7bab6ea6 binary
- .git/objects/b5/2e7337b8ceb6af3917335286122e5583beb623 binary
- .git/objects/b8/d039f25c74aae5847108e06578fabd6044b08f binary
- .git/objects/b9/3609b90dd7ff47b06e8207118b7ced0423302b binary
- .git/objects/b9/6ef39325e119fad7c502c7e4b75402d16ff52b +0/−3
- .git/objects/ba/79d76d21f4f8570c2291f34c4e6a7c032ba6a6 binary
- .git/objects/bc/44a1c3065f4425ff4bd0bdeea06c9148d54b69 binary
- .git/objects/bc/89ee9a47fb06ef5908208609064789fab994a3 binary
- .git/objects/bd/913f30e7561f8c842deaed7b028823aa822203 +0/−2
- .git/objects/c0/f9a2c81ce54e952d2c2345e8181cbd1fad4e5e binary
- .git/objects/c1/0871f26e532d8caecda1aaa201b3e8dc9e14a9 binary
- .git/objects/c1/ce7c80babe62e96ed94b9f0a408ff1fa1fa8b0 binary
- .git/objects/c2/71a1a77c1de0661216fa046482d63798131c7d binary
- .git/objects/c4/441dcae1ecbcf7950a80c92988f2e2e11fa204 binary
- .git/objects/c6/8c3a9f599e56b40150c0f49e8ee9bd86f3341a binary
- .git/objects/c8/5202f17668f31b25d58e0868e6da237523220b binary
- .git/objects/cd/8008b8f1f22e4ae847ff7bf4bc2b2ef134ef5e binary
- .git/objects/cd/bcf48274b5ddfec1701e1002ccc9a53cfb5757 binary
- .git/objects/ce/8098efc2f498451b940e76ce332d69d455e46a binary
- .git/objects/d2/68f5a8f9eeddb031e901170352e31333b42733 binary
- .git/objects/d2/72327d92a665b172ef4cfaaf7a5c20d5db5b90 binary
- .git/objects/d2/7e2ddbce03ebd0f545186f1a6c4fe4c5320ebc binary
- .git/objects/d2/b862f369c5ac596bf5f12063d78d6b8a6ee225 binary
- .git/objects/d4/e9a886282e7e315d542bc3b0208502d803f9e5 binary
- .git/objects/d6/c9fe4be81a410e45321d76540ae1f4b80b1ba4 binary
- .git/objects/d9/65d92c5335eadacaf9a72230f79d4dff573b27 binary
- .git/objects/db/c4cd70d46015b2e76f28354b4f938d2cd070ff binary
- .git/objects/dc/354a20d31288878085d56b43ebfe3aa820522a binary
- .git/objects/dd/c626e76756b7bec1f4e4ea43cca1c68f354c19 binary
- .git/objects/df/0bbaa2086cf56f42500389a0bff5d532e7fc63 binary
- .git/objects/e3/836fe2cf6a77d8ec3d8a7bbbe3822251fb5ed9 +0/−1
- .git/objects/e4/c9ce6d2f62995a25daa505e8211cf7b355dbf4 binary
- .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 binary
- .git/objects/e8/c5a5240e5527d9c7bd817744a3c0961ca5d8d5 binary
- .git/objects/e9/5fe8336982a811e3ddc1e3fcf64f5a3767ac1b binary
- .git/objects/ee/5e4a1390a0d0f1e9d0ce02680a74f952b32955 binary
- .git/objects/ef/06402d714aa53dae0ba9c74b68d8b4ddea1329 +0/−3
- .git/objects/f0/ad62e4e42168fd3ab7e5945083d01e058c6231 binary
- .git/objects/f2/773f0019369b986b4ff6750d919fca7e9294fa binary
- .git/objects/f5/06729c57606b06dadd36d037346bbaf4cd92bf binary
- .git/objects/f8/214bd47c4577ee917f6f53f61fc6a12422a996 binary
- .git/objects/f9/918de49c23fa56c9da20dcf3fd47ce0cf37b99 binary
- .git/objects/ff/910b318efc137a01b3fd719c0c603c06260935 binary
- .git/objects/pack/pack-31bc5dbdb1840b806280b803877068804417e223.idx binary
- .git/objects/pack/pack-31bc5dbdb1840b806280b803877068804417e223.pack too large to diff
- .git/objects/pack/pack-9b722e175e2c2aebda7ff55a097590198546bb01.idx binary
- .git/objects/pack/pack-9b722e175e2c2aebda7ff55a097590198546bb01.pack too large to diff
- .git/packed-refs +2/−2
- .git/refs/heads/master +1/−1
- .git/refs/remotes/origin/master +1/−1
- Euterpea.cabal +19/−19
- Euterpea/IO/MIDI/Play.lhs +19/−3
@@ -1,3 +0,0 @@-EnableGUI reference removed--Refernece removed to a file that no longer exists in Euterpea2.
@@ -1,1 +1,1 @@-77a0936d0edcb6a31830b464e6cc3eb066beffa9 branch 'master' of https://github.com/Euterpea/Euterpea2+d27e2ddbce03ebd0f545186f1a6c4fe4c5320ebc branch 'master' of https://github.com/Euterpea/Euterpea2
@@ -1,1 +1,1 @@-b93609b90dd7ff47b06e8207118b7ced0423302b+8d88f6d82046f105cdce1bd722df40f1c77c7a7b
@@ -5,6 +5,8 @@ logallrefupdates = true symlinks = false ignorecase = true+[submodule]+ active = . [remote "origin"] url = https://github.com/Euterpea/Euterpea2.git fetch = +refs/heads/*:refs/remotes/origin/*
@@ -0,0 +1,114 @@+#!/usr/bin/perl++use strict;+use warnings;+use IPC::Open2;++# An example hook script to integrate Watchman+# (https://facebook.github.io/watchman/) with git to speed up detecting+# new and modified files.+#+# The hook is passed a version (currently 1) and a time in nanoseconds+# formatted as a string and outputs to stdout all files that have been+# modified since the given time. Paths must be relative to the root of+# the working tree and separated by a single NUL.+#+# To enable this hook, rename this file to "query-watchman" and set+# 'git config core.fsmonitor .git/hooks/query-watchman'+#+my ($version, $time) = @ARGV;++# Check the hook interface version++if ($version == 1) {+ # convert nanoseconds to seconds+ $time = int $time / 1000000000;+} else {+ die "Unsupported query-fsmonitor hook version '$version'.\n" .+ "Falling back to scanning...\n";+}++my $git_work_tree;+if ($^O =~ 'msys' || $^O =~ 'cygwin') {+ $git_work_tree = Win32::GetCwd();+ $git_work_tree =~ tr/\\/\//;+} else {+ require Cwd;+ $git_work_tree = Cwd::cwd();+}++my $retry = 1;++launch_watchman();++sub launch_watchman {++ my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')+ or die "open2() failed: $!\n" .+ "Falling back to scanning...\n";++ # In the query expression below we're asking for names of files that+ # changed since $time but were not transient (ie created after+ # $time but no longer exist).+ #+ # To accomplish this, we're using the "since" generator to use the+ # recency index to select candidate nodes and "fields" to limit the+ # output to file names only. Then we're using the "expression" term to+ # further constrain the results.+ #+ # The category of transient files that we want to ignore will have a+ # creation clock (cclock) newer than $time_t value and will also not+ # currently exist.++ my $query = <<" END";+ ["query", "$git_work_tree", {+ "since": $time,+ "fields": ["name"],+ "expression": ["not", ["allof", ["since", $time, "cclock"], ["not", "exists"]]]+ }]+ END++ print CHLD_IN $query;+ close CHLD_IN;+ my $response = do {local $/; <CHLD_OUT>};++ die "Watchman: command returned no output.\n" .+ "Falling back to scanning...\n" if $response eq "";+ die "Watchman: command returned invalid output: $response\n" .+ "Falling back to scanning...\n" unless $response =~ /^\{/;++ my $json_pkg;+ eval {+ require JSON::XS;+ $json_pkg = "JSON::XS";+ 1;+ } or do {+ require JSON::PP;+ $json_pkg = "JSON::PP";+ };++ my $o = $json_pkg->new->utf8->decode($response);++ if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) {+ print STDERR "Adding '$git_work_tree' to watchman's watch list.\n";+ $retry--;+ qx/watchman watch "$git_work_tree"/;+ die "Failed to make watchman watch '$git_work_tree'.\n" .+ "Falling back to scanning...\n" if $? != 0;++ # Watchman will always return all files on the first query so+ # return the fast "everything is dirty" flag to git and do the+ # Watchman query just to get it over with now so we won't pay+ # the cost in git to look up each individual file.+ print "/\0";+ eval { launch_watchman() };+ exit 0;+ }++ die "Watchman: $o->{error}.\n" .+ "Falling back to scanning...\n" if $o->{error};++ binmode STDOUT, ":utf8";+ local $, = "\0";+ print @{$o->{files}};+}
@@ -58,7 +58,7 @@ not_in_topic=`git rev-list "^$topic" master` if test -z "$not_in_topic" then- echo >&2 "$topic is already up-to-date with master"+ echo >&2 "$topic is already up to date with master" exit 1 ;# we could allow it, but there is no point. else exit 0@@ -88,9 +88,7 @@ exit 1 fi -exit 0--################################################################+<<\DOC_END This sample hook safeguards topic branches that have been published from being rewound.@@ -167,3 +165,5 @@ git rev-list master..topic if this is empty, it is fully merged to "master".++DOC_END
@@ -9,8 +9,8 @@ # # To enable this hook, rename this file to "prepare-commit-msg". -# This hook includes three examples. The first comments out the-# "Conflicts:" part of a merge commit.+# This hook includes three examples. The first one removes the+# "# Please enter the commit message..." help message. # # The second includes the output of "git diff --name-status -r" # into the message, just before the "git status" output. It is@@ -20,17 +20,23 @@ # The third example adds a Signed-off-by line to the message, that can # still be edited. This is rarely a good idea. -case "$2,$3" in- merge,)- /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;+COMMIT_MSG_FILE=$1+COMMIT_SOURCE=$2+SHA1=$3 -# ,|template,)-# /usr/bin/perl -i.bak -pe '-# print "\n" . `git diff --cached --name-status -r`-# if /^#/ && $first++ == 0' "$1" ;;+/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" - *) ;;-esac+# case "$COMMIT_SOURCE,$SHA1" in+# ,|template,)+# /usr/bin/perl -i.bak -pe '+# print "\n" . `git diff --cached --name-status -r`+# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;+# *) ;;+# esac -# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')-# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"+# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')+# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"+# if test -z "$COMMIT_SOURCE"+# then+# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"+# fi
binary file changed (2532 → 2532 bytes)
@@ -1,13 +1,2 @@-0000000000000000000000000000000000000000 23b0fe619f7f91be4123ef976dd9284c11c1093a Donya Quick <donyaquick@gmail.com> 1495035254 -0700 clone: from https://github.com/Euterpea/Euterpea2.git-23b0fe619f7f91be4123ef976dd9284c11c1093a ef06402d714aa53dae0ba9c74b68d8b4ddea1329 Donya Quick <donyaquick@gmail.com> 1496256684 -0500 pull --no-rebase --progress origin: Fast-forward-ef06402d714aa53dae0ba9c74b68d8b4ddea1329 957f3714d66fa6bd059f71b91a1e725b1d2e08a5 Donya Quick <donyaquick@gmail.com> 1499191363 -0400 commit: Misc changes-957f3714d66fa6bd059f71b91a1e725b1d2e08a5 bd913f30e7561f8c842deaed7b028823aa822203 Donya Quick <donyaquick@gmail.com> 1499192677 -0400 commit: Binary encoding fixes.-bd913f30e7561f8c842deaed7b028823aa822203 02f0974406cb38a71a2bdfe8204e87bd0cd03892 Donya Quick <donyaquick@gmail.com> 1503766667 -0400 pull --no-rebase --progress origin: Fast-forward-02f0974406cb38a71a2bdfe8204e87bd0cd03892 b2090cd8ae9dc5c97258a85c28874be97a4236fb Donya Quick <donyaquick@gmail.com> 1503778592 -0400 pull --no-rebase --progress origin: Fast-forward-b2090cd8ae9dc5c97258a85c28874be97a4236fb b3318124d370ece16dadd88471b7da08edaec784 Donya Quick <donyaquick@gmail.com> 1503780940 -0400 commit: Documentation update-b3318124d370ece16dadd88471b7da08edaec784 1ebd6e31aa5d954bcc0ccb6ac76b82ed892efb69 Donya Quick <donyaquick@gmail.com> 1527371401 -0400 commit: HCodecs version bumped.-1ebd6e31aa5d954bcc0ccb6ac76b82ed892efb69 331bb2029ff2d4b87f05d3b9d0968c29e2a49c95 Donya Quick <donyaquick@gmail.com> 1530127543 -0400 pull --no-rebase --progress origin: Fast-forward-331bb2029ff2d4b87f05d3b9d0968c29e2a49c95 1ac4c067ddd2305527b67e2aa9e56b19dfb3c808 Donya Quick <donyaquick@gmail.com> 1530149500 -0400 pull --no-rebase --progress origin: Fast-forward-1ac4c067ddd2305527b67e2aa9e56b19dfb3c808 e4c9ce6d2f62995a25daa505e8211cf7b355dbf4 Donya Quick <donyaquick@gmail.com> 1530468209 -0400 commit: PortMidi version change (0.1.6.1)-e4c9ce6d2f62995a25daa505e8211cf7b355dbf4 b93609b90dd7ff47b06e8207118b7ced0423302b Donya Quick <donyaquick@gmail.com> 1530490248 -0400 commit: EnableGUI reference removed-b93609b90dd7ff47b06e8207118b7ced0423302b 77a0936d0edcb6a31830b464e6cc3eb066beffa9 Donya Quick <donyaquick@gmail.com> 1530492169 -0400 pull --no-rebase --progress origin: Fast-forward+0000000000000000000000000000000000000000 8d88f6d82046f105cdce1bd722df40f1c77c7a7b Donya Quick <donyaquick@gmail.com> 1535156477 -0400 clone: from https://github.com/Euterpea/Euterpea2.git+8d88f6d82046f105cdce1bd722df40f1c77c7a7b d27e2ddbce03ebd0f545186f1a6c4fe4c5320ebc Donya Quick <donyaquick@gmail.com> 1537922762 -0400 pull --no-rebase --progress origin: Fast-forward
@@ -1,13 +1,2 @@-0000000000000000000000000000000000000000 23b0fe619f7f91be4123ef976dd9284c11c1093a Donya Quick <donyaquick@gmail.com> 1495035254 -0700 clone: from https://github.com/Euterpea/Euterpea2.git-23b0fe619f7f91be4123ef976dd9284c11c1093a ef06402d714aa53dae0ba9c74b68d8b4ddea1329 Donya Quick <donyaquick@gmail.com> 1496256684 -0500 pull --no-rebase --progress origin: Fast-forward-ef06402d714aa53dae0ba9c74b68d8b4ddea1329 957f3714d66fa6bd059f71b91a1e725b1d2e08a5 Donya Quick <donyaquick@gmail.com> 1499191363 -0400 commit: Misc changes-957f3714d66fa6bd059f71b91a1e725b1d2e08a5 bd913f30e7561f8c842deaed7b028823aa822203 Donya Quick <donyaquick@gmail.com> 1499192677 -0400 commit: Binary encoding fixes.-bd913f30e7561f8c842deaed7b028823aa822203 02f0974406cb38a71a2bdfe8204e87bd0cd03892 Donya Quick <donyaquick@gmail.com> 1503766667 -0400 pull --no-rebase --progress origin: Fast-forward-02f0974406cb38a71a2bdfe8204e87bd0cd03892 b2090cd8ae9dc5c97258a85c28874be97a4236fb Donya Quick <donyaquick@gmail.com> 1503778592 -0400 pull --no-rebase --progress origin: Fast-forward-b2090cd8ae9dc5c97258a85c28874be97a4236fb b3318124d370ece16dadd88471b7da08edaec784 Donya Quick <donyaquick@gmail.com> 1503780940 -0400 commit: Documentation update-b3318124d370ece16dadd88471b7da08edaec784 1ebd6e31aa5d954bcc0ccb6ac76b82ed892efb69 Donya Quick <donyaquick@gmail.com> 1527371401 -0400 commit: HCodecs version bumped.-1ebd6e31aa5d954bcc0ccb6ac76b82ed892efb69 331bb2029ff2d4b87f05d3b9d0968c29e2a49c95 Donya Quick <donyaquick@gmail.com> 1530127543 -0400 pull --no-rebase --progress origin: Fast-forward-331bb2029ff2d4b87f05d3b9d0968c29e2a49c95 1ac4c067ddd2305527b67e2aa9e56b19dfb3c808 Donya Quick <donyaquick@gmail.com> 1530149500 -0400 pull --no-rebase --progress origin: Fast-forward-1ac4c067ddd2305527b67e2aa9e56b19dfb3c808 e4c9ce6d2f62995a25daa505e8211cf7b355dbf4 Donya Quick <donyaquick@gmail.com> 1530468209 -0400 commit: PortMidi version change (0.1.6.1)-e4c9ce6d2f62995a25daa505e8211cf7b355dbf4 b93609b90dd7ff47b06e8207118b7ced0423302b Donya Quick <donyaquick@gmail.com> 1530490248 -0400 commit: EnableGUI reference removed-b93609b90dd7ff47b06e8207118b7ced0423302b 77a0936d0edcb6a31830b464e6cc3eb066beffa9 Donya Quick <donyaquick@gmail.com> 1530492169 -0400 pull --no-rebase --progress origin: Fast-forward+0000000000000000000000000000000000000000 8d88f6d82046f105cdce1bd722df40f1c77c7a7b Donya Quick <donyaquick@gmail.com> 1535156477 -0400 clone: from https://github.com/Euterpea/Euterpea2.git+8d88f6d82046f105cdce1bd722df40f1c77c7a7b d27e2ddbce03ebd0f545186f1a6c4fe4c5320ebc Donya Quick <donyaquick@gmail.com> 1537922762 -0400 pull --no-rebase --progress origin: Fast-forward
@@ -1,1 +1,1 @@-0000000000000000000000000000000000000000 23b0fe619f7f91be4123ef976dd9284c11c1093a Donya Quick <donyaquick@gmail.com> 1495035254 -0700 clone: from https://github.com/Euterpea/Euterpea2.git+0000000000000000000000000000000000000000 8d88f6d82046f105cdce1bd722df40f1c77c7a7b Donya Quick <donyaquick@gmail.com> 1535156477 -0400 clone: from https://github.com/Euterpea/Euterpea2.git
@@ -1,11 +1,1 @@-23b0fe619f7f91be4123ef976dd9284c11c1093a ef06402d714aa53dae0ba9c74b68d8b4ddea1329 Donya Quick <donyaquick@gmail.com> 1496256683 -0500 fetch --progress --prune origin: fast-forward-ef06402d714aa53dae0ba9c74b68d8b4ddea1329 bd913f30e7561f8c842deaed7b028823aa822203 Donya Quick <donyaquick@gmail.com> 1499192681 -0400 update by push-bd913f30e7561f8c842deaed7b028823aa822203 02f0974406cb38a71a2bdfe8204e87bd0cd03892 Donya Quick <donyaquick@gmail.com> 1503766664 -0400 fetch --progress --prune origin: fast-forward-02f0974406cb38a71a2bdfe8204e87bd0cd03892 b2090cd8ae9dc5c97258a85c28874be97a4236fb Donya Quick <donyaquick@gmail.com> 1503778572 -0400 fetch --progress --prune origin: fast-forward-b2090cd8ae9dc5c97258a85c28874be97a4236fb b3318124d370ece16dadd88471b7da08edaec784 Donya Quick <donyaquick@gmail.com> 1503780945 -0400 update by push-b3318124d370ece16dadd88471b7da08edaec784 1ebd6e31aa5d954bcc0ccb6ac76b82ed892efb69 Donya Quick <donyaquick@gmail.com> 1527371408 -0400 update by push-1ebd6e31aa5d954bcc0ccb6ac76b82ed892efb69 331bb2029ff2d4b87f05d3b9d0968c29e2a49c95 Donya Quick <donyaquick@gmail.com> 1530127542 -0400 fetch --progress --prune origin: fast-forward-331bb2029ff2d4b87f05d3b9d0968c29e2a49c95 1ac4c067ddd2305527b67e2aa9e56b19dfb3c808 Donya Quick <donyaquick@gmail.com> 1530149467 -0400 fetch --progress --prune origin: fast-forward-1ac4c067ddd2305527b67e2aa9e56b19dfb3c808 e4c9ce6d2f62995a25daa505e8211cf7b355dbf4 Donya Quick <donyaquick@gmail.com> 1530468215 -0400 update by push-e4c9ce6d2f62995a25daa505e8211cf7b355dbf4 b93609b90dd7ff47b06e8207118b7ced0423302b Donya Quick <donyaquick@gmail.com> 1530490263 -0400 update by push-b93609b90dd7ff47b06e8207118b7ced0423302b 77a0936d0edcb6a31830b464e6cc3eb066beffa9 Donya Quick <donyaquick@gmail.com> 1530492166 -0400 fetch --progress --prune origin: fast-forward+8d88f6d82046f105cdce1bd722df40f1c77c7a7b d27e2ddbce03ebd0f545186f1a6c4fe4c5320ebc Donya Quick <donyaquick@gmail.com> 1537922666 -0400 fetch --progress --prune origin: fast-forward
binary file changed (23035 → absent bytes)
binary file changed (1341 → absent bytes)
binary file changed (1136 → absent bytes)
@@ -1,2 +0,0 @@-xÁn0D{ÎWøCVÕöÐcÁ$F-·_´ç^zÑhfÒ2Ï£uøb*äF;anI£ú:äÐP|2£: nMA»Ú5¶8qCYEs<fò"LDè<ì¾lr\òýu-j{U«Ó¼AÐÇáDïLÿ˹®Z²tÀcÍbº»?2ÎGçÆ*6öã4Ú?£Ýá]öO&øÄÎÊ\QUWî¬^]
binary file changed (137 → absent bytes)
binary file changed (11835 → absent bytes)
binary file changed (6897 → absent bytes)
binary file changed (13537 → absent bytes)
@@ -1,1 +0,0 @@-x+)JMU0´0f040031QðMÌÌÓËÈdH{6Xûö÷¡<gþM¿Ì¬$añkÂg®EíÙ}hßù¥<r *SKJôR+R¾?Üsùý3Ù]_]Ît»xº-¢(£aÕøÍùO|âùk¥?<ûµùr¶o"²Ô¢âÌü<ÐmO7H½:yM¢6¾ZíîänGO×
binary file changed (1133 → absent bytes)
binary file changed (244 → absent bytes)
binary file changed (82 → absent bytes)
binary file changed (901 → absent bytes)
binary file changed (10296 → absent bytes)
binary file changed (251 → absent bytes)
binary file changed (83 → absent bytes)
binary file changed (187 → absent bytes)
@@ -1,1 +0,0 @@-xAnà E»æsZ`C¤¨ª.²l0ÀТqm\5·¯s îþûú_z¡Õ;(gúÊÆZÅÉF9z´£É¡×Mætòr<wðZ£Ce¢¶ã¹sÆ¢·¤ãH¬3öþÕVxkóàcÏáçøïG~ý¬ËZ}ÕDxFJq´cçÿ½ÅõÒ" ~xÝrÁïuá8qiu¡}.¹ß!å_Há¶ï úÁÜ`5?³¯\s
binary file changed (243 → absent bytes)
binary file changed (36 → absent bytes)
binary file changed (155 → absent bytes)
binary file changed (513632 → absent bytes)
binary file changed (5567 → absent bytes)
binary file changed (absent → 5038 bytes)
binary file changed (487 → absent bytes)
binary file changed (4179 → absent bytes)
binary file changed (244 → absent bytes)
@@ -1,1 +0,0 @@-xAnÂ0E»ö)æ qìØ©ªXpz±=Q1 ³àö W`÷ßôËÜÚÔapö«¯" CN-¹@RÈ^5Ä+YÒÂQh ¯l^åÑ!D"Ä>jÆ :¦S@Âàc"åLäÙÞúm^á<?^m*ð]ßð|ïÓµñt?¹ý¢£%8 G4»Ý?vù¬6¿Âµ lKå.Õü*I
binary file changed (244 → absent bytes)
binary file changed (13697 → absent bytes)
binary file changed (272 → absent bytes)
binary file changed (1152 → absent bytes)
binary file changed (82 → absent bytes)
file too large to diff
binary file changed (3984 → absent bytes)
binary file changed (271 → absent bytes)
binary file changed (1133 → absent bytes)
@@ -1,5 +0,0 @@-x¥½-Â0FówlA--:hÁ-Ω¹j IJ~,¾½ihÁ19'_òÝÔªa¹ZÌb®AØ9ºEe¶q+À̶ÔðKÅo¹fîU¨1éôl1æeä¦#Jz:Í-éc¼:(-ükSèî¨.Z¥íoùQ¿e¦yh5r ]y÷«¤ïiÖfÞ ÍMê7t(_åöRà\(gsî?x8ÏÀ|2ûiüû²_=LÂ
binary file changed (75 → absent bytes)
binary file changed (4340 → absent bytes)
binary file changed (272 → absent bytes)
binary file changed (13286 → absent bytes)
binary file changed (1138 → absent bytes)
binary file changed (244 → absent bytes)
binary file changed (5445 → absent bytes)
binary file changed (8785 → absent bytes)
binary file changed (absent → 1125 bytes)
binary file changed (262 → absent bytes)
binary file changed (521 → absent bytes)
binary file changed (4780 → absent bytes)
binary file changed (9778 → absent bytes)
binary file changed (107 → absent bytes)
binary file changed (100 → absent bytes)
binary file changed (1919 → absent bytes)
binary file changed (39242 → absent bytes)
binary file changed (136 → absent bytes)
@@ -1,1 +0,0 @@-xKnÃ0D»Ö)xÔÏ"È"ÈLnZQã(zûÚWÈnæó0¥Õ:wp~øè«*x(Çà¨$)zÑ,¤9Å$ÙçÀQÌï¸êg?`æ"4MMÉÚÄTT08ïѱý»pi·¿®Ï¹üÀ§ìå¾çóWçåXZ=Cv68`@4Ý>v}omd~tÚ"`ÕÚ^*æ²K
binary file changed (3363 → absent bytes)
binary file changed (272 → absent bytes)
binary file changed (6252 → absent bytes)
binary file changed (52183 → absent bytes)
binary file changed (absent → 82 bytes)
binary file changed (136 → absent bytes)
binary file changed (136 → absent bytes)
binary file changed (7569 → absent bytes)
binary file changed (1554 → absent bytes)
binary file changed (26705 → absent bytes)
binary file changed (83 → absent bytes)
binary file changed (21992 → absent bytes)
binary file changed (4886 → absent bytes)
binary file changed (6403 → absent bytes)
binary file changed (16081 → absent bytes)
@@ -1,1 +0,0 @@-x+)JMU06´d040031Qp(È/*ñÍLÉtËÌIÕËÉ(f[ñ«Ùä¶|>yâw}éÖKæPÕnEù¹ µ`uJ³3å÷·ªÝñsxÛý1ÍI¾*4uF` ÓýÕ?³E¯Üüywñ¬#IÛVï*tOÍK-JÌ ´ú¾ qYjcY©Õ²9;ô>vPªôu-KÍ+~TÑ¥å¶SÏ·g~+ÖL ©:ÎÓ¬ª{øó¿yåxiMïÏyr· ªr+ÁjËr+]n·¼ýÞþbKí¦¤ +/¨|¸GsgØý1þu>qþû;Yôó¥Âvà¨
binary file changed (82 → absent bytes)
binary file changed (238 → absent bytes)
binary file changed (159997 → absent bytes)
binary file changed (6754 → absent bytes)
binary file changed (80 → absent bytes)
binary file changed (1137 → absent bytes)
binary file changed (7599 → absent bytes)
binary file changed (17388 → absent bytes)
binary file changed (94853 → absent bytes)
binary file changed (662399 → absent bytes)
binary file changed (1514 → absent bytes)
binary file changed (1813 → absent bytes)
binary file changed (absent → 296 bytes)
binary file changed (297 → absent bytes)
binary file changed (42041 → absent bytes)
binary file changed (1137 → absent bytes)
binary file changed (73 → absent bytes)
binary file changed (4382 → absent bytes)
binary file changed (4195 → absent bytes)
binary file changed (4867 → absent bytes)
binary file changed (136 → absent bytes)
@@ -1,2 +0,0 @@-xA E]s-. Zhb/2CtQ-5éí½ÿÿâ½äó4¯¦ÅSE4a±ëM:°hc(Ç´§DÙ÷ªÒ,¥i°ïô17´ÓY'ÁÿÄ«hmÏiÖi*éëQ÷½H[ª\öqÓ¦ô> óú@ññ®É¿zH¤ð¦×¨É¢¾üGÿ
binary file changed (169 → absent bytes)
binary file changed (83 → absent bytes)
binary file changed (243 → absent bytes)
binary file changed (8653 → absent bytes)
binary file changed (1161 → absent bytes)
binary file changed (216 → absent bytes)
@@ -1,3 +0,0 @@-xU]o7ì3žÅôá)R8E&bJëDMýÀá×wyäåHZ ßYäÆi¨#ow8;»KU.Tôôù?ýðÑO§³Ù3µÒ1Q½±lÎèäÙô·ì¶ÓÓ§ÏÕWÑ&>£6¥þl>ßl63Îõ¬¢kTÆþg\ükV;cÌD;|¾3`º¨àÁ~§²:LG&X¨'ëë9ö>Ò9ç<5¦O´Q¯:s!"[Çò îGòV}¨æ'×;̲7ÍĨ¬Ç·ê[qÈ!Ç·MúÑPê×Ú0Ä38]êìè"}Åb°5½nÙ7X\hKGòúV6cã<ø¦wÙÖ·$KíéÊúÐÚL_!Roµõ _Ôéñ³÷Ïâý²é´uâ_Zì3N6&ðÊOcÏ5J¦&§}uÃÄ]ÅÆ°!ëÁ,Þ²stR@éºá0pd=ÔíØäZ'â´7dø]è;öiBý¾!U Ô§N,m´×î°QÅ4èZâhöL9Öìö;ÜNaàâ~ë½F\¦ /Ëä´£>}IéH ¿r¤¯ÂÓ}ïìy,ÚXÃE»4äÎ׫ Ål®£[Û´û¨jõ"r6-¥´kÂ`SÛAJ9: C$Ôem|A5{:øû¹n ¸z»<_¾(:¸°9h ¢zÍ1Bvð(n}j{©<¤Î"RÛGJ f(C(ÝÇ)°!i´Òv%RËÚLùàûJ²¯ÅJÑÑ1>¨zp¬ðëªn.ª76]äîöwò,ÛÎV¶ãÅqs5@ËôüSõ*7'ÙR±5JX`¾mÈÎPŨáírAEuabcÌ(½ð?Ï.J]~XèýâÝÅúÏ5]-±zµ åßÿx¿8èAÑ{ÿà 檳I(¤v¹iøÃ( úÑîvнZ@{´C[\£ØcKh;4ígU:«äGJáÑÝ¡þëò8L£b´sã¹¶ÏØ©OSÊMÆ÷ºCqÇHÞté-Jd¬¡ý¾ÿô74>B¦
binary file changed (24169 → absent bytes)
binary file changed (244 → absent bytes)
binary file changed (270 → absent bytes)
@@ -1,2 +0,0 @@-xaj!FóÛSÌwÔB¥ÈFSIVÛÍí\¡ÿ¾÷àÁú²Ôf-»±@v)¡(32¡²Áì%Í â¬#F&õë´Áú2y¤ì\a³¶¡xÅ1Ñ3[ÅÛøî+|õö`8o5]áßðûÞ§ËÂõ¶O}9Ró>4i^öõqÈÿjõY¯z®í¥þÉ}¯ínL
binary file changed (355 → absent bytes)
binary file changed (4866 → absent bytes)
binary file changed (1137 → absent bytes)
binary file changed (142866 → absent bytes)
binary file changed (15615 → absent bytes)
binary file changed (715 → absent bytes)
binary file changed (8225 → absent bytes)
binary file changed (absent → 136 bytes)
binary file changed (244 → absent bytes)
binary file changed (1549 → absent bytes)
binary file changed (82 → absent bytes)
binary file changed (5131 → absent bytes)
binary file changed (absent → 416 bytes)
binary file changed (3975 → absent bytes)
binary file changed (244 → absent bytes)
binary file changed (244 → absent bytes)
binary file changed (108550 → absent bytes)
binary file changed (297 → absent bytes)
binary file changed (244 → absent bytes)
binary file changed (absent → 242 bytes)
binary file changed (23317 → absent bytes)
@@ -1,1 +0,0 @@-xSÁnÓ@@"õqé66 ¤,5©4"=õ²ØÉ&]ÕÃzSÑ=q@|¸ò|0»öÆ6J9@VÚ7Oo_v=8Éb×ëööaòùèõøoPd¤ÁWïÈ$QM n£ÏÜzmá`øÄyn¿Z'ê¥=~Á^×VWgý»{ÞóàVÖø5Dµâq khÞ-ùV_.%íú¤Cz»a¾ßª~ØúÏ..ÞŬÇä(åaL¯Ü>ñ_Qp±71Þ2Hß½àvVh·O0^7¨³BdÊ^?Ìitn6ñAõùV£÷ú½-ûèR¥S½ï×&À¨»]zÏõwZëSëwÛhý²n¶zR[ÎmK7²WVú>z(q"1Ì÷©4ñuÚ½ÒdÈèo]i¾!ã6íÂ9ëü¢ÁP¬Ì7"%DdPö#¥¼÷¯#Y')ÍåϹ¤vHTê+ÞQ¼§ÒbNÕUiyx¬¸©ÿ;NÕD£l²LXÆå«¡ý·ûÔÒqåKÁ6géoúÞæï¸rUº<¥øoWüärÁrz"ÞD)Ñq6§|>Í`ªèH%ú ÈNÉ
binary file changed (222 → absent bytes)
binary file changed (15 → absent bytes)
binary file changed (6909 → absent bytes)
binary file changed (1161 → absent bytes)
binary file changed (242 → absent bytes)
@@ -1,3 +0,0 @@-x±NÄ0D©ý[BAd'qKAÅ/X¯×$RbÛÓý=ÉÁPÍJ3³ó(.ËT éä]IÌ@ÎoºovÎ3©^*VRÖDdP7äîu/VL-Ô;e|ï²ÜªºaoúÎ9S-)EJ˸®O7Ù¾_L¸rµÏ Z£»Fk9À£ÔR-ºÑþoO¼1®°qÊS@#/v§ÓAþçfÆ#âpã Üÿv2§ÉMïÕ<fÀà¡Å¯8?TðY^¡ =ÆÒ÷¡%nû3â¯g7ÅjÌøKÊxR
binary file changed (7502 → absent bytes)
binary file changed (243 → absent bytes)
binary file changed (136 → absent bytes)
binary file changed (158 → absent bytes)
binary file changed (244 → absent bytes)
binary file changed (27874 → absent bytes)
binary file changed (absent → 12020 bytes)
file too large to diff
binary file changed (8212 → absent bytes)
file too large to diff
@@ -1,2 +1,2 @@-# pack-refs with: peeled fully-peeled -23b0fe619f7f91be4123ef976dd9284c11c1093a refs/remotes/origin/master+# pack-refs with: peeled fully-peeled sorted +8d88f6d82046f105cdce1bd722df40f1c77c7a7b refs/remotes/origin/master
@@ -1,1 +1,1 @@-77a0936d0edcb6a31830b464e6cc3eb066beffa9+d27e2ddbce03ebd0f545186f1a6c4fe4c5320ebc
@@ -1,1 +1,1 @@-77a0936d0edcb6a31830b464e6cc3eb066beffa9+d27e2ddbce03ebd0f545186f1a6c4fe4c5320ebc
@@ -1,13 +1,13 @@ name: Euterpea -version: 2.0.5 +version: 2.0.6 Cabal-Version: >= 1.8 license: BSD3 license-file: License copyright: Copyright (c) 2008-2017 Euterpea authors -category: Sound +category: Sound, Music stability: experimental build-type: Custom -author: Paul Hudak <paul.hudak@yale.edu>, +author: Paul Hudak <paul.hudak@yale.edu>, Eric Cheng <eric.cheng@aya.yale.edu>, Hai (Paul) Liu <hai.liu@aya.yale.edu>, Donya Quick <donyaquick@gmail.com>, @@ -17,15 +17,15 @@ homepage: http://www.euterpea.com synopsis: Library for computer music research and education description: - Euterpea is a domain-specific language embedded in Haskell for + Euterpea is a domain-specific language embedded in Haskell for computer music research, education, and development, providing both note-level and signal-level abstractions. It is a descendant of Haskore and HasSound, and is intended for both educational purposes - as well as serious computer music applications. Euterpea is a - wide-spectrum DSL, suitable for high-level music representation, - algorithmic composition, and analysis; mid-level concepts such as + as well as serious computer music applications. Euterpea is a + wide-spectrum DSL, suitable for high-level music representation, + algorithmic composition, and analysis; mid-level concepts such as MIDI; and low-level audio processing, sound synthesis, and instrument - design. + design. extra-source-files: ReadMe.txt @@ -33,7 +33,7 @@ hs-source-dirs: . ghc-options: -O2 -funbox-strict-fields -fexcess-precision extensions: CPP - exposed-modules: + exposed-modules: Euterpea, Euterpea.Music, Control.Arrow.ArrowP, @@ -46,7 +46,7 @@ Euterpea.IO.Audio.CSound, Euterpea.IO.Audio, Euterpea.IO.MIDI.MEvent, - Euterpea.IO.MIDI.MidiIO, + Euterpea.IO.MIDI.MidiIO, Euterpea.IO.MIDI.FromMidi, Euterpea.IO.MIDI.FromMidi2, Euterpea.IO.MIDI.GeneralMidi, @@ -57,15 +57,15 @@ Euterpea.IO.MIDI other-modules: build-depends: - base >= 4 && < 5, - arrows >= 0.4 && < 0.5, - array>=0.5.0.0 && <=0.6, - deepseq>=1.3.0.2 && <=1.5, + base >= 4 && < 5, + arrows >= 0.4 && < 0.5, + array>=0.5.0.0 && <=0.6, + deepseq>=1.3.0.2 && <=1.5, random>=1.0.1.1 && <=1.2, - PortMidi==0.1.6.1, - HCodecs == 0.5.1, - stm >= 2.4 && <2.5, - containers>=0.5.5.1 && <0.6, + PortMidi==0.1.6.1, + HCodecs == 0.5.1, + stm >= 2.4 && <2.5, + containers>=0.5.5.1 && <0.6, bytestring>=0.10.4.0 && <= 0.10.9, - heap >= 1.0 && < 2.0, + heap >= 1.0 && < 2.0, ghc-prim
@@ -115,10 +115,26 @@ > threadDelay $ round (closeDelay p * 1000000) > terminateMidi > return () where -> resolveOutDev Nothing = unsafeOutputID 0 -> resolveOutDev (Just x) = x > handleCtrlC :: IO a -> IO a -> handleCtrlC op = onException op (stopMidiOut (resolveOutDev $ devID p) 16) +> handleCtrlC op = do +> dev <- resolveOutDev (devID p) +> onException op (stopMidiOut (dev) 16) + +Bug fix on Sept 24, 2018: on Mac, the default output device may not be zero. +In rare cases on Mac, there are outputs but the default ID is Nothing, but +in these cases the default always seems to be the first output in the list. + +> resolveOutDev Nothing = do +> outDevM <- getDefaultOutputDeviceID +> (ins,outs) <- getAllDevices +> let allOutDevs = map fst outs +> let outDev = case outDevM of +> Nothing -> +> if null allOutDevs then error "No MIDI outputs!" +> else head allOutDevs +> Just x -> unsafeOutputID x +> return outDev +> resolveOutDev (Just x) = return x > stopMidiOut :: OutputDeviceID -> Channel -> IO () > stopMidiOut dev i = if i<0 then threadDelay 1000000 >> terminateMidi else do