mirror of
https://github.com/alsa-project/alsa-tools.git
synced 2026-04-13 08:21:14 -04:00
Add ld10k1 tool
Added ld10k1 tool by Peter Zubaj.
This commit is contained in:
parent
37104ebf62
commit
2df1aa7c20
98 changed files with 19970 additions and 1 deletions
87
ld10k1/contrib/emu10k1MIDIEffects/michorusL.asm
Normal file
87
ld10k1/contrib/emu10k1MIDIEffects/michorusL.asm
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
;;; Simple Chorus
|
||||
;;; Author:Daniel Bertrand
|
||||
;;; Date: Oct 12, 2000
|
||||
|
||||
;;; This program is free software; you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 2 of the License, or
|
||||
;;; (at your option) any later version.
|
||||
|
||||
;;; References:
|
||||
;;; http://www.harmony-central.com/Effects/Articles/Chorus
|
||||
|
||||
|
||||
;;; speed(formerly "delta")=2*pi*freq/48000
|
||||
;;; this give us our delta value for a specific freq (0.1-0.3Hz is good)
|
||||
|
||||
|
||||
include "emu_constants.asm"
|
||||
name "ChorusL"
|
||||
|
||||
in IO
|
||||
|
||||
outl equ in
|
||||
|
||||
|
||||
|
||||
speedL control 4e-05 , 0 , 1e-4 ; Controls frequency (radians)
|
||||
delayL control &32e-3 ,&10e-3 , &80e-3; twice (2*) average delay (sec)
|
||||
widthL control #0.8 ,0 ,#1 ; width control
|
||||
mixL control #1 ,0 ,#1 ; forward mix
|
||||
|
||||
;; sine generator storage spaces:
|
||||
sinx sta 0
|
||||
cosx sta #0.5
|
||||
|
||||
tmp dyn
|
||||
tmp2 dyn
|
||||
|
||||
;;; Two Delay Lines:
|
||||
|
||||
|
||||
dly delay &80e-3 ;10msec delay line
|
||||
|
||||
write twrite dly,0 ; tram writes
|
||||
ready tread dly,0 ; tram reads
|
||||
reada tread dly,0
|
||||
|
||||
;;;The code:
|
||||
|
||||
|
||||
;;; two opcode sinewave generator (I love this chip!):
|
||||
macs sinx,sinx,speedL,cosx
|
||||
macs1 cosx,cosx,speedL,sinx
|
||||
|
||||
;;; 0.5Asint+0.5:
|
||||
macs tmp,C_2^30,sinx,widthL
|
||||
|
||||
;;; calculate address:
|
||||
macs ready.a,write.a,delayL,tmp
|
||||
|
||||
;second addresses for interpolation:
|
||||
;(interesting how the emu engineers decided that $800 wasn't a needed value)
|
||||
macints reada.a,ready.a,C_8,C_256
|
||||
|
||||
|
||||
;;; Write to the delay line:
|
||||
|
||||
macs write,C_0,in,C_2^29
|
||||
|
||||
|
||||
|
||||
;;; output values:
|
||||
;;; 0x55 is 00100000 (?)
|
||||
macints tmp,C_0,reada.a,C_LSshift; get least significant part of address
|
||||
|
||||
interp tmp2,ready,tmp,reada ;interpolate in-between the two delay line readings
|
||||
|
||||
macs outl,tmp2,tmp2,mixL
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue