# Demo Songs

**URL:** <https://forum.csound.com/t/demo-songs/2544>\
**Category:** General\
**Created:** [September 12, 2026, 4:51pm UTC](https://forum.csound.com/t/demo-songs/2544 "2026-09-12T16:51:41Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [September 12, 2026, 4:51pm UTC](https://forum.csound.com/t/demo-songs/2544/1 "2026-09-12T16:51:41Z")

</div>

Is there a space where I could upload a CSD of a track I created?

Thomas

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 4, 2026, 1:01pm UTC](https://forum.csound.com/t/demo-songs/2544/2 "2026-10-04T13:01:43Z")

</div>

> **[Csound Web-IDE](https://ide.csound.com/)**

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 4, 2026, 5:52pm UTC](https://forum.csound.com/t/demo-songs/2544/3 "2026-10-04T17:52:13Z")

</div>

Hey thanks, that seems to be exactly what I was looking for.

Thomas

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 4, 2026, 7:43pm UTC](https://forum.csound.com/t/demo-songs/2544/4 "2026-10-04T19:43:32Z")

</div>

I just uploaded 2 of my projects but rendering is very slow. I pressed the play button but half an hour later it’s still in progress, no sound. A progress bar showing how far the CSD has been rendered so far and an estimated remaining time would be a huge benefit..

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 5, 2026, 7:15am UTC](https://forum.csound.com/t/demo-songs/2544/5 "2026-10-05T07:15:17Z")

</div>

Can you send me a link to the project you want to render? If it’s public? There could be different explainations for this.

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 5, 2026, 7:50am UTC](https://forum.csound.com/t/demo-songs/2544/6 "2026-10-05T07:50:49Z")

</div>

I found some Thomas Huber and I noticed this: [Csound Web-IDE](https://ide.csound.com/editor/cY2vOMFTGj823JGQSe3u)

I replaced from the rendering to

```csound
<CsoundSynthesizer>
<CsOptions>
;-d -W -f -o Evening_at_the_Lake.wav
</CsOptions>
<CsInstruments>
sr = 48000
ksmps = 128

```

I think you could have found a bug where the IDE thinks pressing play is a realtime performance but your options call for a render. So there’s a mismatch.

For play I recommend keeping realtime options. But I will improve on rendering. Nice music, I’m sure other visitors would love to press play and start to hear it 🙂

p.s I also recommend adding README.md for introductory texts. It will appear as the first document.

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 5, 2026, 9:29am UTC](https://forum.csound.com/t/demo-songs/2544/7 "2026-10-05T09:29:31Z")

</div>

Yes, you found my 2 projects. They both are not suitable for realtime playing at full sampling rate, on my MacBook they take around 30 min to render. What about background rendering and then caching the result compressed as mp3? With a nightly check for changes and re-rendering in case? Then, users could listen to the projects by pressing „play“, Spotify-like​😉

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 5, 2026, 9:33am UTC](https://forum.csound.com/t/demo-songs/2544/8 "2026-10-05T09:33:22Z")

</div>

That’s going to cost a lot of money which this project doesn’t have. For now the best solution is higher ksmps and rendered files go to some other platform like soundcloud. Because also we have a 2MB filesize limit. The costs for the whole website comes out of our own pockets atm. But yeh, I recommend upping the ksmps for realtime play. I’m working on a feature that makes selecting lower ksmps value on render easier.

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 5, 2026, 10:46am UTC](https://forum.csound.com/t/demo-songs/2544/9 "2026-10-05T10:46:16Z")

</div>

Ok I see, yes cost matters. What if the csd is rendered on the client side in the browser? There‘s a web-assembly (WASM) version of csound around: [csound-extended WebAssembly Examples | csound-examples](https://gogins.github.io/csound-examples)

> **[Csound Player](https://gogins.github.io/csound-examples/player.html)**

I will dive into that later, might be a solution as the compute is used at the client, not costing on the server.

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 5, 2026, 3:52pm UTC](https://forum.csound.com/t/demo-songs/2544/10 "2026-10-05T15:52:41Z")

</div>

[ide.csound.com](http://ide.csound.com) runs wasm both for realtime and rendering

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 5, 2026, 5:28pm UTC](https://forum.csound.com/t/demo-songs/2544/11 "2026-10-05T17:28:17Z")

</div>

Ok, but can you play my projects in realtime on [ide.csound.com](http://ide.csound.com) (with ksmps=64)? Because on my MacBook and also on the iPhone 17, it does not work, I don”t hear any sound.

I implemented a PoC and it does play in realtime, both my projects, try it at [Csound Web Player · WASM proof of concept](https://thomassresearch.github.io/CsoundWebPlayer/)

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 6, 2026, 5:55am UTC](https://forum.csound.com/t/demo-songs/2544/12 "2026-10-06T05:55:46Z")

</div>

Yes I play your project just fine. First it was because there was -o option, now you’ve commented it out so it works (note that semicolon is the comment marker in csound, not # hashtag)

iPhones are annoying with WebAudio, somthing to revisit, just to rule out the obvious, you need to be sure to unmute the phone before pressing the play button. Browsers WebAudio will not produce sound if the phone is on “Silent” mode (even vibration silent mode).

Very nice WASM proof of concept. You’re having fun with this I see 🙂

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 6, 2026, 5:57am UTC](https://forum.csound.com/t/demo-songs/2544/13 "2026-10-06T05:57:40Z")

</div>

I do notice buffer underruns. One thing you can do to optimise your piece. Is to reduce the logging (you can do this with a -m flag), it can slow down and eat away performance. Also reusing channels instead of spawning new ones every time. There’s a lot of thing your CSD can be optimised for performance, if you ask a good LLM enginge to do it.

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 6, 2026, 7:25am UTC](https://forum.csound.com/t/demo-songs/2544/14 "2026-10-06T07:25:06Z")

</div>

Hi

wow, yes after fixing the comment marker (semicolon instead if hash sign) I can play it in [ide.csound.com](http://ide.csound.com), too! I added a “-m 16” option to suppress all logging.

How can I change the CSD to reuse channels? I would need to adopt the CSD exporter in my Orchestron.

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 6, 2026, 9:52am UTC](https://forum.csound.com/t/demo-songs/2544/15 "2026-10-06T09:52:23Z")

</div>

> [@Thomas](#):
>
> How can I change the CSD to reuse channels? I would need to adopt the CSD exporter in my Orchestron.

that’s your homework 🙂 looks like generated score and orchestra, so you’ll want to redesign how you generate csound code. The channels can be opened globally on init, even global audio variables. If you use LLM, I’m sure if could do a decent software architecture overhaul on your code to achieve better optimisations.

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 6, 2026, 10:11am UTC](https://forum.csound.com/t/demo-songs/2544/16 "2026-10-06T10:11:46Z")

</div>

I‘ll dive into it as soon as I find the time…

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 7, 2026, 9:06am UTC](https://forum.csound.com/t/demo-songs/2544/17 "2026-10-07T09:06:59Z")

</div>

I did some profiling, using global channels had a relatively small effect, but my analysis found a much bigger issue: the mixer values (level, pan, effect send etc) are constant once set and in the export, the values can be set as fixed (no mixer automation needed), plus, very big impact, the CSD used metering, which is unnecessary just for playback or offline rendering. On the new exports, I did not get audio dropouts any more. However, there’s still an issue: When I play one project (play on the project icon in the overview of my user), then stop, and then play the other project, the second project does not play, it seems to hang forever. I then have to reload the webpage and press play on the second project, then is works. But I cannot press stop on one project and then play another. Maybe it’s a Mac issue? (however, I tested with Chrome and Safari, both the same issue)

---

<div class="post-metadata">

**Author:** ![hlolli](https://forum.csound.com/user_avatar/forum.csound.com/hlolli/32/3_2.png) [@hlolli](https://forum.csound.com/u/hlolli)\
**Post date:** [October 7, 2026, 2:16pm UTC](https://forum.csound.com/t/demo-songs/2544/18 "2026-10-07T14:16:07Z")

</div>

I fixed a bug based on what you described, can you test if it’s fixed?

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 7, 2026, 2:39pm UTC](https://forum.csound.com/t/demo-songs/2544/19 "2026-10-07T14:39:43Z")

</div>

Yes, now it works, I can play one, stop, then play another, fixed 🙂

---

<div class="post-metadata">

**Author:** ![Thomas](https://forum.csound.com/letter_avatar_proxy/v4/letter/t/e36b37/32.png) [@Thomas](https://forum.csound.com/u/Thomas)\
**Post date:** [October 7, 2026, 6:21pm UTC](https://forum.csound.com/t/demo-songs/2544/20 "2026-10-07T18:21:51Z")

</div>

Oh, and there’s one more thing: the [ide.csound.com](http://ide.csound.com) player really just plays audio on iOS when the phone is NOT in silent mode. But there is a trick (and my WASM PoC player uses it and always plays, even when in silent mode):  
The trick is **requesting a playback audio session** before creating the Web Audio context:

```csound
// Inside the Play button’s click handler, before any await:
if (navigator.audioSession) {
navigator.audioSession.type = 'playback';
}

const context = new AudioContext({ sampleRate: 48000 });
const resumed = context.resume();
// Pass this context to Csound, then initialize WASM.

```

This tells iOS to treat the sound as media playback, which can play through Silent Mode (see [Configuring an Audio Session](https://developer.apple.com/library/archive/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionBasics/AudioSessionBasics.html) ).  
So set `navigator.audioSession.type = 'playback'`, then create/resume the AudioContext directly in the user’s Play gesture, before asynchronous WASM loading. And feature-detect the API for iOS.

[Next page](https://forum.csound.com/t/demo-songs/2544.md?page=2)
