About

The Csound Blog is a collection of journals that are distributed within unified Csound csd files.

There is no inherent structure or format, as the topics and level of difficulty can and will vary greatly between each entry.

In other words, expect anything.

Enjoy!

-Jacob Joaquin

Download

Csound Links

Valid XHTML 1.0 Strict

SineBox

Today's blog is on SineBox: a "music box" like instrument that plays itself. Once a user starts SineBox with a single i-event in the score, SineBox creates instances of itself, generating multiple sine tones over time. This may not be the most musical piece of Csound technology ever conceived of. It can, however, be molded to fit a wide range of uses, musical and otherwise.

Topics

  • P-Fields
  • if
  • schedule

The Infamous mcseq

I want to learn morse code. I don't know why, I just do. So a few days ago, I made it my new year's resolution. The first action I took to help me accomplish this goal of mine was writing the Csound instrument Morse Code Sequencer Event Generator, or mcseq for short.

Topics

  • Morse Code
  • Event Generators
  • Sequencers
  • String Parsing

Modular Instruments Part II

In the previous blog, Modular Instruments, I presented an instrument design model that takes advantage of Csound's modular nature by breaking the common instrument structure apart into three elements: Synth Engine, Memory and Interface. (SEMI)

In todays blog, I create a new synth named MonoSynth based on the original SEMI Simple synth by replacing the zak memory with a memory core based on the chn opcodes, extending functionality of the engine, introducing modulation parameters, and by incorporating a method that links instances of instruments into an audio chain from within the score.

Topics

  • Modular Design
  • chn
  • Memory
  • Signal Routing
  • Modulation Instruments

Modular Instruments

When designing a virtual instrument in csound, the easiest approach is to create a single self-contained instr. Within this instr, any number of opcodes can be arranged in a near-infinite number of combinations. Each instance of the instr manages its own local memory space/variables/signals. Users customize the interface of the instr by utilizing p-fields.

With this fundamental model of instrument design, it is already apparent that Csound excels in terms of modularity. However, there are many other approaches that expand this concept even further.

Topics

  • Modular Design
  • Interface
  • Memory
  • Synth Engine
  • Control Instruments
  • Zak
  • Macros

Drum Sequencer Event Generator

Getting lost within a list of instrument events is sometimes less desirable than being able to place events on a grid or lattice. This is especially true when working with rhythms. I'm a firm believer that the interface influences the compositional process. This is why I've begun development on dseq, an instrument that allows me to input drum patterns in a manner that is much more user-friendly.

Topics:

  • Strings
  • Drums
  • Sequencer
  • Event Generators

A Micro Intro to Macros

I'm continuing with what I started in the last blog Adding Zak to the Mix. As promised, I'm breaking down the zak mixer into its respective modular components, beginning with Csound macros.

Topics:

  • Macros
  • #define
  • #include

Adding Zak to the Mix

It has been too long since the last Csound Blog. This is why I'm personally excited to announce this newest edition, Adding Zak to the Mix.

Today's topic is how to model a studio mixer in Csound using Robin Whittle's zak opcodes. I will actually be stretching this subject over an unspecified number of blog entries, as I couldn't possibly cover every significant nuance in one write-up. What I'm presenting here today is merely an overview, while in the following issues I will break down everything into its respective modular components. Not only will I cover the design of this zak mixer, I will present new ways in which you can organize your orchestras, along with how to unlock the potential of your patches using control instruments.

Topics:

  • Zak
  • Model of a Studio Mixer
  • Macros
  • Signal Routing
  • Organization

Home Brewed Convolution

According to wikipedia, convolution is a mathematical operator which takes two functions f and g and produces a third function that in a sense represents the amount of overlap between f and a reversed and translated version of g. However, this explanation tells us little about convolution as applied to audio.

Topics:

  • Convolution
  • Impulse Response
  • Reverb
  • Filter

Robot Voices and Android Grooves

One of my earliest synthesizer fascinations was the robotic voice produced by band vocoders. While in college, I stumbled across the vocoder schematics in The Computer Music Tutorial by Curtis Roads. Equipped with only Csound and my new-found knowledge, I created my first vocoder instrument. I have since designed many variations, and will likely to continue doing so for many years to come. Because robots rule...

Topics:

  • Band Vocoder
  • Envelope Follower
  • Speech Synthesis

Oscillator Arrays and Multi-Band Spatializers

How does one casually write technical jargon? That's what I'm still trying to figure out. These Csound blogs aren't suppose to be full articles or tutorials, though I'm finding it difficult not to explain every nuance. I did my best to narrow down this entry to the key issues and give just enough info for those interested to start using the discussed techniques...

Topics:

  • Layered Voices
  • Synchronized Phase-Offset Oscillator Array
  • Multi-Band Spatializer
  • Oscillator Array Modulated Multi-Band Panner

Back in the ADSR

One goal I have for these blogging explorations is to regularly refine my coding practices. Starting with today's entry, I'm enumerating my instruments with multiples of 10, a technique I'm borrowing from my Commodore 64 BASIC days...

Topics:

  • Coding Practices
  • schedule Opcode
  • Multi-instr ADSR envelope
  • Rotary Switcher

An Experiment in Csound Blogging

Welcome to my first blog entry that is simulcast both at thumbuki.com and within a Csound file. This is a personal blogging experiment. Often times, I'll finish a Csound file that isn't a composition, or a bank of instruments, but more like an exercise or a proof-of-concept...

Topics:

  • Synthesizing Drums
  • Zak Mixing
  • Global LFOs
  • Scheduled Gate