Thursday, September 20, 2007

Creative Computing – Week 8 – “MIDI and MSP”

Creative Computing – Week 8 – “MIDI and MSP”:

The main interface..

I have clearly spent some ten times the required time quota on this little project, but it was…fun. Granular synthesis and MIDI control is really highlighting the creative potential of this program for me. The track I’ve recorded for this week is just a simple loop in the background, with my granul8tr8tor patch manipulating the same loop with selectable MIDI and onscreen controls.

In edit mode...

The set-up of MIDI to control MSP is not a difficult concept to implement. Understanding how these functions need to be inserted into the signal flow is a very different story. I have had some trouble getting all effects (vibrato, modulation index, and pitch bending) to work in unison and at complimentary volume levels. I believe there is still much to be learned in the area of signal summing and the differences between modulating a signal and amplifying its output. The difference sounds obvious but it’s easy to get the result of one when you intended the other if the cables are connected incorrectly.

Only in MSP could panning be such a complex process..

There are five glorious new GUI controls added to my collection this week. This is in addition to the main patch. All notable parameters are controllable by MIDI with the controller number to be used selectable on screen. I also included a small bpatcher window showing all incoming control data info so the user can quickly determine the control number of the controller they may want to use just my moving it. This makes life easier with the novation keyboards, which are notoriously inconsistent with their respective control numbering (does anyone know how to initialise them yet).

Without amplitude it would all be for naught..

I am still very much in the discovery stages of learning the art of granular synthesis, but it already promises plenty. The patch is far from perfect, as you will see the routing of audio is quite messy and there is some interference between the quick groove playback machine and the sample in the poly instances. This is probably because they are referencing the same buffer but that’s one for next week…

Click here
to link to online folder containing this week’s patches, MP3 example and images in high resolution (all downloadable separately.)


Reference:

Haines Christian. “Creative Computing – Week 8 – “MIDI and MSP.”” Lecture presented at tutorial room 408, Level 4, Schultz building, University of Adelaide, Thursday the 13th of September, 2007.

Monday, September 10, 2007

Forum – Week 7 – Instrument Proposal

Forum – Week 7 – Instrument Proposal:


The DJD-Multi-Tone-Square-Zone:

Click here to find a high resolution version of this picture...

This instrument, if successful, will be a combination of additive and frequency modulation synthesis. I am initially aiming to combine up to six square wave generating circuits that will have various individual and universal levels of amplitude and frequency resistance. The out put and circuit types may be varied during construction to broaden the instruments range of timbres.

I aim to create an easily playable user interface with selectable switching for piano key-like playback or continuous output of tones. This will allow some tones to be created as an accompaniment that compliments the output of others. As I plan to take advantage of the expressive options offered by light dependant resistors, I intend to create an individual and universal shading system that gives more control over their respective levels. This will allow all six tones to be altered simultaneously as well.

Ultimately, the instruments final output current should be fed to a switching chip that gives access to various hard resistance settings. This chip should be controlled by the Arduino USB board and a simple sequencing program in MAX. This will be an option that exists along side the other components and their output can be routed to it if desired. Hopefully this will give the user the power to have a tone(s) played automatically by the sequencer while the remaining tones provide accompaniment.

My design should be flexible enough to fit into any musical situation, be it abstract or conventional. Consideration has been given to the need for creating tonal stability as well as providing tools for expressive sound manipulation. Individual volume controls will allow the user to (on a simplistic level) ‘audition’ added tones to avoid or create dissonance intentionally. If this proposal is accepted I guess the only thing left to do is build it…hmm…


Reference:

Haines Christian. “Forum – Week 7 – Instrument Proposal.” Proposal requested as a course component of Music Technology IIB, Level 4, Schultz Building, University of Adelaide, 6th of September 2007.

Sebastian Tomczak. “Forum – Week 7 – Instrument Proposal.” Proposal requested as a course component of Music Technology IIB, Level 4, Schultz Building, University of Adelaide, 6th of September 2007.

Thursday, September 06, 2007

Forum – Week 7 – “Physical Computing (2)”:

Forum – Week 7 – “Physical Computing (2)”:


This was my most successful week for some time for this subject. The first exercises went smoothly and for once I could hear myself making the desired sounds along with everyone else. The trip back to the Victorian synth was strangely nostalgic…

The toy phone is a difficult one to manipulate however as it seems to respond only to bends being inserted in between its ‘power in’ current path. One must take care if using a nine-volt battery as power because it’s easy to lose focus on the current path and overload the circuit. Seb straightened me out on one exercise where I had incorrectly omitted the phones power from the circuit equation. I had assumed that it would draw power from the Arduino board but this was not the case.

