Monday, 23 March 2015

Finished Project - Download Max Patch here, Instructions for use, Demonstration Video

Below is the link to my completed Max MSP Visualiser Patch. When copied into Max, I suggest putting it into Presentation mode as the instructions below will be easier to follow if used in presentation mode. 


Instructions on how to use:

1. Before opening patch, make sure Synthesiser (ideally a Microkorg) is plugged into the MIDI IN port on USB interface. Check Max settings that MIDI information is coming into Max and make sure MIDI is coming out of the MIDI OUT port on the synthesiser. 

2. Open Max project. Change to presentation mode and keep patch locked.

3. Render the Visualiser by clicking the toggle labelled below as "Render Visualiser", this will also load the presets. You can press escape if the visualiser goes full screen to see controls again. 

4. Press >Enter< to enable audio to digital conversion. This is necessary for Max to hear your synthesiser.

5. Begin playing. If set up correctly, 3D bars should react to the keys you press on sythesiser. If nothing happens, try pressing keys up and down through different octaves as this program was written primarily for Microkorg which only has 37 keys. If still nothing, make sure Audio In is enabled as Max might not be able to hear your Synthesiser. If still nothing, it the visualiser rendered? To check this, is the Render Visualiser Toggle pressed? (see image below). If still nothing, is the volume up on your sythesiser/interface? 



6. As you play, you may notice that the visualiser is spinning. If you wish to stop this, press >S< on computer keyboard. If it isn't spinning, and you wish it to, press >S< on computer keyboard.

7. To change colour of background in visualiser, click the colour bar in the interface labelled (erase_color). Use the colour wheel or presets to changes colour, the background of visualiser should change automatically. You can either close window after or leave open to change whilst playing. 

8. To load backing track or song, press >T< and select desired track on your hard-drive. To loop the track, press >L<  NOTE: backing tracks only work with AIFF files.

9. If you do not wish to use hotkeys, you can use the interface controls to do all of the above, each control is labelled. 

Demonstration Video

Below is a demo video showing the finished visualiser being used. This video was shown during my presentation. What it presents is the actual visuals being controlled with the Microkorg in a few different styles of music and different ways.


Final Thoughts

The project is now finished so now was the time to think about what will become of the project.

Who is it for?

If I had to give my project a 'target audience' it would be for electronic artists, but probably more towards ambient/chilled house artists. This is because the music that is ambient and chilled house is quite mellow, so having something like a visualiser behind them whilst performing would help enhance their performance, much the same way Alva Noto and Ryuichi Sakamoto used the visualiser behind them when they did live performances. My original vision however didn't have a particular target audience, I wanted it to be fairly open to whoever wanted to use it. It could even be used by a keyboardist in a rock/metal band. 

Will I distribute it?

This blog will act as a distribution for my software, being released as 'Version 1' this gives me a chance to improve on the product and blog, possibly leading to a 'Version 2' or 1.1.

What could have been improved?

What could be improved is it's usability. The patch itself is very easy to use, once it's in presentation mode, so giving the user more control would be a good improvement. This could be features such as having the ability to change the colour of the shapes or change the shapes themselves. It possibly would be nice to have a much more refined look for the patch, however I like how minimal it looks, so it possibly would be good to make it look more professional looking.

Another feature that I would like to add in the future would be creating different ways to control the visualiser. So this could be by allowing a DAW, such as Reason or Ableton, to control the visuals, or even a whole other instrument such as a guitar. From a technical point of view, what could be improved is that in the visuals there are these floating squares for where the 3D strips will be when played. Finding a way to make those invisible would be better for the viewer to look at it, especially in a performance point of view.

Presentation - Slides and Tutorial Video

Here is my presentation slides that I used in my presentation.



Below you will find a tutorial video explaining how my Max Patch Works





Sunday, 22 March 2015

Final Touches

The project is now at a point I would say it is complete. Although there is always ways to improve a project like this, it is now at a point where I can say it is finished. All the elements work well together and the visuals look great. Finishing touches is all I needed to do now.

