At the Sounding Edge: What's Going On with Csound?
Although the methods described above are workable, they require separate steps in the workflow. That is, you write the files in your text editor, then you compile them and audition the results, perhaps further editing the audio file in a soundfile editor and then you repeat the process as necessary. It certainly would be nice to have the entire work cycle managed from a single interface, and that is exactly what is provided by CsoundVST.
Csound developer Michael Gogins has given us CsoundVST as an integral graphic interface to Csound5 (Figure 1). CsoundVST combines all of the steps in the edit/compile/run cycle and adds a few neat amenities. User-configurable items include VST plugin mode, Csound performance mode and your choice of soundfile editor. Versioning is offered, a nice feature that creates a numbered series of output files. Basic start/stop performance controls also are provided. Figure 2 shows this new Csound GUI in action, running the code from the examples above.
As you can see in the figures, CsoundVST displays in two sections. The top button bar is fairly self-explanatory, and the tooltips help should clarify any obscure purpose. The tabbed section shown in Figure 1 is in Classic Csound performance mode. When the Python performance mode is selected, the tabbed section changes to the arrangement shown in Figure 3.
The code in Figure 3 is from Koch.py, a Python script by Michael Gogins and donated to the Csound5 examples directory. The script uses native Python code to create a Csound score generator. It then utilizes a series of imported Csound-related functions to define a Csound orchestra for processing the generated score. The last lines of the script invoke the Csound binary with appropriate options to run in real time. Click the Perform button in the GUI to render the script, the same as you would render a Csound orc/sco or CSD file.
CsoundVST loads individual orc/sco files, and it also loads CSD files, automatically parsing them into the appropriate sections of the GUI--options, instruments, score. The Save button saves your work in CSD format only; that is, it does not save orc and sco files separately.
The JACK audio server is one of the finest achievements in the open-source audio software world. JACK is designed for robust low-latency and ease of connectivity, and it is no exaggeration to say that support for JACK has become an expected asset to any serious Linux sound program.
Thanks to developer Istvan Varga, Csound5 provides basic support for JACK. At this time, the process of connection is a bit cumbersome, but again the task can be lightened by the use of the .csoundrc file. The following command declares JACK as the audio system of choice and autoconnects Csound's audio output to the first ALSA playback port:
-+rtaudio=jack --expression-opt -b 512 -B 2048 -odac:alsa_pcm:playback_ -d -m0
These settings accommodate my SBLive. The -b software buffer value should equal JACK's buffer size; it must be less than -B, the hardware buffer value, and both buffer flags must be powers of two. Additionally, the JACK sample rate must equal the sample rate of your orchestra. Figure 4 shows how Csound appears as a client in the QJackCtl audio connection tab as a result of these settings.
Future improvements may include support for the JACK transport control mechanism. But even in its current state, Csound5's JACK support is a wonderful addition to the system.
Code fixes have repaired and enhanced Csound's MIDI support, greatly improving this aspect of Csound5. Csound5 now relies upon the PortMIDI system for its basic MIDI connectivity. This change is a great improvement for Csound overall and hopefully will provide a common cross-platform layer for MIDI I/O. Linux users now can enjoy connection to any available MIDI port, including ALSA's virtual MIDI ports, allowing multiple connections to a single port.
Similis sum folio de quo ludunt venti.
- Readers' Choice Awards 2013
- Linux Kernel News - November 2013
- Mars Needs Women
- RSS Feeds
- Sublime Text: One Editor to Rule Them All?
- Advanced Hard Drive Caching Techniques
- December 2013 Issue of Linux Journal: Readers' Choice
- Raspberry Pi: the Perfect Home Server
- New Products
- Web Administration Scripts
- on the ground
41 min 38 sec ago
- I was able to read the whole
2 hours 10 min ago
- since i have read the title i
5 hours 30 min ago
- Belanja Online Cari Voucher Diskon
5 hours 36 min ago
- The kernel doesn't really
17 hours 46 min ago
18 hours 17 min ago
18 hours 18 min ago
20 hours 22 min ago
- This should be very helpful
21 hours 36 min ago
- As much as I share your point
23 hours 56 min ago