Once this exercise (3) was running correctly, I made a mild addition to the PTAH patch, adding a metro and a switch to cycle through note on and off sequences. This freed up my LDR hand (yes Christian I still have your small LDR, it’s safe), for some musical frequency manipulation set to a rhythmic pulse that could be adjusted with a simple max slider.


Note the added metro (top right)..

Exercise 4 was less of a success in that I never really got the Max patch communicating with the Arduino correctly. Not to worry, the circuit still seemed to provide some interesting sample bending, and this is the example I have provided as an MP3. Some how it was treating the LDR as a trigger for on and off, and a frequency resistor at the same time. This meant I could turn it on with the main switch and then keep things moving when it stopped purely by allowing all light to get to the LDR. Beyond my capacity to explain, but fun to manipulate all the same…

Click here to link to online folder containing the above mentioned MP3.


Reference:

Haines Christian. “Forum – Week 7 – Physical Computing (2).” Workshop presented at the Audio Lab, Level 4, Schultz Building, University of Adelaide, 6th of September 2007.

Sebastian Tomczak. “Forum – Week 7 – Physical Computing (2).” Workshop presented at the Audio Lab, Level 4, Schultz Building, University of Adelaide, 6th of September 2007.

Creative Computing – Week 7 – Sampling (2):

Creative Computing – Week 7 – Sampling (2):


Master Delany and I teamed up for what was to be my first conscious foray into the field of granular synthesis. The major battles were won early on this rare occasion so it was an enjoyable experience.

The main interface..

Taking Christians lead, we recreated the patches as close as our combined notes would allow. There were a few typical programming glitches early on; the Random object being adverse to floating point numbers, the necessary bang to random being overlooked, the arguments to bpatchers set incorrectly etc. These were very minor in comparison to my usual Max experience. Perhaps two heads are better than one…

Inside the GUI r-slider bpatchers..

John provided an Al Dimeola guitar sample for multiple chopping, and this was more than enough to create a huge variety of tones. This was only a short sample, and the scope of possibilities presented by this simplistic example of GS programming was impressive. The ability to chop, stretch and compress in such a fast and flexible environment is just asking for exploitation.

Just one little instance..

There is a feature that was a little unclear from the lecture. When utilising the r-sliders I found it curious going through my notes that there didn’t seem to be an implementation of these that allowed the stop and start times to be manipulated by moving one r-slider ie; when the slider is moved, the left value equals sample start time and the right value equals sample stop time. For visual representation and intuitive functionality, I think this feature is a must and will try to implement it during the week.

Click here to link to online folder containing patch bundle and Mp3.


Reference:

Haines, Christian. “Creative Computing – Week – “Sampling (2).” Lecture presented at Tutorial Room 408, Level 4, Schultz building, University of Adelaide, 6th of September, 2007.

Monday, September 03, 2007

Creative Computing – Week 6 – Sampling (1):

Creative Computing – Week 6 – Sampling (1):

The benefits of a GUI library are starting to show, most of these features were created in previous weeks..

The challenge most often encountered with MSP programming seems to be the conflict between multiple patches producing audio signals. Mostly this occurs for me when I’m creating help files and forget to disconnect their audio outs. It is perhaps unhelpful to offer a help patch that can not be used exactly like the functional patch. However, I believe once the user becomes accustomed to switching between the two to try out different suggestions from the help file, then it should cease to be a hindrance.

Note the overwhelmingly stunning interface..

In other challenges for week 6, the poly~ version of my ‘groovestation’ only currently functions with one voice. I know this sounds like a stupid oversight when one considers the literal meaning of ‘poly’, but there is a good reason for this. When I created the GUI version of my djd-groovestation~, I embedded five buffer~ objects within it to allow each instance of the djd-groovestation~ to have some versatility as to which sample it used in the context of performance. My view is to allow for up to five samples to be loaded in each instance, preferably of the same length so the user can seamlessly switch between them.

Under the hood..

There is a problem with this approach however, I have already embedded multiple bpatchers and other objects to communicate with the five buffers and they all need to refer to the correct buffer~ name. The solution lies in the establishment of some extensive argument system to poly~, but it will require some dismantling that I have no time left for this week.

Next week I should have an opportunity to fix these niggling issues. Until then, enjoy the first audio offering from the super-ultra-mega-versatile “DJD-GROOVESTATION~!”

Click here to link to online folder containing this week’s MP3 and MSP patches.


Reference:

Haines, Christian. “Creative Computing – Week – “Sampling (1).” Lecture presented at Tutorial Room 408, Level 4, Schultz building, University of Adelaide, 30th of August 2007.