TLUG.NomiKai++; synthSound(&hardware);

BarCamp-Tokyo2009の中の人がHypertextについて話してたのと,XMLとSQLの香りがするsemantic webの話だった.
皆さんはレイヤが高いですな,あいかわらず. :)


上の絵をでっち上げていたら,#vhdlでhardware sound synthesize野郎が現れていた. :DDD
05/10 03:54:30 mad
I'm planning on making sound generation stuff
05/10 03:56:23 mad
most of that stuff is based around a phase register being incremented
by the frequency on each sound cycle (which is pretty low rate -
typically around 44khz)
05/10 04:02:43 bpadalino
sounds like a cordic should help you out
05/10 04:04:46 hiyuh
cordic is not for making sound, imho.
05/10 04:09:48 hiyuh
that sounds like singletone, variable freq in narrow range, and
presicion is not so important.
05/10 04:10:38 hiyuh
maybe, making rom-based nco is enough to do.
05/10 04:14:39 bpadalino
i don't know if a saw wave would sound very good, but as a phase
accumulator - a cordic sounds like it would work well
05/10 04:30:24 hiyuh
I meant cordic is expensive for that use.
05/10 04:30:29 hiyuh
and saw wave + filter for singletone is not a possibility, anyway.
05/10 04:32:34 hiyuh
phase accum -> sin or cos rom in appropriate precision -> singletone,
it's simple rom-based nco.
05/10 04:40:47 bpadalino
you really think a cordic is that expensive ?
05/10 04:51:49 hiyuh
bpadalino: yes
05/10 04:51:58 bpadalino
05/10 04:55:54 bpadalino
hiyuh, so if you wanted to create 20 tones, how would you go about
doing that ?
05/10 04:57:07 hiyuh
20 tones in same time?
05/10 04:57:31 bpadalino
05/10 04:59:05 hiyuh
these tones are elaborate-time fixed or run-time fixed?
05/10 05:00:05 hiyuh
I meant these tones are fixed before logic synthesize, or not.
05/10 05:00:29 bpadalino
runtime fixed tones .. frequency fixed before synthesis, but phase
programmable ..
05/10 05:00:44 bpadalino
and i want the sum of the 20 tones on the output
05/10 05:07:54 hiyuh
you mean "amplitude * (sin(2*pi*f1*t + theta1(t)) + ... sin(2*pi*f20*t
+ theta20(t)))"?
05/10 05:09:10 bpadalino
05/10 05:10:53 hiyuh
if I were you, I'd like to make semi-fixed digital filter or just
do IFFT.
05/10 05:12:42 bpadalino
that's what i had figured before, but i was just curious what someone
else might have thought
05/10 05:13:00 hiyuh
05/10 05:14:18 bpadalino
i would like to do my own generic systolic FFT sometime ... i think
that might be fun
05/10 05:16:23 mad
the tones parameters are written to at performance time
05/10 05:18:05 mad
It's for music generation, so the applicable freqs are about 20hz to
20khz (although tones over something like 4khz aren't particularly
05/10 05:19:17 anonissimus
mad: but as harmonics they are
05/10 05:19:33 mad
Precision has to be at least 1%, esp. in the "most common range"
(around 50hz ~ 1000hz)
05/10 05:19:50 mad
anonissimus: yeah, but those are generated from another process
05/10 05:21:16 anonissimus
05/10 05:21:38 anonissimus
know more on music than on generting it with hardware :)
05/10 05:21:57 mad
My plan is: start with pure phase accumulator, then twist the phase
around in a couple of functions (incl. one that uses multiplication),
then use sine wave/funky waveform LUT, apply volume and panning,
sum the channels together, DAC
05/10 05:24:12 mad
Uses about 140 bits of registers per channel
05/10 05:27:44 mad
A real practical design would actually be sample based instead
(with samples in RAM)
05/10 05:29:23 hiyuh
you know, your plan violates my assumption that described in the
above expr.
05/10 05:29:25 hiyuh
so what I was saying is not good way for you.
05/10 05:29:59 mad
mm, right
05/10 05:31:35 mad
sound synthesis isn't so hard because the sampling rate is low
anyways... and you can do it well in software if you have enough CPU
05/10 05:32:14 hiyuh
yeah, that's why soft synth is popular atm.
05/10 05:32:40 mad
no kidding, since it pretty much solves it
つまり,敢えてsoftware sound synthesizeしないっつーことですか?
そいつは物好きだなぁ. :)

0 件のコメント: