Programming
When two or more voices in a song follow the same rhythm and move by the same interval, thus causing a parallel motion of the voices, it is referred to as Organum. Depending on the intervals between the voices, this can give rise to a rich and interesting effect. For today’s experiment, I decided to […]
For those of you who do not know about Opusmodus (OM), it is a very powerful and flexible algorithmic music composition environment built in Lisp. It is available for the Mac. Today I wanted to understand how to make Opusmodus communicate with Reaktor 6 to play some tunes. The built-in documentation gives a couple of […]
One of the interesting features of Lisp is its support for returning multiple values from a function, without bundling the values in a special container. Languages such as Python and Ruby support multi-value return (although there are subtle differences from Lisp). In C++11, we can use std::make_tuple() and std::tie(). To take an example, in Lisp, […]
Aspect-oriented programming (AOP) is a popular approach to handle cross-cutting concerns in an application. Common examples of cross-cutting functionality are Logging, Error Handling and Transaction Management. AspectJ is the original AOP extension created for Java in 2001. AOP extensions have been developed for some other languages also. There are many good books and online resources on AOP, so I […]
In object-oriented languages such as C++ and Java, virtual functions are dynamically dispatched based on the runtime type of the receiving object. But if such virtual functions have an argument that is itself based on a class hierarchy, there is no way to associate dynamic dispatch based on both the receiver and the argument. In […]
During my talks on Lisp Programming, I am invariably asked to suggest good books to start learning the language. Here is a (partial) list that I readily recommend. Beginner Level: ANSI Common Lisp, Paul Graham, Prentice Hall, 1996. Common LISP: A Tutorial, Wendy L.Milner, Prentice Hall, 1988. Land of LISP: Learn To Program in LISP, […]
Recent Comments