[linux-audio-dev] Patches for TiMidity++

Peter L Jones peter at drealm.org.uk
Wed Oct 2 14:50:01 UTC 2002


On Wednesday 02 Oct 2002 17:44, Takashi Iwai wrote:
> At Fri, 27 Sep 2002 22:57:15 +0100,
>
> Peter L Jones wrote:
> > Hi all,
> >
> > I've tried to subscribe to Eric A Walsh's TiMidity mailing list but it
> > doesn't appear to be working... (or there's too little latency in my
> > patience...) So... would anyone be even vaguely interested in...
> >
> > a) an aRtsd patch (trivial, really)
> >
> > b) an extension to the "order=o" soundfont parameter to make it somewhat
> > more interesting
> >
> > c) some minor "fixes" (hopefully just code tidy-ups)
> >
> > d) some documentation I've written while reading the code (I've been
> > trying to get a handle on exactly what TiMidity++ does and doesn't do as
> > a soft-synth)
> >
> > ...being posted to this list?  (Feel free to pick'n'choose.)
>
> nice features.
>
> could you give me your patch?
>
> timidity has been developed recently by some japanese people fairly
> intensively.  most of changes are for windows but effects engine and
> the handling of soundfonts are changed since the last pre version
> found on timidity's web page.
>
> unfortunately, the development is discussed only in japanese, so if
> you don't understand the language, it's difficult to join it...
>
> i'll send the patch to the ml to integrate to the new tree, and put
> the resultant patch on my web page for convenience.
>
>
> Takashi

Takashi,

I've attached my current patch version.  Sorry, it's not split out but it's 
fairly short.  (I'm not convinced I've quite got order and font exclude 
working together...)

I've also attached the config doc - it could do with be merged with the 
timidity-cfg(5) manpage.

Thanks - 2.12.0-pre1 has been a solid and useful tool.

-- Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TiMidity++-2.12.0-pre1-pj.v2.diff
Type: text/x-diff
Size: 23599 bytes
Desc: not available
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20021002/3398687b/attachment.diff>
-------------- next part --------------
TiMidity++ Config File
----------------------
(see timidity.cfg(5) for extra details)

HTTPproxy <proxy>
<proxy> is host:port
Sets the url_http_proxy_host and _port

FTPproxy <proxy>
<proxy> is host:port
Sets the url_ftp_proxy_host and _port

mailaddr <mailaddr>
<mailaddr> is something at somethingelse
Sets user_mailaddr

opt <command_line_option>
Sets a command line option from the config file

dir <dir>
Add <dir> to path list

source <file>
read config from <file>

default <name>
Set default instrument name to <name>

progbase <base>
Sets progbase to <base> for use when processing
- <preset> in font statements
- map statements
- <prog> in drumset or bank statements
- <prog> statements (except drumset banks)
Also used in some UIs for display


map <mapname> <from set> <from elem> <to set> <to elem>
<mapname> is
  For tonemaps: sc55, sc88, sc88pro, xg | xgsfx64
  For drummaps: sc55drum, sc88drum, sc88prodrum, xgsfx126, xgdrum
set_instrument_map(<mapname> <from set> <from elem> <to set> <to elem>)
When looking up a sample, <elem> in <set>, as part of playing a note, use the redirected sample instead.


bank <bank>
Allocate a new tone bank, <bank>
Make this the current bank

drumset <prog>
Allocate a new drumset bank, <prog>
Make this the current bank

bank <bank> <prog> <patch> { amp=<a>, note=<n>, pan=<p>, keep={env, loop}, strip={env, loop, tail}, comm=<c> }
bank <bank> <prog> %font <file> <bank> <preset> { <keynote> } { amp=<a>, note=<n>, pan=<p>, keep={env, loop}, strip={env, loop, tail}, comm=<c> }
drumset <bank> <prog> <patch> { amp=<a>, note=<n>, pan=<p>, keep={env, loop}, strip={env, loop, tail}, comm=<c> }
drumset <bank> 128 <prog> <patch> { amp=<a>, note=<n>, pan=<p>, keep={env, loop}, strip={env, loop, tail}, comm=<c> }
See <prog> below but <bank> only for this statement, it doesn't become current.

<prog> <patch> { amp=<a>, note=<n>, pan=<p>, keep={env, loop}, strip={env, loop, tail}, comm=<c> }
Applies to the current bank
Sets this GUS bank/prog to use the indicated patchfile
amp=<a>    - amplitude tuning factor
note=<n>   - set fixed note for this patch (for overriding patch's note value in a drumset, really)
pan=<p>    - set pan position (left|-100..center|0..right|100)
keep=env   - keep sample's envelope
keep=loop  - keep sample's looping
strip=env  - remove envelope from sample
strip=loop - remove loop from sample
strip=tail - cut sample playback after loop
comm=<c>   - stores <c> as the comment for this <prog> in the current bank

<prog> %font <file> <bank> <preset> { <keynote> }  { amp=<a>, note=<n>, pan=<p>, keep={env, loop}, strip={env, loop, tail}, comm=<c> }
<prog> %font <file> 128 <bank> <preset>  { amp=<a>, note=<n>, pan=<p>, keep={env, loop}, strip={env, loop, tail}, comm=<c> }
Applies to the current bank
Sets this GUS bank/prog to use a patch from a soundfont (use bank 128 for drumset)
Trailing options as above.

comm <prog> <comment>
Applies to the current bank
Stores <comment> as the comment for this <prog> in the current bank

timeout <prog> <seconds>
Applies to the current bank
Stores <seconds> as the loop_timeout for this <prog> in the current bank

altassign { clear } <range> ...
Applies to the current drumset
It looks (and is doc'd) as if a note_on for any note in the <range> causes any other note in the range to be killed.
<range> - { <patch> <patch> { <patch> ... } | <patch>-<patch> }

undef <prog>
Applies to the current bank
Clear name and comment from <prog> in the current bank (without a name, the bank is essentially gone)

copybank <bank>
Applies to the current bank
Copies <bank> to the current bank

copydrumset <drumset>
Applies to the current bank (preferably a drumset - but this bank will become a drumset)
Copies <drumset> to the current bank


soundfont <file> {remove | {order=<o>, cutoff=<c>, reso=<r>, amp=<a>} }
Remove or add a soundfont
order=<o>  - See below
cutoff=<c> - Set default cutoff setting for sf
reso=<r>   - Set default resonance setting for sf
amp=<a>    - Set default amplitude tuning for sf
(There was a bug, I think, in add_soundfont - if the SFfile was known, all parms were actioned; otherwise only order and amp were.)
(Actually, "reso" causes nasty hissing noises, so I can understand it not being wanted...)
Order works like this:
- "<prog> %font" takes priority over order=0
- order=0 takes priority over "<prog> <patch>"
- "<prog> <patch>" takes priority over order>=1
- then soundfont entries are tried from order=1 upwards (with my fix - was order=1)

font exclude <tonebank> { <preset> { <keynote> } }
font exclude 128 { <drumset> { <preset> } }
Applies to the current soundfont
Adds an exclude entry to the current soundfont for <tonebank> or <drumset>, <preset> (-1=any) and <keynote> (-1=any).
The excluded entry won't be used.

font order <order> <tonebank> { <preset> { <keynote> } }
font order <order> 128 { <drumset> { <preset> }
Applies to the current soundfont
Adds an order entry to the current soundfont for <tonebank> or <drumset>, <preset> (-1=any) and <keynote> (-1=any).  See soundfont order=<o> above.


More information about the Linux-audio-dev mailing list