From douglas at music.columbia.edu Sat Dec 1 00:00:00 2007 From: douglas at music.columbia.edu (douglas repetto) Date: Sat Dec 1 00:00:45 2007 Subject: [music-dsp] [admin] music-dsp FAQ Message-ID: <20071201050000.B995C3A89153@music.columbia.edu> Hi, Just a reminder that if you are new to the list you should read the music-dsp FAQ. It contains answers to both technical _and_ adminstrative questions that often come up on the list. If your question appears in the FAQ it is safe to assume that it has been discussed on the list many times in the past, and you should probably have a look through the list archives before posting your question to the list. http://music.columbia.edu/cmc/music-dsp/musicdspFAQ.html Also of interest to new and not-so-new list members: The music-dsp list archives http://music.columbia.edu/cmc/music-dsp/musicdsparchives.html The music-dsp source code archive http://www.musicdsp.org music-dsp books and reviews http://music.columbia.edu/cmc/music-dsp/dspbooks.html All this and more at: http://music.columbia.edu/cmc/music-dsp Hasta la pasta, douglas (this is an automated message sent out on the 1st and 15th of each month) From czhenry at gmail.com Sat Dec 1 00:26:41 2007 From: czhenry at gmail.com (Charles Henry) Date: Sat Dec 1 00:27:03 2007 Subject: [music-dsp] Re: Not including highest partials In-Reply-To: <1c7708560711291111j21016a8ax834122d0d3206f89@mail.gmail.com> References: <1c7708560711291111j21016a8ax834122d0d3206f89@mail.gmail.com> Message-ID: <518fe7b20711302126s2f104a78m4a8a4aa467a824a5@mail.gmail.com> Hey, Tristan, Did this message get posted to the list? I later realized that I tried to attach my code to the email--as the FAQ indicates the message gets discarded. Anyway, instead of attaching, the code is at the end. Miller Puckette's code for 4-pt interpolation is a little hard to follow. It's just a tricky factorization of the Lagrange polynomials. But I tried to stay consistent with it, and not change his code, where apropriate. I also have a makefile and test patch for this external, if you want it. Here you can find my original analysis on the functions: http://lists.puredata.info/pipermail/pd-list/2007-03/048267.html The tricky part about this thing is that it wraps around the wavetable. We take our original 4-point interpolation formula and stretch it out when we increase speed. So, for some speed, it wraps around from the end to the beginning, or vice versa. That's why you will see a while loop inside of a while loop. while(not finished)->find the largest block of samples we can compute->while(inside that block)->multiply and add My plans for this external (when I'm less busy) are: to limit the number of computations by switching from a direct integration scheme to a Gauss-quadrature method, for large enough speeds. to implement a look-ahead function to prevent abrupt speed changes (which causes a large number of computations) Chuck On Nov 29, 2007 1:11 PM, Tristan Matthews wrote: > Hi Chuck, > > > BTW, I have programmed an interpolation routine, a generalization of > > 4-point interpolation, that eliminates aliasing a priori. My > > implementation is written in C and has been used successfully in Pd. > > Nobody ever showed interest in it, so I left it alone for about a year > > or so. There's still some optimization that needs work, because it > > can get pretty cpu intensive (it does exactly what it is supposed > > to... as speed increases, it takes a linear amount more computations, > > without exception). > > > > I would be interested in seeing this routine, if it's available. I'm > working on some code that employs a 4 point interpolation similar to > Miller Puckette's code for the vd~ object in PD. I'm curious to see > someone else's code for comparison. > > Thanks > Tristan Here's the code: /******************** tabread4a~ ***********************/ /* The guts of this external are "borrowed" from tabread4~. For normal or slower playback speeds, this external is intended to simply run the same as tabread4~. For faster speeds, the interpolation polynomial is modified to eliminate aliased frequencies. */ #include #include #include float interp(float x) { float absx=fabsf(x); return ((absx<2.0f)*((absx<1.0f)?(1-absx*(0.5f+absx*(1-0.5f*absx))):(1-absx*(1.833333f-absx*(1.0f-0.1666666f*absx))))); } static t_class *tabread4a_tilde_class; typedef struct _tabread4a_tilde { t_object x_obj; int x_npoints; float *x_vec; t_symbol *x_arrayname; float x_f; float last_input; } t_tabread4a_tilde; static void *tabread4a_tilde_new(t_symbol *s) { t_tabread4a_tilde *x = (t_tabread4a_tilde *)pd_new(tabread4a_tilde_class); x->x_arrayname = s; x->x_vec = 0; outlet_new(&x->x_obj, gensym("signal")); x->x_f = 0; x->last_input=0; return (x); } static t_int *tabread4a_tilde_perform(t_int *w) { t_tabread4a_tilde *x = (t_tabread4a_tilde *)(w[1]); t_float *in = (t_float *)(w[2]); t_float *out = (t_float *)(w[3]); int n = (int)(w[4]); int maxindex; float *buf = x->x_vec, *fp; float *low, *high; int i; float diff, findex; maxindex = x->x_npoints - 3; if (!buf) goto zero; #if 0 /* test for spam -- I'm not ready to deal with this */ for (i = 0, xmax = 0, xmin = maxindex, fp = in1; i < n; i++, fp++) { float f = *in1; if (f < xmin) xmin = f; else if (f > xmax) xmax = f; } if (xmax < xmin + x->c_maxextent) xmax = xmin + x->c_maxextent; for (i = 0, splitlo = xmin+ x->c_maxextent, splithi = xmax - x->c_maxextent, fp = in1; i < n; i++, fp++) { float f = *in1; if (f > splitlo && f < splithi) goto zero; } #endif low=buf+1; high=buf+maxindex; findex = *in; diff=fabsf(findex-x->last_input); x->last_input=*(in+n-1); if (diff > ((float) (maxindex/2))) diff=((float) maxindex) - diff; for (i = 0; i < n; i++) { if (diff <= 1.0f) { int index = findex; float frac, a, b, c, d, cminusb; static int count; if (index < 1) index = 1, frac = 0; else if (index > maxindex) index = maxindex, frac = 1; else frac = findex - index; fp = buf + index; a = fp[-1]; b = fp[0]; c = fp[1]; d = fp[2]; /* if (!i && !(count++ & 1023)) post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */ cminusb = c-b; *out++ = b + frac * ( cminusb - 0.1666667f * (1.-frac) * ( (d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b) ) ); } else { int a,b,c, itemp, itemp2, itemp3; float sum_left, sum_right; a=ceilf(findex-2*diff); //lowest value used in interpolation b=findex; //floor( findex) c=findex+2*diff; // highest value used, floor(findex+2*diff) if ((a>0)&&(c<=maxindex)) { fp=buf+a; sum_left=(*fp++)*interp((findex-a)/diff); while((a++)itemp) sum_right+=(*(fp--))*interp((c-findex)/diff); } else { itemp=a; //1st, wrap "a" btw 1 and maxindex while(itemp<1) itemp+=maxindex; fp=buf+(itemp++); sum_left=(*fp++)*interp((findex-a++)/diff); //eval at 1st point while(a<=b) // eval at each other point, from a to b { itemp2=b-a+1; itemp3=maxindex-itemp+1; itemp=(itemp2maxindex) itemp-=maxindex; fp=buf+(itemp--); sum_right=(*fp--)*interp(((c--)-findex)/diff); while(c>b) { itemp2=c-b; itemp3=itemp; itemp=(itemp2 ((float) (maxindex/2))) diff=((float) maxindex) - diff; findex = *in; } return (w+5); zero: while (n--) *out++ = 0; return (w+5); } void tabread4a_tilde_set(t_tabread4a_tilde *x, t_symbol *s) { t_garray *a; x->x_arrayname = s; if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class))) { if (*s->s_name) pd_error(x, "tabread4a~: %s: no such array", x->x_arrayname->s_name); x->x_vec = 0; } else if (!garray_getfloatarray(a, &x->x_npoints, &x->x_vec)) { pd_error(x, "%s: bad template for tabread4a~", x->x_arrayname->s_name); x->x_vec = 0; } else garray_usedindsp(a); } static void tabread4a_tilde_dsp(t_tabread4a_tilde *x, t_signal **sp) { tabread4a_tilde_set(x, x->x_arrayname); dsp_add(tabread4a_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n); } static void tabread4a_tilde_free(t_tabread4a_tilde *x) { } EXTERN void tabread4a_tilde_setup(void) { tabread4a_tilde_class = class_new(gensym("tabread4a~"), (t_newmethod)tabread4a_tilde_new, (t_method)tabread4a_tilde_free, sizeof(t_tabread4a_tilde), 0, A_DEFSYM, 0); CLASS_MAINSIGNALIN(tabread4a_tilde_class, t_tabread4a_tilde, x_f); class_addmethod(tabread4a_tilde_class, (t_method)tabread4a_tilde_dsp, gensym("dsp"), 0); class_addmethod(tabread4a_tilde_class, (t_method)tabread4a_tilde_set, gensym("set"), A_SYMBOL, 0); } From richarddobson at blueyonder.co.uk Sat Dec 1 05:32:06 2007 From: richarddobson at blueyonder.co.uk (Richard Dobson) Date: Sat Dec 1 05:32:18 2007 Subject: [music-dsp] Re: Not including highest partials In-Reply-To: <518fe7b20711302126s2f104a78m4a8a4aa467a824a5@mail.gmail.com> References: <1c7708560711291111j21016a8ax834122d0d3206f89@mail.gmail.com> <518fe7b20711302126s2f104a78m4a8a4aa467a824a5@mail.gmail.com> Message-ID: <47513826.9050407@blueyonder.co.uk> Charles Henry wrote: .. > > The tricky part about this thing is that it wraps around the > wavetable. We take our original 4-point interpolation formula and > stretch it out when we increase speed. So, for some speed, it wraps > around from the end to the beginning, or vice versa. That's why you > will see a while loop inside of a while loop. > while(not finished)->find the largest block of samples we can > compute->while(inside that block)->multiply and add > I am curious to know why guard points aren't used (if I understand the description above correctly), a la Csound? That is to say, tables in Csound (for plain linear interpolation) have a single "guard point" appended to the table, that is a copy of the first point, so that whatever sample position is required, it can be calculated from literally neighbouring points; for N-point interpolation there would be correspondingly more guard points. No wraparound calculation needed. Richard Dobson From czhenry at gmail.com Sat Dec 1 08:14:17 2007 From: czhenry at gmail.com (Charles Henry) Date: Sat Dec 1 08:14:29 2007 Subject: [music-dsp] Re: Not including highest partials In-Reply-To: <47513826.9050407@blueyonder.co.uk> References: <1c7708560711291111j21016a8ax834122d0d3206f89@mail.gmail.com> <518fe7b20711302126s2f104a78m4a8a4aa467a824a5@mail.gmail.com> <47513826.9050407@blueyonder.co.uk> Message-ID: <518fe7b20712010514p6bf1a0c3y483ffc3f684ff530@mail.gmail.com> > I am curious to know why guard points aren't used (if I understand the > description above correctly), a la Csound? That is to say, tables in > Csound (for plain linear interpolation) have a single "guard point" > appended to the table, that is a copy of the first point, so that > whatever sample position is required, it can be calculated from > literally neighbouring points; for N-point interpolation there would be > correspondingly more guard points. No wraparound calculation needed. > > Richard Dobson 4-point interpolation in a similar method uses one left sided guard point, and two right sided guard points. For the implementation here, we are evaluating at most (4*k+1) points, where k is the speed ratio. The speed is flexible, so there's no way to determine how many guard points there should be. This section of my code handles the wrap-around, fairly simply: itemp=a; //1st, wrap "a" btw 1 and maxindex while(itemp<1) itemp+=maxindex; fp=buf+(itemp++); sum_left=(*fp++)*interp((findex-a++)/diff); //eval at 1st point while(a<=b) // eval at each other point, from a to b { itemp2=b-a+1; itemp3=maxindex-itemp+1; itemp=(itemp2maxindex) itemp-=maxindex; fp=buf+(itemp--); sum_right=(*fp--)*interp(((c--)-findex)/diff); while(c>b) { itemp2=c-b; itemp3=itemp; itemp=(itemp2 I found patent 7,149,314 Reverberation processor based on absorbent all-pass filters That is what is in DAFX 2000 paper by Creative people. Now, it just happens that I invented absorbent allpass filters prior them. I simply did that trivially by plugging allpass filters to FDN topology which indeed has absorbent filters at the end of each delay line. Uh oh, another loss of open source community. Juhana From lerch at zplane.de Mon Dec 3 07:12:07 2007 From: lerch at zplane.de (alexander lerch) Date: Mon Dec 3 07:12:21 2007 Subject: [music-dsp] Patents patents.... reverberator In-Reply-To: References: Message-ID: <4753F297.60605@zplane.de> If you can prove your open-source publication date before the patent filing, that shouldn't be a (big) problem. Best, (a) Juhana Sadeharju wrote: > I found patent > 7,149,314 Reverberation processor based on absorbent all-pass filters > > That is what is in DAFX 2000 paper by Creative people. > Now, it just happens that I invented absorbent allpass filters > prior them. I simply did that trivially by plugging allpass > filters to FDN topology which indeed has absorbent filters at > the end of each delay line. Uh oh, another loss of open source > community. > > Juhana -- dipl. ing. alexander lerch zplane.development :www.zplane.de katzbachstr.21 d-10965 berlin fon: +49.30.854 09 15.0 fax: +49.30.854 09 15.5 From Victor.Lazzarini at nuim.ie Fri Dec 7 08:34:33 2007 From: Victor.Lazzarini at nuim.ie (Victor Lazzarini) Date: Fri Dec 7 08:34:43 2007 Subject: [music-dsp] job opportunity Message-ID: <6.1.2.0.1.20071207133418.03b1e568@popstore.nuim.ie> Apologies for cross-posting. NUI Maynooth Music Department is looking for a 20th-century music specialist in one of several areas, which includes Computer-Aided Musicology, Analysis, etc... The post is permanent at Assistant Lecturer or Lecturer level (depending on qualifications). The Department hosts a very active research lab, the Music Technology Laboratory, with work in several areas of Computer Music. A successful candidate working in the area of Computer Musicology would join a very active group and hopefully develop that area of research in the department. The full job advertisement is found at: http://personnel.nuim.ie/lectmusic.shtml Please let anyone who this might interest know. Regards Victor Lazzarini Victor Lazzarini Music Technology Laboratory Music Department National University of Ireland, Maynooth From nils at nilsschneider.de Tue Dec 11 06:41:30 2007 From: nils at nilsschneider.de (Nils Schneider) Date: Tue Dec 11 06:42:07 2007 Subject: [music-dsp] Cymbal Simulation Message-ID: <475E776A.4030501@nilsschneider.de> Hello, im interested to find algorithms to simulate a cymbal, but had no look by using google. Does anyone know if there already exists any good-sounding cymbal simulation or knows some common algorithms how this could be achieved? I know that most FM synthesizers have cymbals in it that are created by modulating the operators with each other, but I don't like the overall result. Nils From didid at skynet.be Tue Dec 11 07:15:04 2007 From: didid at skynet.be (Didier Dambrin) Date: Tue Dec 11 07:15:26 2007 Subject: [music-dsp] Cymbal Simulation References: <475E776A.4030501@nilsschneider.de> Message-ID: <009301c83bef$7638b6f0$0301a8c0@GOLAMD> I have an ok 'simulation' (not emulation) of the sound as a synth (Sytrus) preset that uses noise (at 160khz) through a highpass & lots of highpasses http://www.flstudio.com/gol/Crash.mp3 > Hello, > > im interested to find algorithms to simulate a cymbal, but had no look by > using google. Does anyone know if there already exists any good-sounding > cymbal simulation or knows some common algorithms how this could be > achieved? > > I know that most FM synthesizers have cymbals in it that are created by > modulating the operators with each other, but I don't like the overall > result. > > Nils > -- > dupswapdrop -- the music-dsp mailing list and website: subscription info, > FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp > > > -- > No virus found in this incoming message. > Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: > 269.17.0/1180 - Release Date: 10/12/2007 14:51 > > From nils at nilsschneider.de Tue Dec 11 07:24:18 2007 From: nils at nilsschneider.de (Nils Schneider) Date: Tue Dec 11 07:24:59 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <009301c83bef$7638b6f0$0301a8c0@GOLAMD> References: <475E776A.4030501@nilsschneider.de> <009301c83bef$7638b6f0$0301a8c0@GOLAMD> Message-ID: <475E8172.5020708@nilsschneider.de> Hi Didier, this sounds not bad, better than most FM cymbals that I know. Although I would categorize it as splash rather than a crash cymbal. Nils From didid at skynet.be Tue Dec 11 07:35:36 2007 From: didid at skynet.be (Didier Dambrin) Date: Tue Dec 11 07:39:42 2007 Subject: [music-dsp] Cymbal Simulation References: <475E776A.4030501@nilsschneider.de><009301c83bef$7638b6f0$0301a8c0@GOLAMD> <475E8172.5020708@nilsschneider.de> Message-ID: <00f901c83bf2$54de2c30$0301a8c0@GOLAMD> probably, as I have no idea of the difference between splash & crash. I also did it by ear, as I don't know what makes the sound. I've never heard any convincing synthesized cymbal, even in drum synthesizers samples are used. Btw, my test isn't practically usable either, as it eats quite a lot of CPU. > Hi Didier, > > this sounds not bad, better than most FM cymbals that I know. Although I > would categorize it as splash rather than a crash cymbal. > > Nils > -- > dupswapdrop -- the music-dsp mailing list and website: subscription info, > FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp > > > -- > No virus found in this incoming message. > Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: > 269.17.0/1180 - Release Date: 10/12/2007 14:51 > > From nils at nilsschneider.de Tue Dec 11 08:08:53 2007 From: nils at nilsschneider.de (Nils Schneider) Date: Tue Dec 11 08:13:26 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <00f901c83bf2$54de2c30$0301a8c0@GOLAMD> References: <475E776A.4030501@nilsschneider.de><009301c83bef$7638b6f0$0301a8c0@GOLAMD> <475E8172.5020708@nilsschneider.de> <00f901c83bf2$54de2c30$0301a8c0@GOLAMD> Message-ID: <475E8BE5.2080600@nilsschneider.de> I have an idea of an approach that would eat a lot of computational power but could be computed easily on a graphics card such as Geforce 8800 by using Nvidia CUDA using hundereds of threads with small code size per thread. It's not that I want to create something useful, I just want to test if it's possible. The approach would calculate the cymbal sound by using a representation consisting of a circular grid of points that are able to oscillate and trigger it's neighbours. Each point would have a certain frequency and sensitivity to its neighbours. The points in the center would have a sensitivity near zero because the cymbal is mounted on it's stand there. The larger the distance to the mounting point (i.e. the greater the radius) the larger the sensitivity (because the material is thinner). The final waveform would be calculated by using a virtual microphone position, summing up all oscillating points to form the sound. This is just an idea, I would be interested to hear the results. I already worked with 3D some time ago to program a reverb that is calculated in a real 3D scene. I exported the scene using a usual 3D animation program, placed listener and audio position and traced rays through the geometry. The result was nice, but for diffuse materials on the walls, each ray ended up to be spread to several new rays, forming a huge amount of rays that had to be calculated. The ray calculation was not the problem, ending up in a tree that defined length and material that was hit. The time consuming process was to filter the wave form using the hit materials and summing up all waveforms together. I could wait minutes to hours for the final result to be heared. This it how it sounds like for a simple material (no filtering, nearly no diffusion), computed in some seconds. http://www.nilsschneider.de/temp/out.mp3 http://www.nilsschneider.de/temp/out2.mp3 It would be nice to move that code on a GPU to see how fast it is nowadays. It was before cuda came out. For the cymbal, each point could be calculated without dependencies, ending up that each point would be calculated in one thread per sample. The final result, the mixing of all oscillations could be done in an iteration process, where each thread sums up two waveforms per iteration, ending up so that the number of waveforms is cut in half each iteration until only one waveform is left, representing the final cymbal sound. Ideas are welcome. Regards, Nils Didier Dambrin schrieb: > probably, as I have no idea of the difference between splash & crash. I > also did it by ear, as I don't know what makes the sound. > I've never heard any convincing synthesized cymbal, even in drum > synthesizers samples are used. Btw, my test isn't practically usable > either, as it eats quite a lot of CPU. > > > > >> Hi Didier, >> >> this sounds not bad, better than most FM cymbals that I know. Although >> I would categorize it as splash rather than a crash cymbal. >> >> Nils >> -- >> dupswapdrop -- the music-dsp mailing list and website: subscription >> info, FAQ, source code archive, list archive, book reviews, dsp links >> http://music.columbia.edu/cmc/music-dsp >> http://music.columbia.edu/mailman/listinfo/music-dsp >> >> >> -- >> No virus found in this incoming message. >> Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: >> 269.17.0/1180 - Release Date: 10/12/2007 14:51 >> >> > > -- > dupswapdrop -- the music-dsp mailing list and website: subscription > info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp From andylist at vellocet.com Tue Dec 11 08:29:21 2007 From: andylist at vellocet.com (Andrew Simper) Date: Tue Dec 11 08:29:34 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <475E8BE5.2080600@nilsschneider.de> References: <475E776A.4030501@nilsschneider.de><009301c83bef$7638b6f0$0301a8c0@GOLAMD> <475E8172.5020708@nilsschneider.de> <00f901c83bf2$54de2c30$0301a8c0@GOLAMD> <475E8BE5.2080600@nilsschneider.de> Message-ID: <475E90B1.9030005@vellocet.com> Just in case you haven't already found this: http://ccrma.stanford.edu/~bilbao/booktop/node173.html#platenlchap It's note complete yet, but there are other links and references etc to follow. All the best, Andrew Nils Schneider wrote: > I have an idea of an approach that would eat a lot of computational > power but could be computed easily on a graphics card such as Geforce > 8800 by using Nvidia CUDA using hundereds of threads with small code > size per thread. > > It's not that I want to create something useful, I just want to test > if it's possible. > > The approach would calculate the cymbal sound by using a > representation consisting of a circular grid of points that are able > to oscillate and trigger it's neighbours. Each point would have a > certain frequency and sensitivity to its neighbours. The points in the > center would have a sensitivity near zero because the cymbal is > mounted on it's stand there. The larger the distance to the mounting > point (i.e. the greater the radius) the larger the sensitivity > (because the material is thinner). > > The final waveform would be calculated by using a virtual microphone > position, summing up all oscillating points to form the sound. > > This is just an idea, I would be interested to hear the results. > > I already worked with 3D some time ago to program a reverb that is > calculated in a real 3D scene. I exported the scene using a usual 3D > animation program, placed listener and audio position and traced rays > through the geometry. > > The result was nice, but for diffuse materials on the walls, each ray > ended up to be spread to several new rays, forming a huge amount of > rays that had to be calculated. The ray calculation was not the > problem, ending up in a tree that defined length and material that was > hit. The time consuming process was to filter the wave form using the > hit materials and summing up all waveforms together. I could wait > minutes to hours for the final result to be heared. > > This it how it sounds like for a simple material (no filtering, nearly > no diffusion), computed in some seconds. > > http://www.nilsschneider.de/temp/out.mp3 > http://www.nilsschneider.de/temp/out2.mp3 > > It would be nice to move that code on a GPU to see how fast it is > nowadays. It was before cuda came out. > > For the cymbal, each point could be calculated without dependencies, > ending up that each point would be calculated in one thread per sample. > > The final result, the mixing of all oscillations could be done in an > iteration process, where each thread sums up two waveforms per > iteration, ending up so that the number of waveforms is cut in half > each iteration until only one waveform is left, representing the final > cymbal sound. > > Ideas are welcome. > > Regards, > > Nils > > > Didier Dambrin schrieb: >> probably, as I have no idea of the difference between splash & crash. >> I also did it by ear, as I don't know what makes the sound. >> I've never heard any convincing synthesized cymbal, even in drum >> synthesizers samples are used. Btw, my test isn't practically usable >> either, as it eats quite a lot of CPU. >> >> >> >> >>> Hi Didier, >>> >>> this sounds not bad, better than most FM cymbals that I know. >>> Although I would categorize it as splash rather than a crash cymbal. >>> >>> Nils >>> -- >>> dupswapdrop -- the music-dsp mailing list and website: subscription >>> info, FAQ, source code archive, list archive, book reviews, dsp >>> links http://music.columbia.edu/cmc/music-dsp >>> http://music.columbia.edu/mailman/listinfo/music-dsp >>> >>> >>> -- >>> No virus found in this incoming message. >>> Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: >>> 269.17.0/1180 - Release Date: 10/12/2007 14:51 >>> >>> >> >> -- >> dupswapdrop -- the music-dsp mailing list and website: subscription >> info, FAQ, source code archive, list archive, book reviews, dsp links >> http://music.columbia.edu/cmc/music-dsp >> http://music.columbia.edu/mailman/listinfo/music-dsp > -- > dupswapdrop -- the music-dsp mailing list and website: subscription > info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp From david at olofson.net Tue Dec 11 22:18:38 2007 From: david at olofson.net (David Olofson) Date: Tue Dec 11 22:19:13 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <475E776A.4030501@nilsschneider.de> References: <475E776A.4030501@nilsschneider.de> Message-ID: <200712120418.39126.david@olofson.net> On Tuesday 11 December 2007, Nils Schneider wrote: [...] > Does anyone know if there already exists any good-sounding cymbal > simulation or knows some common algorithms how this could be > achieved? [...] I've never actually heard a really good simulation. It seems like the problem is hard enough that most people just ignore it and use samples. Anyway, I've tried a few simple approaches, as I'm rather interested in doing it "all structured" for various reasons. Filtered noise does work, though it seems to be of limited use for anything but hi-hats and similar. Using "C64 style" sample-and-hold noise (that is, non-bandlimited stair-stepping, basically) and resonant filters helps. Maybe a bunch of carefully tuned narrow band resonant filters might work? (Starting to turn into physical modelling.) Another approach, used in various old analogue machines, is to combine a bunch of tuned square waves together. (XOR of single bit waveforms, or similar.) This can actually produce rather nice sounds, especially when increasing the number of oscillators, adding filters and stuff, beyond what was used in those machines. Still not quite there, though. Maybe use this to excite an array of resonant filters...? The approach I've had most (though still limited) success with is plain, brute force additive synthesis. (Doing it over IFFT definitely makes it more realistic for real life use. We're talking thousands of oscillators here...) It's quite easy to come up with that clean, metallic "ride ping" type sound - or just add more oscillators for something more noisy. The hard part is that rich, "messy" sound you get from hard hits. Theoretically, additive synthesis *should* be able to do anything, and it's just a matter of figuring out where to put those sines, and how to modulate them - but I haven't quite figured it out yet. //David Olofson - Programmer, Composer, Open Source Advocate .------- http://olofson.net - Games, SDL examples -------. | http://zeespace.net - 2.5D rendering engine | | http://audiality.org - Music/audio engine | | http://eel.olofson.net - Real time scripting | '-- http://www.reologica.se - Rheology instrumentation --' From stephen.blinkhorn at audiospillage.com Tue Dec 11 23:54:35 2007 From: stephen.blinkhorn at audiospillage.com (Stephen Blinkhorn) Date: Tue Dec 11 23:54:47 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <200712120418.39126.david@olofson.net> References: <475E776A.4030501@nilsschneider.de> <200712120418.39126.david@olofson.net> Message-ID: <06A6D253-D921-4145-9A67-748CA4BE3136@audiospillage.com> http://www.soundonsound.com/sos/May02/articles/synthsecrets0502.asp most people know these articles already but they are pretty nice Stephen //audiospillage.com On 12 Dec 2007, at 03:18, David Olofson wrote: > On Tuesday 11 December 2007, Nils Schneider wrote: > [...] >> Does anyone know if there already exists any good-sounding cymbal >> simulation or knows some common algorithms how this could be >> achieved? > [...] > > I've never actually heard a really good simulation. It seems like the > problem is hard enough that most people just ignore it and use > samples. Anyway, I've tried a few simple approaches, as I'm rather > interested in doing it "all structured" for various reasons. > > Filtered noise does work, though it seems to be of limited use for > anything but hi-hats and similar. Using "C64 style" sample-and-hold > noise (that is, non-bandlimited stair-stepping, basically) and > resonant filters helps. Maybe a bunch of carefully tuned narrow band > resonant filters might work? (Starting to turn into physical > modelling.) > > Another approach, used in various old analogue machines, is to combine > a bunch of tuned square waves together. (XOR of single bit waveforms, > or similar.) This can actually produce rather nice sounds, especially > when increasing the number of oscillators, adding filters and stuff, > beyond what was used in those machines. Still not quite there, > though. Maybe use this to excite an array of resonant filters...? > > The approach I've had most (though still limited) success with is > plain, brute force additive synthesis. (Doing it over IFFT definitely > makes it more realistic for real life use. We're talking thousands of > oscillators here...) It's quite easy to come up with that clean, > metallic "ride ping" type sound - or just add more oscillators for > something more noisy. The hard part is that rich, "messy" sound you > get from hard hits. Theoretically, additive synthesis *should* be > able to do anything, and it's just a matter of figuring out where to > put those sines, and how to modulate them - but I haven't quite > figured it out yet. > > > //David Olofson - Programmer, Composer, Open Source Advocate > > .------- http://olofson.net - Games, SDL examples -------. > | http://zeespace.net - 2.5D rendering engine | > | http://audiality.org - Music/audio engine | > | http://eel.olofson.net - Real time scripting | > '-- http://www.reologica.se - Rheology instrumentation --' > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book > reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp From pickman at inwind.it Wed Dec 12 12:33:01 2007 From: pickman at inwind.it (pickman@inwind.it) Date: Wed Dec 12 12:33:11 2007 Subject: [music-dsp] New 12AX7A Pspice Model Message-ID: Hi, I realized a new Pspice model for RCA 12ax7a Tube.I'm interested in your comments.You can download it for free at www.fuzone.it/pspice_model.htm Bye From rbj at audioimagination.com Wed Dec 12 15:25:05 2007 From: rbj at audioimagination.com (robert bristow-johnson) Date: Wed Dec 12 15:30:24 2007 Subject: [music-dsp] New 12AX7A Pspice Model Message-ID: <20071212202505.E2511202A6@ws6-7.us4.outblaze.com> > ----- Original Message ----- > From: "pickman@inwind.it" > To: "music-dsp" > Subject: [music-dsp] New 12AX7A Pspice Model > Date: Wed, 12 Dec 2007 18:33:01 +0100 > > I realized a new Pspice model for RCA 12ax7a Tube.I'm interested in your > comments.You can download it for free at www.fuzone.it/pspice_model.htm it was nice of you to print the data points from your model on top of the raw graphs representing that particular 12AX7A tube (actually 1/2 of it, since it's a dual triode). while it might make no difference to audio signals, there are also interelectrode capacitance that *could* be modeled in PSPICE. dunno, at first appearance, how one measures it. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." From webmaster at audiorealism.se Thu Dec 13 04:19:25 2007 From: webmaster at audiorealism.se (Mike Janney) Date: Thu Dec 13 04:19:34 2007 Subject: [music-dsp] Re: Cymbal Simulation In-Reply-To: <20071211131338.9F49460601B5@music.columbia.edu> References: <20071211131338.9F49460601B5@music.columbia.edu> Message-ID: <4110.130.243.186.99.1197537565.squirrel@webmail01.one.com> Interesting idea to use CUDA to simulate a cymbal using grid based techniques. I think it will be difficult though givin the nature of stiff differential equations. The overall scheme you propose sounds like simulation water effects on the GPU. I definitely think it could be a worth a shot. Btw I did some cymbal synthesis using virtual analog methods and got some pretty good results, though I was focusing on simulating a 808 cymbal and not an acoustic one. The 808 was widely regarded as the "most authentic" analog modelled cymbal at the time, and franky I haven't heard a better simulated one to date. Here's a comparison: http://www.audiorealism.se/adm/adm808comp2.mp3 Best regards, Mike J Lead DSP Developer www.audiorealism.se > I have an idea of an approach that would eat a lot of computational > power but could be computed easily on a graphics card such as Geforce > 8800 by using Nvidia CUDA using hundereds of threads with small code > size per thread. > > It's not that I want to create something useful, I just want to test if > it's possible. > > The approach would calculate the cymbal sound by using a representation > consisting of a circular grid of points that are able to oscillate and > trigger it's neighbours. Each point would have a certain frequency and > sensitivity to its neighbours. The points in the center would have a > sensitivity near zero because the cymbal is mounted on it's stand there. > The larger the distance to the mounting point (i.e. the greater the > radius) the larger the sensitivity (because the material is thinner). > > The final waveform would be calculated by using a virtual microphone > position, summing up all oscillating points to form the sound. > > This is just an idea, I would be interested to hear the results. > > I already worked with 3D some time ago to program a reverb that is > calculated in a real 3D scene. I exported the scene using a usual 3D > animation program, placed listener and audio position and traced rays > through the geometry. > > The result was nice, but for diffuse materials on the walls, each ray > ended up to be spread to several new rays, forming a huge amount of rays > that had to be calculated. The ray calculation was not the problem, > ending up in a tree that defined length and material that was hit. The > time consuming process was to filter the wave form using the hit > materials and summing up all waveforms together. I could wait minutes to > hours for the final result to be heared. > > This it how it sounds like for a simple material (no filtering, nearly > no diffusion), computed in some seconds. > > http://www.nilsschneider.de/temp/out.mp3 > http://www.nilsschneider.de/temp/out2.mp3 > > It would be nice to move that code on a GPU to see how fast it is > nowadays. It was before cuda came out. > > For the cymbal, each point could be calculated without dependencies, > ending up that each point would be calculated in one thread per sample. > > The final result, the mixing of all oscillations could be done in an > iteration process, where each thread sums up two waveforms per > iteration, ending up so that the number of waveforms is cut in half each > iteration until only one waveform is left, representing the final cymbal > sound. > > Ideas are welcome. > > Regards, > > Nils From dan.stowell at elec.qmul.ac.uk Thu Dec 13 07:39:09 2007 From: dan.stowell at elec.qmul.ac.uk (Dan Stowell) Date: Thu Dec 13 07:39:55 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <475E776A.4030501@nilsschneider.de> References: <475E776A.4030501@nilsschneider.de> Message-ID: <476127ED.6090009@elec.qmul.ac.uk> Hi - I have a SuperCollider patch that makes cymbal sounds, which I'm happy with. http://www.mcld.co.uk/sc_cymbals_1.mp3 It uses the fairly "traditional" approach of filtered noise and a pile of resonators, plus lots of tweaking to make it sound OK. I can send you the patch offlist if you're interested, although if you aren't using SC it'll be a bit laborious to translate. I'd like to write this method up sometime since there aren't (as you've found) any tutorials online that achieve anything pleasant, but I don't really know where to publish it. Dan Nils Schneider wrote: > Hello, > > im interested to find algorithms to simulate a cymbal, but had no look > by using google. Does anyone know if there already exists any > good-sounding cymbal simulation or knows some common algorithms how this > could be achieved? > > I know that most FM synthesizers have cymbals in it that are created by > modulating the operators with each other, but I don't like the overall > result. > > Nils -- Dan Stowell Centre for Digital Music Dept of Electronic Engineering Queen Mary, University of London Mile End Road, London E1 4NS http://www.elec.qmul.ac.uk/department/staff/research/dans.htm http://www.mcld.co.uk/ From didid at skynet.be Thu Dec 13 09:37:31 2007 From: didid at skynet.be (Didier Dambrin) Date: Thu Dec 13 09:37:43 2007 Subject: [music-dsp] Cymbal Simulation References: <475E776A.4030501@nilsschneider.de> <476127ED.6090009@elec.qmul.ac.uk> Message-ID: <009001c83d95$b3411ef0$0301a8c0@GOLAMD> that's pretty cool, would make nice gongs > Hi - > > I have a SuperCollider patch that makes cymbal sounds, which I'm happy > with. http://www.mcld.co.uk/sc_cymbals_1.mp3 > > It uses the fairly "traditional" approach of filtered noise and a pile of > resonators, plus lots of tweaking to make it sound OK. > > I can send you the patch offlist if you're interested, although if you > aren't using SC it'll be a bit laborious to translate. I'd like to write > this method up sometime since there aren't (as you've found) any tutorials > online that achieve anything pleasant, but I don't really know where to > publish it. > > Dan > > > > Nils Schneider wrote: >> Hello, >> >> im interested to find algorithms to simulate a cymbal, but had no look by >> using google. Does anyone know if there already exists any good-sounding >> cymbal simulation or knows some common algorithms how this could be >> achieved? >> >> I know that most FM synthesizers have cymbals in it that are created by >> modulating the operators with each other, but I don't like the overall >> result. >> >> Nils > > > -- > Dan Stowell > Centre for Digital Music > Dept of Electronic Engineering > Queen Mary, University of London > Mile End Road, London E1 4NS > http://www.elec.qmul.ac.uk/department/staff/research/dans.htm > http://www.mcld.co.uk/ > -- > dupswapdrop -- the music-dsp mailing list and website: subscription info, > FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp > > > -- > No virus found in this incoming message. > Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: > 269.17.1/1182 - Release Date: 12/12/2007 11:29 > > From nils at nilsschneider.de Thu Dec 13 20:16:23 2007 From: nils at nilsschneider.de (Nils Schneider) Date: Thu Dec 13 20:17:03 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <476127ED.6090009@elec.qmul.ac.uk> References: <475E776A.4030501@nilsschneider.de> <476127ED.6090009@elec.qmul.ac.uk> Message-ID: <4761D967.4010603@nilsschneider.de> Hi Don, > I have a SuperCollider patch that makes cymbal sounds, which I'm happy > with. http://www.mcld.co.uk/sc_cymbals_1.mp3 This sounds very interesting. Overall it's a very good sound except the envelope, that could need some more work imho. Sounds like someone had left his key ring back on the cymbal or something..... :) Nils From padawan12 at obiwannabe.co.uk Fri Dec 14 16:00:48 2007 From: padawan12 at obiwannabe.co.uk (Andy Farnell) Date: Fri Dec 14 16:01:03 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <476127ED.6090009@elec.qmul.ac.uk> References: <475E776A.4030501@nilsschneider.de> <476127ED.6090009@elec.qmul.ac.uk> Message-ID: <20071214210048.7192362b.padawan12@obiwannabe.co.uk> FM model. Not very well parameterised. However you can get some nice control over the hit intensity to bring out more or less harmonics moving from bell to edge etc. Needs lots of tweaking to get right. Pd source if anyone wants. Andy http://obiwannabe.co.uk/sounds/effect-cymbal-triangle-fm.mp3 On Thu, 13 Dec 2007 12:39:09 +0000 Dan Stowell wrote: > Hi - > > I have a SuperCollider patch that makes cymbal sounds, which I'm happy > with. http://www.mcld.co.uk/sc_cymbals_1.mp3 > > It uses the fairly "traditional" approach of filtered noise and a pile > of resonators, plus lots of tweaking to make it sound OK. > > I can send you the patch offlist if you're interested, although if you > aren't using SC it'll be a bit laborious to translate. I'd like to write > this method up sometime since there aren't (as you've found) any > tutorials online that achieve anything pleasant, but I don't really know > where to publish it. > > Dan > > > > Nils Schneider wrote: > > Hello, > > > > im interested to find algorithms to simulate a cymbal, but had no look > > by using google. Does anyone know if there already exists any > > good-sounding cymbal simulation or knows some common algorithms how this > > could be achieved? > > > > I know that most FM synthesizers have cymbals in it that are created by > > modulating the operators with each other, but I don't like the overall > > result. > > > > Nils > > > -- > Dan Stowell > Centre for Digital Music > Dept of Electronic Engineering > Queen Mary, University of London > Mile End Road, London E1 4NS > http://www.elec.qmul.ac.uk/department/staff/research/dans.htm > http://www.mcld.co.uk/ > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp -- Use the source From ristoh at extern.uio.no Fri Dec 14 17:37:28 2007 From: ristoh at extern.uio.no (Risto Holopainen) Date: Fri Dec 14 17:37:51 2007 Subject: [music-dsp] Re: Cymbal Simulation Message-ID: <3784.80.213.196.155.1197671848.squirrel@webmail.uio.no> One obvious aspect of cymbals, that no one seems to have pointed out so far, is that they move when they are hit. This, in combination with the fact that they radiate different frequencies in different directions, could be exploited to make even more realistic models than some of those quite nice sounds posted here. Perhaps you would get this for free in a physical model, but it should be possible to implement in any model. Something along the lines of a rotary speaker simulated by modulated delay lines may be a starting point. Just some suggestions, I haven't tried it myself. Risto From padawan12 at obiwannabe.co.uk Fri Dec 14 17:56:43 2007 From: padawan12 at obiwannabe.co.uk (Andy Farnell) Date: Fri Dec 14 17:57:04 2007 Subject: [music-dsp] Re: Cymbal Simulation In-Reply-To: <3784.80.213.196.155.1197671848.squirrel@webmail.uio.no> References: <3784.80.213.196.155.1197671848.squirrel@webmail.uio.no> Message-ID: <20071214225643.661e9160.padawan12@obiwannabe.co.uk> Very good point Risto, especially for the crash/splash which gets a fair old whack by the drummer, wobble is about 1 or 2 Hz I guess. On Fri, 14 Dec 2007 23:37:28 +0100 (CET) "Risto Holopainen" wrote: > > One obvious aspect of cymbals, that no one seems to have pointed out so > far, is that they move when they are hit. This, in combination with the > fact that they radiate different frequencies in different directions, > could be exploited to make even more realistic models than some of those > quite nice sounds posted here. Perhaps you would get this for free in a > physical model, but it should be possible to implement in any model. > Something along the lines of a rotary speaker simulated by modulated delay > lines may be a starting point. Just some suggestions, I haven't tried it > myself. > > Risto > > > > > > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp -- Use the source From douglas at music.columbia.edu Sat Dec 15 00:00:01 2007 From: douglas at music.columbia.edu (douglas repetto) Date: Sat Dec 15 00:00:12 2007 Subject: [music-dsp] [admin] music-dsp FAQ Message-ID: <20071215050001.0D4BB6B4CBA9@music.columbia.edu> Hi, Just a reminder that if you are new to the list you should read the music-dsp FAQ. It contains answers to both technical _and_ adminstrative questions that often come up on the list. If your question appears in the FAQ it is safe to assume that it has been discussed on the list many times in the past, and you should probably have a look through the list archives before posting your question to the list. http://music.columbia.edu/cmc/music-dsp/musicdspFAQ.html Also of interest to new and not-so-new list members: The music-dsp list archives http://music.columbia.edu/cmc/music-dsp/musicdsparchives.html The music-dsp source code archive http://www.musicdsp.org music-dsp books and reviews http://music.columbia.edu/cmc/music-dsp/dspbooks.html All this and more at: http://music.columbia.edu/cmc/music-dsp Hasta la pasta, douglas (this is an automated message sent out on the 1st and 15th of each month) From kcdixon at mtu.edu Sat Dec 15 20:35:30 2007 From: kcdixon at mtu.edu (Kevin Dixon) Date: Sat Dec 15 20:35:41 2007 Subject: [music-dsp] Re: Cymbal Simulation In-Reply-To: <20071214225643.661e9160.padawan12@obiwannabe.co.uk> References: <3784.80.213.196.155.1197671848.squirrel@webmail.uio.no> <20071214225643.661e9160.padawan12@obiwannabe.co.uk> Message-ID: <1105.69.217.62.223.1197768930.squirrel@huskymail.mtu.edu> I'm not really sure how you gather the output of the model, would you want to place a "virtual mic"? How do other models work? -Kevin > > Very good point Risto, especially for the crash/splash which gets a fair > old > whack by the drummer, wobble is about 1 or 2 Hz I guess. > > On Fri, 14 Dec 2007 23:37:28 +0100 (CET) > "Risto Holopainen" wrote: > >> >> One obvious aspect of cymbals, that no one seems to have pointed out so >> far, is that they move when they are hit. This, in combination with the >> fact that they radiate different frequencies in different directions, >> could be exploited to make even more realistic models than some of those >> quite nice sounds posted here. Perhaps you would get this for free in a >> physical model, but it should be possible to implement in any model. >> Something along the lines of a rotary speaker simulated by modulated >> delay >> lines may be a starting point. Just some suggestions, I haven't tried it >> myself. >> >> Risto >> >> >> >> >> >> -- >> dupswapdrop -- the music-dsp mailing list and website: >> subscription info, FAQ, source code archive, list archive, book reviews, >> dsp links >> http://music.columbia.edu/cmc/music-dsp >> http://music.columbia.edu/mailman/listinfo/music-dsp > > > -- > Use the source > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, > dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp > From padawan12 at obiwannabe.co.uk Sat Dec 15 20:45:30 2007 From: padawan12 at obiwannabe.co.uk (Andy Farnell) Date: Sat Dec 15 20:45:44 2007 Subject: [music-dsp] Re: Cymbal Simulation In-Reply-To: <1105.69.217.62.223.1197768930.squirrel@huskymail.mtu.edu> References: <3784.80.213.196.155.1197671848.squirrel@webmail.uio.no> <20071214225643.661e9160.padawan12@obiwannabe.co.uk> <1105.69.217.62.223.1197768930.squirrel@huskymail.mtu.edu> Message-ID: <20071216014530.19e299ac.padawan12@obiwannabe.co.uk> For a thin plate model you'd have three sources of interest. One normal to the top of the it, and one normal to the bottom, which would be pretty much anti- phase from each other. The other is transverse waves rolling around the circumference and appearing in the same plane as the plate, edge on. If you could tap into these different parts of your model and then crossfade between them you'd have your "virtual mic" as the cymbal wobbles. For a real cymbal there's also the bell, which is raised up on only one side and has its own radiance characteristics. To a fair approximation I guess you can say this stays fixed while the rest of the plate moves about. On Sat, 15 Dec 2007 20:35:30 -0500 (EST) "Kevin Dixon" wrote: > I'm not really sure how you gather the output of the model, would you want > to place a "virtual mic"? How do other models work? > > -Kevin > > > > > Very good point Risto, especially for the crash/splash which gets a fair > > old > > whack by the drummer, wobble is about 1 or 2 Hz I guess. > > > > On Fri, 14 Dec 2007 23:37:28 +0100 (CET) > > "Risto Holopainen" wrote: > > > >> > >> One obvious aspect of cymbals, that no one seems to have pointed out so > >> far, is that they move when they are hit. This, in combination with the > >> fact that they radiate different frequencies in different directions, > >> could be exploited to make even more realistic models than some of those > >> quite nice sounds posted here. Perhaps you would get this for free in a > >> physical model, but it should be possible to implement in any model. > >> Something along the lines of a rotary speaker simulated by modulated > >> delay > >> lines may be a starting point. Just some suggestions, I haven't tried it > >> myself. > >> > >> Risto > >> > >> > >> > >> > >> > >> -- > >> dupswapdrop -- the music-dsp mailing list and website: > >> subscription info, FAQ, source code archive, list archive, book reviews, > >> dsp links > >> http://music.columbia.edu/cmc/music-dsp > >> http://music.columbia.edu/mailman/listinfo/music-dsp > > > > > > -- > > Use the source > > -- > > dupswapdrop -- the music-dsp mailing list and website: > > subscription info, FAQ, source code archive, list archive, book reviews, > > dsp links > > http://music.columbia.edu/cmc/music-dsp > > http://music.columbia.edu/mailman/listinfo/music-dsp > > > > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp -- Use the source From vesa.norilo at saunalahti.fi Mon Dec 17 02:33:11 2007 From: vesa.norilo at saunalahti.fi (Vesa Norilo) Date: Mon Dec 17 02:33:15 2007 Subject: [music-dsp] Re: Cymbal Simulation In-Reply-To: <1105.69.217.62.223.1197768930.squirrel@huskymail.mtu.edu> References: <3784.80.213.196.155.1197671848.squirrel@webmail.uio.no> <20071214225643.661e9160.padawan12@obiwannabe.co.uk> <1105.69.217.62.223.1197768930.squirrel@huskymail.mtu.edu> Message-ID: <47662637.2090604@saunalahti.fi> Kevin Dixon wrote: > I'm not really sure how you gather the output of the model, would you want > to place a "virtual mic"? How do other models work? > > > Hi all, What an interesting discussion. I've never modeled a cymbal myself, but I make records for living so I deal with them regularily. The wobble is a real, very audible phenomenon. In orthodox drum recording it's considered a deficit and microphone positions are chosen to lessen it. The worst possible mic position is facing the cymbal directly, too close to one side of it. The wobble seems to "average out" when the mic position doesn't favor one side of the cymbal too heavily. I would guess that however the wobble is implemented, this averaging should be taken into account (one side moving towards and the other side moving away from 'microphone'). I have a hunch that this "three dimensional doppler" effect gives a cymbal sound some of its acoustic depth and interest.. Vesa From johannes.oberg at gmail.com Tue Dec 18 10:32:38 2007 From: johannes.oberg at gmail.com (=?ISO-8859-1?Q?Johannes_=D6berg?=) Date: Tue Dec 18 10:32:54 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <20071214210048.7192362b.padawan12@obiwannabe.co.uk> References: <475E776A.4030501@nilsschneider.de> <476127ED.6090009@elec.qmul.ac.uk> <20071214210048.7192362b.padawan12@obiwannabe.co.uk> Message-ID: I thought these were fantastic, especially considering it's only FM. Love the fifth hit (ride cymbal)! I'd really like that Pd source, or even better a plain old patchsheet printout since I'm not into Pd. /Johannes On 12/14/07, Andy Farnell wrote: > > > FM model. Not very well parameterised. However you can get some > nice control over the hit intensity to bring out more or less > harmonics moving from bell to edge etc. Needs lots of tweaking > to get right. Pd source if anyone wants. > > Andy > > http://obiwannabe.co.uk/sounds/effect-cymbal-triangle-fm.mp3 From padawan12 at obiwannabe.co.uk Tue Dec 18 12:46:40 2007 From: padawan12 at obiwannabe.co.uk (Andy Farnell) Date: Tue Dec 18 12:47:18 2007 Subject: [music-dsp] Cymbal Simulation In-Reply-To: References: <475E776A.4030501@nilsschneider.de> <476127ED.6090009@elec.qmul.ac.uk> <20071214210048.7192362b.padawan12@obiwannabe.co.uk> Message-ID: <20071218174640.79e1546e.padawan12@obiwannabe.co.uk> Hey Johannes, I dumped the patch diagrams and the code and notes here sorry it's all a bit messy, but I'm sure you or anyone else can pick out the basic principle (4 x triangle FM + AM + delay feedback + moog filter to smooth it all out a bit) http://www.obiwannabe.co.uk/html/toys/cymbal-FMAM/cymbalfmam.html On Tue, 18 Dec 2007 16:32:38 +0100 "Johannes ?berg" wrote: > I thought these were fantastic, especially considering it's only FM. > Love the fifth hit (ride cymbal)! I'd really like that Pd source, or > even better a plain old patchsheet printout since I'm not into Pd. > > /Johannes > > On 12/14/07, Andy Farnell wrote: > > > > > > FM model. Not very well parameterised. However you can get some > > nice control over the hit intensity to bring out more or less > > harmonics moving from bell to edge etc. Needs lots of tweaking > > to get right. Pd source if anyone wants. > > > > Andy > > > > http://obiwannabe.co.uk/sounds/effect-cymbal-triangle-fm.mp3 > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp -- Use the source From pickman at inwind.it Tue Dec 18 19:02:41 2007 From: pickman at inwind.it (pickman@inwind.it) Date: Tue Dec 18 19:03:05 2007 Subject: [music-dsp] New 12AX7A Pspice Model Message-ID: I got the data by inspection of RCA datasheet. I will add the data as soon as possible. I don't understand what are u saying about interelectrode capacitance.I used the same values of Koren model that are a bit higher than datasheet values. ---------- Initial Header ----------- >From : music-dsp-bounces@music.columbia.edu To : "A discussion list for music-related DSP" music-dsp@music.columbia.edu Cc : Date : Wed, 12 Dec 2007 15:25:05 -0500 Subject : Re: [music-dsp] New 12AX7A Pspice Model > > > ----- Original Message ----- > > From: "pickman@inwind.it" > > To: "music-dsp" > > Subject: [music-dsp] New 12AX7A Pspice Model > > Date: Wed, 12 Dec 2007 18:33:01 +0100 > > > > > I realized a new Pspice model for RCA 12ax7a Tube.I'm interested in your > > comments.You can download it for free at www.fuzone.it/pspice_model.htm > > it was nice of you to print the data points from your model on top of the raw graphs representing that particular 12AX7A tube (actually 1/2 of it, since it's a dual triode). > > while it might make no difference to audio signals, there are also interelectrode capacitance that *could* be modeled in PSPICE. dunno, at first appearance, how one measures it. > > > -- > > r b-j rbj@audioimagination.com > > "Imagination is more important than knowledge." > > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp > ----------------------------------------------------------- www.fuzone.it " Il sito della mia nuova Rock-Fusion Band " " The website of my new Rock-Fusion Band" From darren.landrum at sbcglobal.net Wed Dec 19 00:46:10 2007 From: darren.landrum at sbcglobal.net (Darren Landrum) Date: Wed Dec 19 00:46:23 2007 Subject: [music-dsp] An introduction Message-ID: <4768B022.6070500@sbcglobal.net> Hello! The main site said it was okay for me to introduce myself, so I thought I'd take that opportunity. My name's Darren, I'm a 31-year-old engineering college student (returning from the workforce), and also a home-based musician. I want to get into DSP programming because I like the idea of a craftsman understanding how his tools work. I do have other reasons, but I won't bore anyone with those. I've so far discovered SynthMaker, and it looks like a fine platform for building on top of based on playing with the demo. I have IT experience, so I suppose I could manage the occasional bit of C/C++ coding as well. If nothing else, I can exercise those math skills I've been getting from calculus class. At any rate, I thought I'd join up and see what I can accomplish. I've read through the FAQ, and I'm glad I did, because I finally learned how up/down-sampling works in code (it's so obvious once someone tells you). Thank you all for your time. Regards, Darren Landrum Port Huron, Michigan, USA