[Csnd] Code Share: Synthetic Harp
Date | 2020-10-05 04:18 |
From | Steven Yi |
Subject | [Csnd] Code Share: Synthetic Harp |
Hi All, I thought I'd share a synthetic harp patch that's loosely physically-inspired. There's subtractive synthesis used for a string pluck sound and a reson bank for a (perhaps overly!) resonant body: https://ide.csound.com/editor/G6ksxg6mOp0T9qB1HCd6 The project above has a melodic pattern generating for testing purposes. Code body for instrument is as follows: instr Harp ;; STRING SOUND asig = vco2(.5, p4, 2, .45) asig += vco2(.25, p4 * 2, 2, linseg(.5, .1, .05, p3, .05)) asig += vco2(.25, p4 * 0.997934234, 12) asig = zdf_ladder(asig, cpsoct(linseg:a(13.4, .1, 10, 1, 5, p3, 4)), 0.5) ;; BODY SOUND a1 = reson(asig, 800, 160) * 0.05 a2 = reson(asig, 2000, 400) * 0.05 a3 = reson(asig, 3000, 650) * 0.05 asig += a1 + a2 + a3 asig = dcblock2(asig) asig *= linen:a(.15 * p5, .001, p3, .01) pan_verb_mix(asig, 0.5, 0.1) endin (replace pan_verb_mix without out(asig,asig) if testing locally) Cheers! Steven Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here |
Date | 2020-10-05 04:58 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
Lovely and cool. Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music > On Oct 4, 2020, at 11:19 PM, Steven Yi |
Date | 2020-10-05 07:44 |
From | Jeff Harrington |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
Very cool sounds! And your reson banks are fascinating! Easy way to add a formant aura around a sound? Jeff https://open.spotify.com/artist/1SlRSnxbcQTZfiUOgGH2zA On 10/5/2020 5:18 AM, Steven Yi wrote: > Hi All, > > I thought I'd share a synthetic harp patch that's loosely > physically-inspired. There's subtractive synthesis used for a string > pluck sound and a reson bank for a (perhaps overly!) resonant body: > > https://ide.csound.com/editor/G6ksxg6mOp0T9qB1HCd6 > > The project above has a melodic pattern generating for testing purposes. > > Code body for instrument is as follows: > > instr Harp > > ;; STRING SOUND > asig = vco2(.5, p4, 2, .45) > asig += vco2(.25, p4 * 2, 2, linseg(.5, .1, .05, p3, .05)) > asig += vco2(.25, p4 * 0.997934234, 12) > > asig = zdf_ladder(asig, cpsoct(linseg:a(13.4, .1, 10, 1, 5, p3, 4)), 0.5) > > ;; BODY SOUND > a1 = reson(asig, 800, 160) * 0.05 > a2 = reson(asig, 2000, 400) * 0.05 > a3 = reson(asig, 3000, 650) * 0.05 > > asig += a1 + a2 + a3 > > asig = dcblock2(asig) > asig *= linen:a(.15 * p5, .001, p3, .01) > > pan_verb_mix(asig, 0.5, 0.1) > endin > > (replace pan_verb_mix without out(asig,asig) if testing locally) > > Cheers! > Steven > > Csound mailing list > Csound@listserv.heanet.ie > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND > Send bugs reports to > https://github.com/csound/csound/issues > Discussions of bugs and features can be posted here Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here |
Date | 2020-10-05 09:39 |
From | Andrea Strappa |
Subject | [Csnd] R: [Csnd] Code Share: Synthetic Harp |
Thank you, Steven, there is a lot to learn. Andrea S.
Da: Jeff Harrington
V
|
Date | 2020-10-05 12:14 |
From | Victor Lazzarini |
Subject | Re: [Csnd] [EXTERNAL] [Csnd] Code Share: Synthetic Harp |
all these examples are brilliant, keep them coming! You could make your own catalog! ======================== Prof. Victor Lazzarini Maynooth University Ireland > On 5 Oct 2020, at 04:18, Steven Yi |
Date | 2020-10-05 14:58 |
From | Steven Yi |
Subject | Re: [Csnd] [EXTERNAL] [Csnd] Code Share: Synthetic Harp |
Thanks all! Jeff: I was thinking along the lines of formants when I started coding this instrument. I think I don't spend enough time designing sounds with reson/mode and will probably continue to practice and exploring with them. Victor: Thanks! I think once we have collections implemented in the Web-IDE I'll be organizing a number of the items I posted into various collections. Just need to find some time. :) On Mon, Oct 5, 2020 at 7:14 AM Victor Lazzarini |
Date | 2020-10-07 02:27 |
From | Dave Seidel |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
Hi Steven, How did you choose the frequency and bandwidth values for the reson bank? - Dave On Sun, Oct 4, 2020 at 11:18 PM Steven Yi <stevenyi@gmail.com> wrote: Hi All, |
Date | 2020-10-07 03:17 |
From | Pete Goodeve |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
Attachments | None |
Date | 2020-10-07 12:58 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
Attachments | mfifpdcjjhcbcdei.png |
asig += vco2(.25, p4 * 2, 2, linseg(.5, .1, .05, p3, .05)) should do the job. here an old one (see image) - the juno 60. had the possibily to modulate the pwm (kpw) parameter by using the envelope. Hi Steven, I have a question, too! You seem to have created the pluck sound by using the zdf_ladder to sweep the filter frequency against the fixed-frequency source tones. I initially assumed that the linen envelope at the end was doing it, but I removed that envelope (with a suitable volume adjustment) and I hear little difference! Is this a common technique, or is it original here? Thanks, -- Pete -- On Tue, Oct 06, 2020 at 09:27:05PM -0400, Dave Seidel wrote:Hi Steven, How did you choose the frequency and bandwidth values for the reson bank? - Dave On Sun, Oct 4, 2020 at 11:18 PM Steven Yi <stevenyi@gmail.com> wrote:Hi All, I thought I'd share a synthetic harp patch that's loosely physically-inspired. There's subtractive synthesis used for a string pluck sound and a reson bank for a (perhaps overly!) resonant body: https://ide.csound.com/editor/G6ksxg6mOp0T9qB1HCd6 The project above has a melodic pattern generating for testing purposes. Code body for instrument is as follows: instr Harp ;; STRING SOUND asig = vco2(.5, p4, 2, .45) asig += vco2(.25, p4 * 2, 2, linseg(.5, .1, .05, p3, .05)) asig += vco2(.25, p4 * 0.997934234, 12) asig = zdf_ladder(asig, cpsoct(linseg:a(13.4, .1, 10, 1, 5, p3, 4)), 0.5) ;; BODY SOUND a1 = reson(asig, 800, 160) * 0.05 a2 = reson(asig, 2000, 400) * 0.05 a3 = reson(asig, 3000, 650) * 0.05 asig += a1 + a2 + a3 asig = dcblock2(asig) asig *= linen:a(.15 * p5, .001, p3, .01) pan_verb_mix(asig, 0.5, 0.1) endin (replace pan_verb_mix without out(asig,asig) if testing locally) Cheers! Steven Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted hereCsound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted hereCsound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here |
Date | 2020-10-07 15:43 |
From | Steven Yi |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
Hi Dave, Might be odd to say but I kind of just came up with them intuitively. I had my students use the formant table from manual for the soprano 'a' for an exercise so I had those kinds of relationships of center frequencies in mind, but I wasn't consulting any charts or analyses when I chose these frequencies. The bandwidths I approached as a wide proportion of the center frequency and then just experimented. I should mention I adjusted the attenuation in the version online since my original post here (https://ide.csound.com/editor/G6ksxg6mOp0T9qB1HCd6) to: a1 = reson(asig, 800, 160) * 0.025 a2 = reson(asig, 2000, 400) * 0.04 a3 = reson(asig, 3000, 650) * 0.03 to balance the resonance a bit. Cheers! Steven On Tue, Oct 6, 2020 at 9:27 PM Dave Seidel |
Date | 2020-10-07 15:54 |
From | Dave Seidel |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
Thanks, Steven! Not odd at all, sometimes intuition is the best guide. Thanks for the code! For me it brings up a long-time goal to design a "sympathetic strings" instrument/UDO for Csound. - Dave On Wed, Oct 7, 2020 at 10:44 AM Steven Yi <stevenyi@gmail.com> wrote: Hi Dave, |
Date | 2020-10-07 15:55 |
From | Steven Yi |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
Hi Pete, (For some reason your message went into my spam folder so I didn't see the message until now. Hopefully will be fixed now!) I don't think there's anything original about the filtering for a plucked string? I think the effect makes sense and karplus-strong string plucks have a similar spectral evolution in attenuating the higher frequencies faster than the lower ones. I use linen alot for declicking and sometimes to soften attacks if most of the sound shaping is done through the filter cutoff. (I just tried with .03 for linen rise time and got a sort of wineglass rub sound, fun!) Cheers! Steven On Tue, Oct 6, 2020 at 10:17 PM Pete Goodeve |
Date | 2020-10-07 22:07 |
From | Oliver Larkin <000000992b40b7cd-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] Code Share: Synthetic Harp |
very nice steven! On Wed, Oct 7, 2020 at 3:55 PM Steven Yi <stevenyi@gmail.com> wrote: Hi Pete, |