diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix new file mode 100644 index 000000000000..d32f25e50b6b --- /dev/null +++ b/pkgs/tools/misc/timidity/default.nix @@ -0,0 +1,31 @@ +args: with args; +stdenv.mkDerivation { + name = "timidity-2.13.0"; + + src = fetchurl { + url = http://ovh.dl.sourceforge.net/sourceforge/timidity/TiMidity++-2.13.0.tar.bz2; + sha256 = "1jbmk0m375fh5nj2awqzns7pdjbi7dxpjdwcix04zipfcilppbmf"; + }; + + instruments = + fetchurl { + url = http://www.csee.umbc.edu/pub/midia/instruments.tar.gz; + sha256 = "0lsh9l8l5h46z0y8ybsjd4pf6c22n33jsjvapfv3rjlfnasnqw67"; + }; + + buildInputs =[alsaLib]; + + config=./timidity.cfg; + + postInstall = "mkdir -p \$out/share/timidity/; + cp \$config \$out/share/timidity/timidity.cfg; + tar -xf \$instruments -C \$out/share/timidity/; + "; + + meta = { + description = " + TiMidity - software MIDI renderer. +"; + }; +} + diff --git a/pkgs/tools/misc/timidity/timidity.cfg b/pkgs/tools/misc/timidity/timidity.cfg new file mode 100644 index 000000000000..fda915729ae5 --- /dev/null +++ b/pkgs/tools/misc/timidity/timidity.cfg @@ -0,0 +1,369 @@ +############################################################################## +# +# Instrument configuration file for timidity +# +# ---------------------------------------- +# +# Johan Hagman (Johan.Hagman@mailbox.swipnet.se) 26-Sep-96: +# +# This config file is for the uncompressed MIDIA GM patches from +# ftp://archive.cs.umbc.edu/pub/midia/instruments.tar.gz. The +# patches assumed to be installed are +# +# in /usr/local/lib/timidity/patch original piano & guitar +# in /usr/local/lib/timidity/instruments MIDIA patches +# +# ---------------------------------------- +# +# Specify library directory: dir +# +# - Multiple library directories may be given. The ones given last will be +# searched first so you can override them in later configuration files. +# Extra configuration files and MIDI files will also be searched in these +# directories. +# +# Set tone bank or drum set to modify: bank +# drumset +# +# Map program number to patch map: +# +# - If the patch can't be found in the library directories, TiMidity will +# search again with ".pat" appended to the name. +# Programs without a loaded patch will be silent, except that for +# banks/drumsets >0, the corresponding patch in bank/drumset 0 will +# be used (if one exists). +# +# Read another configuration file: source +# + +############################################################################## +# If you've moved things around since compiling, uncomment and edit this to +# point to the library directory: +# + +dir /var/run/current-system/sw/share/timidity/instruments +dir /var/run/current-system/sw/share/timidity/patch + +############################################################################## +# This sets up the default patches in the TiMidity support package +# "timidity-lib-0.1.tar.gz": + +#bank 0 +# 0 acpiano.pat +# 24 nylongt2.pat + +############################################################################## +# If you have Dustin McCartney's "wowpats" patches, you can source the +# config file to set them up for TiMidity: +# +# (Note that later entries in config files always override earlier ones) +# +#source wowpats.cfg +# + +############################################################################## +# If you have Dustin McCartney's GS drum sets, you can source the config +# file to set them up for TiMidity: +# +#source gsdrum.cfg +# + +############################################################################## +# If you have the GUS General MIDI patch set, uncomment the following lines +# and edit the "dir" statement to point to your GUS patch directory. +# +#dir /dos-C/ultrasnd/midi +#source gravis.cfg +# + +############################################################################## +# If you have the Midia patch set, you can source midia.cfg to set them up. +# Note that midia.cfg sources gravis.cfg in turn, since the filenames are +# almost identical. +# +#source midia.cfg +# + +############################################################################## +# A config file for the Midia patch set. The patch filenames are identical +# to the GUS ones, although many of the patches themselves are different. + +#source gravis.cfg + +############################################################################## +# These are the standard patches that come with the GUS, mapped into GM +# programs. +# + +bank 0 + + 0 acpiano + # The Midia set doesn't have a bright piano, + # so we substitute acpiano instead. + #1 britepno + 1 acpiano + 2 synpiano + 3 honky + 4 epiano1 + 5 epiano2 + 6 hrpschrd + 7 clavinet + 8 celeste + 9 glocken + 10 musicbox + 11 vibes + 12 marimba + 13 xylophon amp=200 + 14 tubebell + 15 santur + 16 homeorg + 17 percorg + 18 rockorg + 19 church + 20 reedorg + 21 accordn + 22 harmonca + 23 concrtna + #24 nyguitar + # Replace with the guitar that comes with Timidity + 24 nylongt2 + 25 acguitar + 26 jazzgtr + 27 cleangtr + 28 mutegtr + 29 odguitar + 30 distgtr + 31 gtrharm + 32 acbass + 33 fngrbass + 34 pickbass + 35 fretless + 36 slapbas1 + 37 slapbas2 + 38 synbass1 + 39 synbass2 + 40 violin + 41 viola + 42 cello + 43 contraba + 44 tremstr + 45 pizzcato + 46 harp + 47 timpani + # This sounds pretty dumb with the default panning + 48 marcato pan=center + 49 slowstr + 50 synstr1 + 51 synstr2 + 52 choir + 53 doo + 54 voices + 55 orchhit + 56 trumpet + 57 trombone + 58 tuba + 59 mutetrum + 60 frenchrn + 61 hitbrass + 62 synbras1 + 63 synbras2 + 64 sprnosax + 65 altosax + 66 tenorsax + 67 barisax + 68 oboe + 69 englhorn + 70 bassoon + 71 clarinet + 72 piccolo + 73 flute + 74 recorder + 75 woodflut + 76 bottle + 77 shakazul + 78 whistle + 79 ocarina + 80 sqrwave + 81 sawwave + 82 calliope + 83 chiflead + 84 charang + 85 voxlead + 86 lead5th + 87 basslead + 88 fantasia + 89 warmpad + 90 polysyn + 91 ghostie + 92 bowglass + 93 metalpad + 94 halopad + 95 sweeper + 96 aurora + 97 soundtrk + 98 crystal + 99 atmosphr + 100 freshair + 101 unicorn + 102 echovox + 103 startrak + 104 sitar + 105 banjo + 106 shamisen + 107 koto + 108 kalimba + 109 bagpipes + 110 fiddle + 111 shannai + 112 carillon + 113 agogo + 114 steeldrm + 115 woodblk + 116 taiko + 117 toms + 118 syntom + 119 revcym + 120 fx-fret + 121 fx-blow + 122 seashore + 123 jungle + 124 telephon + 125 helicptr + 126 applause note=69 + 127 pistol + +############################################################################## +# The GUS drum patches + +drumset 0 + + 27 highq + 28 slap + 29 scratch1 + 30 scratch2 + 31 sticks strip=tail + 32 sqrclick + 33 metclick + 34 metbell keep=loop keep=env + 35 kick1 + 36 kick2 + 37 stickrim strip=tail + 38 snare1 + 39 claps + 40 snare2 note=38 + 41 tomlo2 + 42 hihatcl + 43 tomlo1 + 44 hihatpd + 45 tommid2 + 46 hihatop + 47 tommid1 + 48 tomhi2 + 49 cymcrsh1 + 50 tomhi1 + 51 cymride1 + 52 cymchina + 53 cymbell + 54 tamborin + 55 cymsplsh + 56 cowbell + 57 cymcrsh2 + 58 vibslap + 59 cymride2 + 60 bongohi + 61 bongolo + 62 congahi1 + 63 congahi2 + 64 congalo + 65 timbaleh + 66 timbalel + 67 agogohi + 68 agogolo + 69 cabasa strip=tail + 70 maracas + 71 whistle1 keep=loop keep=env + 72 whistle2 keep=loop keep=env + 73 guiro1 + 74 guiro2 + 75 clave + 76 woodblk1 + 77 woodblk2 + 78 cuica1 + 79 cuica2 + 80 triangl1 + 81 triangl2 + 82 shaker + 83 jingles + 84 belltree keep=loop keep=env + 85 castinet + 86 surdo1 + 87 surdo2 + # There's no pistol, but I can't think of a reasonable substitute. + +# Drumset 1 is identical to set 0 +drumset 1 + + 27 highq + 28 slap + 29 scratch1 + 30 scratch2 + 31 sticks strip=tail + 32 sqrclick + 33 metclick + 34 metbell keep=loop keep=env + 35 kick1 + 36 kick2 + 37 stickrim strip=tail + 38 snare1 + 39 claps + 40 snare2 note=38 + 41 tomlo2 + 42 hihatcl + 43 tomlo1 + 44 hihatpd + 45 tommid2 + 46 hihatop + 47 tommid1 + 48 tomhi2 + 49 cymcrsh1 + 50 tomhi1 + 51 cymride1 + 52 cymchina + 53 cymbell + 54 tamborin + 55 cymsplsh + 56 cowbell + 57 cymcrsh2 + 58 vibslap + 59 cymride2 + 60 bongohi + 61 bongolo + 62 congahi1 + 63 congahi2 + 64 congalo + 65 timbaleh + 66 timbalel + 67 agogohi + 68 agogolo + 69 cabasa strip=tail + 70 maracas + 71 whistle1 keep=loop keep=env + 72 whistle2 keep=loop keep=env + 73 guiro1 + 74 guiro2 + 75 clave + 76 woodblk1 + 77 woodblk2 + 78 cuica1 + 79 cuica2 + 80 triangl1 + 81 triangl2 + 82 shaker + 83 jingles + 84 belltree keep=loop keep=env + 85 castinet + 86 surdo1 + 87 surdo2 + +############################################################################## +# End of configuration file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6e9705fb69ab..5b913cfcae1e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3632,9 +3632,9 @@ rec { #enableOfficialBranding = true; }; - #timidity = import ../tools/misc/timidity { - # inherit fetchurl stdenv alsaLib; - #}; + timidity = import ../tools/misc/timidity { + inherit fetchurl stdenv alsaLib; + }; unison = import ../applications/networking/sync/unison { inherit fetchurl stdenv ocaml lablgtk makeWrapper;