Finished whole view of patch
This is how the patch looks. I have used panels to sepearate the elements into different sections. The green panels are all the controls and inputs etc for the 3D rendered bars. The blue on the right of the patch are the 3D rendered spheres. The pink at the bottom is the controls to separate out the MIDI In key messages. The top includes all the various controls for the sythesiser.



What I have added since the last post is various controls for the visualiser. It now includes a control to select a different background colour for the visualiser. There are now hotkeys to control elements. Around the project there are a few comments on what each part of the patch does. Finally, there are instructions at the top to how to use the visualiser.

After adding in these elements, I decided to create something in presentation mode so that there were minimal controls for the visualiser. This keeps it easy to use and it's so almost anyone can use it without any knowledge of how Max works.

Presentation Mode with minimal controls

Backing Track Sphere

In my proposal I wanted to have a way of representing a backing track should someone wish to have one whilst playing the synthesiser. I incorporated one using as a rendered 3D sphere that pulses to the music. I did this by having the same setup as a 3D rendered bar, but changed the shape to render as a sphere. However, I did have to use a scale object to limit how much the sphere pulsed as the sphere did get very big if the song was too loud. By limiting the scale of the amplitude, it made the pulse much more under control.

After incorporating the backing track sphere, I realised it looked strange only having 1 sphere. To help keep the balance, I added another sphere, however this was controlled by the amplitude of the sythesiser. This worked well with the 3D bars, as sometimes the synthesiser audio would have some decay; but due to the nature of how the control using the keys work, when you release the keys, it doesn't show the decay of the music. This will allow a visual element which will show the decay.

Two rendered spheres. The top is controlled by amplitude of synthesiser, bottom is controlled by loaded in track.

Saturday, 21 March 2015

Making the Visualiser Spin

Making the Visualiser Spin was actually a very easy task. The Jitter object that renders the image had an attribute called 'camera'. To move the camera, I created a message 'camera $1. $2. $3.' each input controlled how the camera was positioned. The first control controlled how the camera span around the rendered objects. To make the camera spin on it's own and then spin back, I used a metro object to output regualr bangs which was fed into a counter which counted the numbers going up and down. To make the numbers more realistic though I had to divide them by 100 or the camera span too much. Combining these objects allowed the camera to spin at a slow enough pace that didn't distract from the visuals but gave the visualiser another depth. I felt it now related more to Carsten Nicolai's unicolor installation as it gave my project a much bigger depth.

Screenshot of micro patch causing camera to spin. It's also loaded
with a loadbang object so it begins to spin from patch opening.

Controlling Visualiser with Keys and Amplitude

The last development post showed the visualiser being controlled with the keys on the Microkorg. However, the velocity made the 3D bars static and boring. The next step was therefore to find a way to route the audio of the synthesiser to each rendered bar.

One of the rendered bars. Main elements of discussion is circled

The objects that are circled in the image above are what allows the bars to be controlled by amplitude. The 'r k1' object is the receiving the velocity of the corresponding key being pressed. The 'r band1' is receiving the amplitude. These are both being sent to a multiplication object which is then being fed to control the scale of the 3D bar. This works because even if the amplitude being sent is high, unless the key is being pressed sending a velocity number, the amplitude is being multiplied by 0, so it's equal to 0 meaning no scale increase. However, what I found was because the velocity went up to 15, as it was being clipped at 15, the scale got pretty big when being multiplied by 15. To fix this, I changed the pong object so it was now being limited to 1. This kept the scale under control and looking good.

Screenshot showing that velocity is limited to 1 with pong object.

The keys were now doing exactly what I wanted this project to do now. Each key controlled a corresponding 3D rendered bar, with the scale being dictated by the amplitude of the audio. It looked brilliant. But I wanted to make it look a bit more interesting. I was inspired by how another project was spinning as it was showing it's visualiser. See blog post Other Interesting Max MSP Visualisers . I also wanted to add another element that would allow a backing track to be represented with a 3D rendered shape. This would be the next step that will hopefully finish the project.