<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: zebproj</title><link>https://news.ycombinator.com/user?id=zebproj</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 06 May 2026 20:36:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=zebproj" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by zebproj in "Virtual violin produces realistic sounds"]]></title><description><![CDATA[
<p>The article makes it sound like this is a very a new idea, but physical models of music instruments, including violin, has been around for over 40 years. Daisy Bell, the first piece of computer music and performed by their model, utilized a physical model of the human singing voice based on measurements of human vocal tract, and that was done in 1962.<p>Julius Smith wrote pretty comprehensive textbook on the subject of building physical models of musical instruments, available online. Here, for example, is a chapter on modeling bowed string sounds: <a href="https://ccrma.stanford.edu/~jos/pasp/Bowed_Strings.html" rel="nofollow">https://ccrma.stanford.edu/~jos/pasp/Bowed_Strings.html</a></p>
]]></description><pubDate>Wed, 06 May 2026 11:55:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48035182</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=48035182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48035182</guid></item><item><title><![CDATA[New comment by zebproj in "How Brian Eno Created Ambient 1: Music for Airports (2019)"]]></title><description><![CDATA[
<p>I often use the general algorithm for 2/1 as my "hello world" when I'm building new generative music systems. You don't need too many ingredients to set it up, and it yields some surprisingly decent sounding results.<p>The most recent one[0] I made was done when I was playing around with Rust, WASM, and WebAudio. (You'll need to press somewhere to start the sound)<p>0: <a href="https://pbat.ch/isorhythms/" rel="nofollow">https://pbat.ch/isorhythms/</a></p>
]]></description><pubDate>Tue, 02 Dec 2025 12:17:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=46120494</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=46120494</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46120494</guid></item><item><title><![CDATA[Ask HN: How many of you are working in tech without a STEM degree?]]></title><description><![CDATA[
<p>As someone without a STEM degree and who is largely self-taught, I'm interested in hearing about similar experiences. What is your story? What are you doing now? How long have you been doing it? etc, etc.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44658213">https://news.ycombinator.com/item?id=44658213</a></p>
<p>Points: 53</p>
<p># Comments: 82</p>
]]></description><pubDate>Wed, 23 Jul 2025 11:58:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44658213</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=44658213</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44658213</guid></item><item><title><![CDATA[New comment by zebproj in "Show HN: A singing synthesizer for the browser with automatic 3-part harmony"]]></title><description><![CDATA[
<p>Greetings,<p>What a beautiful idea. Sadly, I do not think I currently have the skills required to build such a tool.<p>The underlying algorithms and vocal models I'm using here are just good enough to get some singing vowels working. You'd need a far more complex model to simulate the turbulent airflow required for a cough.<p>If you suspend disbelief and allow for more abstract sounds, I believe you can craft sounds that have similar emotional impact. A few years ago, I made some non-verbal goblin sounds [0] from very simple synthesizer components and some well-placed control curves. Even though they don't sound realistic, character definitely comes through.<p>0: <a href="https://pbat.ch/gestlings/goblins" rel="nofollow">https://pbat.ch/gestlings/goblins</a></p>
]]></description><pubDate>Fri, 27 Dec 2024 02:17:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=42519444</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=42519444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42519444</guid></item><item><title><![CDATA[New comment by zebproj in "Show HN: A singing synthesizer for the browser with automatic 3-part harmony"]]></title><description><![CDATA[
<p>Thanks everyone for the suggestions and kind words.<p>Some details:<p>The source code for this project can be found on github [0].<p>I am using an AudioWorklet node with custom DSP using Rust/WebAssembly. Graphics are just done with the Canvas API. The voice leading is done algorithmically using a state machine with some heuristics.<p>The underlying DSP algorithm is a physical model of the human voice, similar to the model you'd find in Pink Trombone [1], but with some added improvements. The DSP code for that is a small crate [2] I've been working on just for singing synthesizers based on previous work I've done.<p>0: <a href="https://github.com/paulBatchelor/trio">https://github.com/paulBatchelor/trio</a><p>1: <a href="https://dood.al/pinktrombone/" rel="nofollow">https://dood.al/pinktrombone/</a><p>2: <a href="https://github.com/PaulBatchelor/voxbox">https://github.com/PaulBatchelor/voxbox</a></p>
]]></description><pubDate>Thu, 26 Dec 2024 19:10:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=42517060</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=42517060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42517060</guid></item><item><title><![CDATA[New comment by zebproj in "Show HN: A singing synthesizer for the browser with automatic 3-part harmony"]]></title><description><![CDATA[
<p>Thanks, I'll look into it</p>
]]></description><pubDate>Thu, 26 Dec 2024 19:05:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=42517028</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=42517028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42517028</guid></item><item><title><![CDATA[New comment by zebproj in "Show HN: A singing synthesizer for the browser with automatic 3-part harmony"]]></title><description><![CDATA[
<p>A tutorial would be helpful.<p>Holding down a note and waiting will cause a second, then a third not to appear. When you move your held, note to another pitch, the other pitches will follow, but with a bit of delay. This produces what is known as staggered voice leading, and produces interesting "in-between" chords.</p>
]]></description><pubDate>Thu, 26 Dec 2024 19:04:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=42517027</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=42517027</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42517027</guid></item><item><title><![CDATA[Show HN: A singing synthesizer for the browser with automatic 3-part harmony]]></title><description><![CDATA[
<p>Article URL: <a href="https://pbat.ch/recurse/demos/trio/">https://pbat.ch/recurse/demos/trio/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42513276">https://news.ycombinator.com/item?id=42513276</a></p>
<p>Points: 208</p>
<p># Comments: 34</p>
]]></description><pubDate>Thu, 26 Dec 2024 05:14:00 +0000</pubDate><link>https://pbat.ch/recurse/demos/trio/</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=42513276</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42513276</guid></item><item><title><![CDATA[Show HN: A singing synthesizer for the browser with algorithmic 3-part harmony]]></title><description><![CDATA[
<p>Hello HN!<p>This is a demo I built during my batch at the Recurse Center. It's built using WebAudio, WebAssembly (via Rust), and the Canvas API. The source code for this demo, along with my other vocal synthesis related RC demos[0], can be found at a monorepo[1] where I've been dumping all my RC work and logs.<p>The sound is generated using a physical model of the human singing voice, using a work-in-progress project called VoxBox [2].<p>The harmonization is done using something that kind of resembles a markov chain. Only, instead of using weighted probabilities and randomness, I use a selection heuristic that chooses a chord based on how often it has been used and how much voice movement is required.<p>Thanks for reading! Happy to answer any other questions.<p>0: <a href="https://pbat.ch/recurse/demos/" rel="nofollow">https://pbat.ch/recurse/demos/</a><p>1: <a href="https://github.com/PaulBatchelor/Recurse/tree/main/scratch/trio">https://github.com/PaulBatchelor/Recurse/tree/main/scratch/t...</a><p>2: <a href="https://github.com/paulBatchelor/voxbox">https://github.com/paulBatchelor/voxbox</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41152848">https://news.ycombinator.com/item?id=41152848</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Sun, 04 Aug 2024 11:35:06 +0000</pubDate><link>https://pbat.ch/recurse/demos/trio/</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=41152848</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41152848</guid></item><item><title><![CDATA[New comment by zebproj in "Csound"]]></title><description><![CDATA[
<p>oh yeah, I made that.<p>Sporth is a stack-based language I wrote a few years ago. Stack-based languages are a great way to build up sound structures. I highly recommend trying it.<p>Chorth may need some fixes before it can run again. I haven't looked at it in a while, but I had a lot of fun using when I was in SLOrk.</p>
]]></description><pubDate>Sat, 02 Sep 2023 22:44:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=37366143</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=37366143</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37366143</guid></item><item><title><![CDATA[New comment by zebproj in "Csound"]]></title><description><![CDATA[
<p>If you compare codebases, SuperCollider is definitely the more "modern" of the 2. SC is written in a reasonably modern version of C++, and over the years has gone through significant refactoring. Csound is mostly implemented in C, with some of the newer bits written in C++. Many parts of Csound have been virtually untouched since the 90s.<p>Syntax-wise, Csound very closely resembles the MUSIC-N language used by early computer musicians in the 60s. "Trapped in Convert" by Richard Boulanger was written in Csound in 1979, and to this day is able to run on the latest version of Csound.<p>Both Csound and SC are both very capable DSP engines, with a good core set of DSP algorithms. You can get a "good" sound out of both if you know what you are doing.<p>I find people who are more CS-inclined tend to prefer SuperCollider over Csound because it's actually a programming language you can be expressive in. While there have been significant syntax improvements in Csound 6, I'd still call Csound a "text-based synthesizer" rather than a "programming language".<p>That being said, I also think Csound lends itself to those who have more of a formal background in music. Making an instrument in an Orchestra is just like making a synthesizer patch, and creating events in a Csound score is just like composing notes for an instrument to play.<p>FWIW, I've never managed to get SuperCollider to stick for me. The orchestra/score paradigm of Csound just seems to fit better with how I think about music. It's also easier to offline render WAV files in Csound, which was quite helpful for me.</p>
]]></description><pubDate>Sat, 02 Sep 2023 13:42:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=37361469</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=37361469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37361469</guid></item><item><title><![CDATA[New comment by zebproj in "Csound"]]></title><description><![CDATA[
<p>You might enjoy my project called sndkit [0]. It's a collection of DSP algorithms implemented in C, written in a literate programming style, and presented inside of a static wiki. There's also a tiny TCL-like scripting language included that allows one to build up patches. This track [1] was made entirely using sndkit.<p>0: <a href="https://pbat.ch/sndkit/" rel="nofollow noreferrer">https://pbat.ch/sndkit/</a><p>1: <a href="https://soundcloud.com/patchlore/synthwave" rel="nofollow noreferrer">https://soundcloud.com/patchlore/synthwave</a></p>
]]></description><pubDate>Sat, 02 Sep 2023 12:48:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=37361039</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=37361039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37361039</guid></item><item><title><![CDATA[New comment by zebproj in "Csound"]]></title><description><![CDATA[
<p>I actually met BT and asked him about this track.<p>While it's mostly written in Csound, he "cheated" with the guitar track, which was a recorded sample brought into Csound.</p>
]]></description><pubDate>Sat, 02 Sep 2023 12:41:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=37360983</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=37360983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37360983</guid></item><item><title><![CDATA[New comment by zebproj in "An IBM computer learned to sing in 1961"]]></title><description><![CDATA[
<p>See my other comments here for more info about the underlying technology.<p>It <i>is</i> pretty incredible that sophisticated digital physical models of the human vocal tract were being done in the early 60s. This was able to be done largely due to the deep pockets of Bell Labs. A <i>lot</i> of R+D was put into the voice and voice transmission.</p>
]]></description><pubDate>Sat, 13 May 2023 00:20:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=35924148</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=35924148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35924148</guid></item><item><title><![CDATA[New comment by zebproj in "An IBM computer learned to sing in 1961"]]></title><description><![CDATA[
<p>Many of the simpler vocal tract physical models are very similar to the cascaded allpass filter topologies found in LPC speech synthesizers.<p>In general, tract physical models have never sounded all that realistic. The one big thing they have going for them is control. Compared to other speech synthesis techniques, they can be quite malleable. Pink Trombone [1] uses a physical model under the hood. While it's not realistic sounding, the interface is quite compelling.<p>1: <a href="https://dood.al/pinktrombone/" rel="nofollow">https://dood.al/pinktrombone/</a></p>
]]></description><pubDate>Sat, 13 May 2023 00:14:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=35924108</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=35924108</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35924108</guid></item><item><title><![CDATA[New comment by zebproj in "An IBM computer learned to sing in 1961"]]></title><description><![CDATA[
<p>Sort of. Both use articulatory synthesis, which attempts to model speech by breaking it up into components and using some coordinated multi-dimensional continuous control to perform phonemes (the articulation aspect). The voder uses analog electronics, while Daisy does it digitally (and without a human performer).<p>The underlying signal processing used for both is different, but both use a source-filter mechanism.</p>
]]></description><pubDate>Fri, 12 May 2023 17:37:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=35919356</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=35919356</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35919356</guid></item><item><title><![CDATA[New comment by zebproj in "An IBM computer learned to sing in 1961"]]></title><description><![CDATA[
<p>>  Does that mean that the similarity in sound to formant-based speech synthesis is because they're both using a sawtooth wave, noise, or other relatively simple sound as the raw input?<p>Essentially, yes. Both are known as "source-filter" models. A sawtooth, narrow pulse, or impulse wave is a good approximation glottal excitation for the source signal, though many articulatory speech models use a more specialized source model that's analytically derived from real waveforms produce by the glottis. The Lilencrantz-Fant Derivative Glottal Waveform model is the most common, but a few others exist.<p>In formant synthesis, the formant frequencies are known ahead of time and are explicitly added to the spectrum using some kind of peak filter. With waveguides, those formants are implicitly created based on the shape of the vocal tract (the vocal tract here is approximated as a series of cylindrical tubes with varying diameters).</p>
]]></description><pubDate>Fri, 12 May 2023 17:31:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=35919284</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=35919284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35919284</guid></item><item><title><![CDATA[New comment by zebproj in "An IBM computer learned to sing in 1961"]]></title><description><![CDATA[
<p>The singing synthesizer used a surprisingly sophisticated physical model of the human voice [1].<p>The music was mostly likely created using some variant of MUSIC-N [2], the first computer music language. The syntax and design of Csound[3] was based off of MUSIC-N, and I believe the older Csound opcodes are either ported or based off those found.<p>Apparently the sources for MUSIC-V (the last major iteration of the MUSIC language) can be found on github [4], though I haven't tried to run it yet.<p>1: <a href="https://ccrma.stanford.edu/~jos/pasp/Singing_Kelly_Lochbaum_Vocal_Tract.html" rel="nofollow">https://ccrma.stanford.edu/~jos/pasp/Singing_Kelly_Lochbaum_...</a><p>2: <a href="https://en.wikipedia.org/wiki/MUSIC-N" rel="nofollow">https://en.wikipedia.org/wiki/MUSIC-N</a><p>3: <a href="https://en.wikipedia.org/wiki/Csound" rel="nofollow">https://en.wikipedia.org/wiki/Csound</a><p>4: <a href="https://github.com/vlazzarini/MUSICV">https://github.com/vlazzarini/MUSICV</a></p>
]]></description><pubDate>Fri, 12 May 2023 15:46:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=35917840</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=35917840</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35917840</guid></item><item><title><![CDATA[New comment by zebproj in "An IBM computer learned to sing in 1961"]]></title><description><![CDATA[
<p>The neat thing about this particular singing synthesizer is that it used a surprisingly sophisticated (especially for the 60s) physical model of the human vocal tract [1], and was perhaps the first use of physical modeling sound synthesis. Vowel shapes were obtained through physical measurements of an actual vocal tract via x-rays. In this case, they were Russian vowels, but were close enough for English.<p>While this particular kind of speech synthesis[2] isn't really used anymore, it's still fun to play around with. Pink Trombone [3] is a good example of a fun toy that uses a waveguide physical model, similar to the Kelly-Lochbaum model above. I've adapted some of the DSP in Pink Trombone a few times[4][5][6], and used it in some music[7] and projects[8]of mine.<p>For more in-depth information about specifically doing singing synthesis (as opposed to general speech synthesis) using waveguide physical models, Perry Cook's Dissertation [9] is still considered to be a seminal work. In the early 2000s, there were a handful of follow-ups to physically-based singing synthesis being done at CCRMA. Hui-Ling Lu's dissertation [10] on glottal source modelling for singing purposes comes to mind.<p>1: <a href="https://ccrma.stanford.edu/~jos/pasp/Singing_Kelly_Lochbaum_Vocal_Tract.html" rel="nofollow">https://ccrma.stanford.edu/~jos/pasp/Singing_Kelly_Lochbaum_...</a><p>2: <a href="https://en.wikipedia.org/wiki/Articulatory_synthesis" rel="nofollow">https://en.wikipedia.org/wiki/Articulatory_synthesis</a><p>3: <a href="https://dood.al/pinktrombone/" rel="nofollow">https://dood.al/pinktrombone/</a><p>4: <a href="https://pbat.ch/proj/voc/" rel="nofollow">https://pbat.ch/proj/voc/</a><p>5: <a href="https://pbat.ch/sndkit/tract/" rel="nofollow">https://pbat.ch/sndkit/tract/</a><p>6: <a href="https://pbat.ch/sndkit/glottis/" rel="nofollow">https://pbat.ch/sndkit/glottis/</a><p>7: <a href="https://soundcloud.com/patchlore/sets/looptober-2021" rel="nofollow">https://soundcloud.com/patchlore/sets/looptober-2021</a><p>8: <a href="https://pbat.ch/wiki/vocshape/" rel="nofollow">https://pbat.ch/wiki/vocshape/</a><p>9: <a href="https://www.cs.princeton.edu/~prc/SingingSynth.html" rel="nofollow">https://www.cs.princeton.edu/~prc/SingingSynth.html</a><p>10: <a href="https://web.archive.org/web/20080725195347/http://ccrma-www.stanford.edu/~vickylu/thesis/index.html" rel="nofollow">https://web.archive.org/web/20080725195347/http://ccrma-www....</a></p>
]]></description><pubDate>Fri, 12 May 2023 15:39:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=35917750</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=35917750</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35917750</guid></item><item><title><![CDATA[New comment by zebproj in "Aubio, a C library for analyzing songs"]]></title><description><![CDATA[
<p>From the website:<p>> Note: aubio is not MIT or BSD licensed. Contact the author if you need it in your commercial product.</p>
]]></description><pubDate>Tue, 21 Sep 2021 22:10:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=28610637</link><dc:creator>zebproj</dc:creator><comments>https://news.ycombinator.com/item?id=28610637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28610637</guid></item></channel></rss>