






Music and Sound Processing in Squeak Using Siren
Music and Sound Processing in Squeak Using Siren, by Stephen Pope of U. California at Santa Barbara.
Current Draft: stpope_siren0.pdf
Promised Reviewers: Andreas Kuckartz
Comments:
HEY – SOMEBODY UP-LOAD THIS AND SEND ME COMMENTS – stp
Mark's Review of "Music and Sound Processing in Squeak using Siren"
Stephen, I learned A LOT about how powerful Siren is when playing with this chapter! I had no idea that it could do as much as it could, nor how flexible its internal structures were. It's really a fascinating system.
I have one request and a concern, as well as a set of minor issues described below.
I have a hard time grokking the whole process of Siren. The individual pieces look wonderful – powerful and flexible. But I have a hard time imagining what a composition might look like. How do real composers put together all these pieces in real practice? I also have a hard time imagining the process. With all of these various UI pieces and coding supports, what does someone actually USE when composing? For example, when do you use display lists and for what?
What do you think about providing a piece of Siren code that plays something interesting – not a long piece, but perhaps something that schedules events of different types and plays them? And perhaps a couple paragraphs on how composers use Siren?
The concern is that the ending parts (on Paleo and Tschinn Bum!) seem tacked on. While they're related to your title theme, parts of them don't tell us much about Siren nor Squeak, e.g., the hex dump of the Paleo I/O format. Of course, I may be wrong – there may be a very significant connection that I'm missing. My suggestion is either to strengthen that connection or to trim out the less-related pieces.
Issues:
- p. 1: Could you define Smoke early-on? You start talking about it, but it's not clear for a few more pages what it is.
- p. 2: I found the history of Siren absolutely fascinating. Could you expand this paragraph a bit? Perhaps a bullet list with a sentence on each on why it was succeeded the previous?
- p. 2: "the instrument approach rather than the tool approach" – I'm not quite clear what this means. Could you add a bit of explanation, please?
- My notes on pages 4 and 5-6 are interspersed with "Wow!"'s – really exciting stuff! I was particularly pleased to see that event lists could have lazy slots. That seems very powerful.
- p. 6: Missing a leading "(" on the 440.0 Hz asMidiKeyNumber example
- p. 6: You start using the "[example]" notation here that you use (successfuly!) in your Siren demo pages. I don't have any problem with it, but a line of explanation might be useful here. I could imagine a novice wondering, "Why is all of Smoke inside of blocks?"
- p. 7: I got lost in the paragraph describing the use of concatenation. I kept wondering if things like "(magnitude, magnitude)" were executable statements that somehow defined (declaratively) the structures to follow. Perhaps a table with examples would work well here?
- p. 9: Here's where I started to grok the previous paragraph, but I'm still lost on what => means. Is that a Siren-defined operator, or is it in Squeak somewhere? What are the semantics?
- p. 9: Perhaps some references/explanations to cmusic, Adagio, and JohnM would be useful.
- p. 10: Extra "," after the MVC ref, I believe.
- p. 11-12: I've played with Display Lists, but I am still not clear on their purpose. What do YOU use them for when composing? Or is it more for debugging?
- p. 12-13: Are there recommended uses for these various editors, or is it just personal preference?
- p. 14: Why is NOLib in Octave rather than Squeak? Is it just the case of using existing code, or does this reveal a weakness in Squeak that would be useful to mention?
- p. 14: Could you include a reference to your Interim DynaPiano work when you introduce the term?
- p. 15: I was wondering what one did with Paleo in order to "stress test" it, and I understood when I finally saw the examples on p. 19. Perhaps the examples could be moved up to connect the definition and the use more?
- p. 16-19: The sections on "MIDI File Analysis with Constraints" and "Paleo I/O Formats" didn't work as well for me as other sections in relation to "Music and Sound Processing Using Siren". Perhaps there are tweaks to make to connect the themes better, or perhaps these sections might be removed.
- p. 20: Obviously, it's hard to comment much on the Tschinn Bumm opera database with only three paragraphs :-)
As a newcomer to Squeak and Swikis, (one of the best experiences of my life in the Web), I am curious why you don't put your draft in the Swiki. Annotations/Modifications would be much easier. After some exposure the author could crop the value enhanced parts. The next time other peer-contributors could follow a similar procedure. – fp
Juan Manuel Vuletich's Review of "Music and Sound Processing in Squeak using Siren"
Hi. Very interesting stuff. Here are my comments:
The title "Music and Sound Processing in Squeak Using Siren" and the first paragraph speak of a general purpose music system. But the article show a clear orientation towards music modelling, composing and managing. Perhaps this could be made clearer. Before the technical discussion, it would be good to include several examples of possible users of the system, and the way they could use it. (i.e. programmers, composers, musicians, producers, etc). This would help understand Siren's strenghts and limits.
The discussion could go in this order
Applications (without too much details)
Smoke
Low level (primitives and hardware)
Technical details of the above
The second paragraph describes Siren parts. And after the third, there is a list of Siren parts. May be it should read "Siren includes the following packages..." and then the package graph. Of the two proposed graphs, I line most the first one. Perhaps the distinction between the different Siren packages could be made cleare in it.
In this graph:
In "real-time scheduling interface" what is in Smalltalk? what is in primitives? which classes are related to this?
In "sound I/O, DSM, mix interface" what is in Smalltalk? what is in primitives? which classes are related to this?
It should be explicit that "MIDI I/O" and "audio I/O" are hardware.
What are "Representation, Editing", "Voices, I/O, schedulers" and "Sound, DSP"?
What is implemented in each platform (Mac, Win, etc)? What in none?
In page 2, the references need fixing.
Are the mentioned music productions available on CD or the net?
The way Siren works for different people could go in more detail.
In page 3, the title "Software for Music Experimentation" could perhaps be "Smoke and Programming Languages for Music Experimentation".
In page 4, the issues presented in the second paragraph could go formatted as a list. It could also include if the system works in Real Time or not.
In page 5, it would good to include what is actually implemented, or at least planned.
In page 10, first paragraph, it could be said that the Squeak sound primitives don't still allow for full duplex sound or real time dsp yet.
In "Navigator MVC in Siren" do you use a custom controller class in Morphic? If yes, it's a bit strange and could be explained. If not, the term "MVC" is misleading.
In page 14, the words "dead-pan" are between 2 strange symbols. (accented uppercase O's).
In page 15 you mention a big Paleo database. Is this stuff copyrighted? Can it be available?
In page 17, I think the description of Paleo I/O formats go into too much detail. In general, I would rather prefer more High Level info and less Low Level info.
Juan Manuel Vuletich
The Siren was invented in the late 18th century by philosipher John Robinson. The name was given to it by a French engineer Charles
bullshit
bullshit
mrs.waite is mean
Link to this Page