Additive_synthesis_bell.ogg
Summary
Description Additive synthesis bell.ogg |
English:
Bell-like tone generated by additive synthesis. The synethesis uses 21 inharmonic constant-frequency partials ranging from 201Hz to 3700Hz. Generated by the following C++ source code (compiled with GNU g++ version 4.5.2 with libsndfile 1.0.23.)
#include <sndfile.h> #include <cmath> using namespace std; const double twopi=8*atan(1); const int K=21; double freqs[K]={201,337,437,453,479,501,678,885,1093, 1234, 550, 1401, 1690, 1780, 2002, 2449, 2651, 2889, 3002, 3250, 3700}; double wobbleAmt[K]={0,1,.1,.1,.1,1,.1,.2,.2, 0,0,0,0,0,0,0,0,0,0,0,0}; double wobbleFreq[K]={0,2.8,9.2,9.5,10,4.8,9,8.8,7.1, 0,0,0,0,0,0,0,0,0,0,0,0}; double wobblePhase[K]={0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0}; double ampScale[K]={-32,-34.5,-39.8,-50.2,-45.6,-35.6,-35.7,-36.3,-38.4, -45,-45,-45,-45,-45,-45,-45,-45,-50,-50,-50,-50}; double decayRate[K]={.85,.8,1,1,1,1,1.25,1.5,1.5, 4,3.5,4,4,4,4,4,5,3.5,5,6,6}; double Amplitude(int k, double t) { double amp=pow(2.0,ampScale[k]/6.0); amp*=sin(wobblePhase[k])*wobbleAmt[k]+(1-wobbleAmt[k]); amp*=exp(-t*decayRate[k]); if (t<1) amp*=1-exp(-t*1000); return 8*amp; } int main() { double sr=44100; int nFrames=int(sr)*10; double *buf = new double[nFrames]; double t=0, dt=1.0/sr; for (int n=0; n<nFrames; n++) { buf[n]=0; for (int k=0; k<K; k++) { wobblePhase[k]+=twopi*wobbleFreq[k]*dt; buf[n]+=Amplitude(k,t)*sin(t*twopi*2*freqs[k]); پ t+=dt; } SF_INFO sfinfo; sfinfo.samplerate=sr; sfinfo.channels=1; sfinfo.format=SF_FORMAT_WAV|SF_FORMAT_PCM_16; SNDFILE *out = sf_open("bell.wav", SFM_WRITE, &sfinfo); sf_writef_double(out, buf, nFrames); sf_close(out); delete [] buf; return 0; } |
Date | 18 January 2012 (original upload date) |
Source | Transferred from en.wikipedia to Commons by FSII using CommonsHelper . |
Author | Chrisjohnson at English Wikipedia |
Licensing
Chrisjohnson
at
English Wikipedia
, the copyright holder of this work, hereby publishes it under the following license:
This file is licensed under the
Creative Commons
Attribution-Share Alike 3.0 Unported
license.
Attribution:
Chrisjohnson
at
English Wikipedia
-
You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
-
Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
Original upload log
The original description page was
here
. All following user names refer to en.wikipedia.
- 2012-01-18 00:08 Chrisjohnson 0×0× (175587 bytes) Bell-like tone generated by additive synthesis. The synethesis uses 21 inharmonic constant-frequency partials ranging from 201Hz to 3700Hz. Generated by the following C++ source code (compiled with GNU g++ version 4.5.2 with libsndfile 1.0.23.) <pre> #in