[Csnd] [share] - MIDI Synthesizer
Date | 2024-06-23 19:20 |
From | Steven Yi |
Subject | [Csnd] [share] - MIDI Synthesizer |
Hi All, I thought I'd share a MIDI synth that I thought might be useful as a starter template for exploration. One interesting thing about it is the declick_rel UDO. I hadn't ever thought to do something like this, but it's intentionally using a linseg that won't run until release time. It allowed me to create a declicking envelope that I could control easily what would happen over the release segment. (Kind of a problem for most -r opcodes that allow setting only one release segment curve.) Maybe it's a technique others have used before but was new to me. It's also pretty efficient in that it just returns the initialized 1 value up until release time. opcode declick_rel, a, ii irel, idec xin asig init 1 if release() == 1 then // replace with whatever shape you like for release segment asig = linseg(1, irel - idec, 1, idec, 0) endif xout asig endop The synth itself is pretty straightforward: * 2-OSC (vco2) * 2-pole filter with filter cutoff env * drift LFO and DADSR for vibrato LFO and there is a simple mixer with reverb amount and pre-delay. The example is available on the Web IDE at: https://ide.csound.com/editor/4DprFSwVtugMtoEzODuo and I've pasted the code below. Cheers! Steven [CODE] ;; Author: Steven Yi ;; Date: 2024-06-23 ;; Description: MIDI Synthesizer, 2-OSC, DADSR for modulation, Key Tracking, ;; novel declick env for control in release stage |
Date | 2024-06-24 11:49 |
From | Tarmo Johannes |
Subject | Re: [Csnd] [share] - MIDI Synthesizer |
Thanks for sharing the example! The release opcode is very clever, I will definitely use it. And the whole code is inspiring! Tarmo P, 23. juuni 2024 21:21 Steven Yi <stevenyi@gmail.com> kirjutas: Hi All, |
Date | 2024-06-26 22:35 |
From | Aaron Krister Johnson |
Subject | Re: [Csnd] [share] - MIDI Synthesizer |
Thanks for sharing, Steven, I'll check it out. An interesting side-meta-conversation can be had about the virtues of updating/clearing globals vs. using chnget/chnset (and obviously, the old deprecated ZAK opcodes).On Sun, Jun 23, 2024 at 11:21 AM Steven Yi <stevenyi@gmail.com> wrote: Hi All, |
Date | 2024-06-27 01:24 |
From | Steven Yi |
Subject | Re: [Csnd] [share] - MIDI Synthesizer |
Welcome guys! I think channels are good for: * Working with I/O with host app * dynamic routing using sprintf to determine a channel to route to (e.g., single instrument where each note reads from different channels) I think globals work well otherwise, including global arrays like in my live code library's stereo bus system: https://github.com/kunstmusik/csound-live-code/blob/main/livecode.orc#L1105-L1138 Larger projects I feel like benefit from some kind of abstraction like the sbus UDOs in the above, or for the routing to be handled for you (like in Blue), especially if you're planning out a complex mixing scheme using a lot of effects and things like sidechaining. On Wed, Jun 26, 2024 at 5:35 PM Aaron Krister Johnson |
Date | 2024-06-30 03:08 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Csnd] [share] - MIDI Synthesizer |
Thanks Steven - all of this work is so inspiring. The MIDI instrument is wonderful. - Dr.B Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music Professional Writing & Technology Division On Wed, Jun 26, 2024 at 8:25 PM Steven Yi <stevenyi@gmail.com> wrote: Welcome guys! |
Date | 2024-09-08 23:57 |
From | Partev Sarkissian <0000060b2ef1338e-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] [share] - MIDI Synthesizer |
Steve Roach,... as in the synth group Moebius, with Bryce Robley and Bruce Courtois? Aaron,... learning about ZAK and his math lately. Very interesting and useful here. Nice. Dorian, I like it. -Partev
On Wednesday, June 26, 2024 at 10:36:12 PM GMT+1, Aaron Krister Johnson <akjmicro@gmail.com> wrote:
Thanks for sharing, Steven, I'll check it out. An interesting side-meta-conversation can be had about the virtues of updating/clearing globals vs. using chnget/chnset (and obviously, the old deprecated ZAK opcodes).On Sun, Jun 23, 2024 at 11:21 AM Steven Yi <stevenyi@gmail.com> wrote: Hi All, |