First of all, we can express notes numerically as MIDI notes. These have a number range from 0 to 127. We save these in a list. But we also need the rhythm, which we save in another list.
bach-sc1
Unfortunately, SuperCollider is not very consistent when it comes to the use of pauses, so they sometimes had to be entered twice. In addition, two parts should be played with repetition, so the lists had to be divided. A property list like in Lisp was not possible in Sc until now. The minuet is in 3/4 time. Therefore, the number 2.4 was used as the basis for a measure. Ultimately, it doesn't matter, but the number must be divisible by three and its divisors should, in turn, be easily divisible by two. For the end of the second part, a ritardando was included in the note values.
bach-sc2
A lot of space is allocated for the lists because it is advisable to note each cycle for troubleshooting with a comment.

bach-sc3

bach-sc4



bach-sc5

bach-sc6

The systems are merged according to the grade lists. We use the Pbind-UGens for playback. Since both notes and note values have to be worked through step by step, we use Pseq. To repeat the first part, we note the number at the end with 2. It would also go infinitely with "ins". To bundle several Pbinds, we use Ppar.
Since we've defined two separate parts, we need a routine that tells us when to play the next part. However, the SuperCollider scheduling is so imprecise that exact mathematics did not help and the value for "wait" was searched empirically.

bach-sc7
The global variable was tested with the commented out parts.
bach-sc8
Despite its ugly syntax and imprecise scheduling, SuperCollider is still one of the best environments because it has the capabilities of a development environment, it is playfully easy to program GUI, and creating your synthesizers is very productive, especially due to the excellent documentation. Many aids are also provided to make work easier, especially for beginners.

Cookies facilitate the provision of our services. By using our services, you agree that we use cookies. Privacy policy.