Monday, 12 May 2014

That's All Folks

Well this looks like it'll be the final post, still scary to believe that this is pretty much it, definitely one of the most challenging projects I've faced. 
But I've enjoyed the challenge (most of it), the accumulation of new skills, getting to do cool things with some interesting tech, whilst indulging in creating some of the worst UI designs ever imagined.

I'd also like to say a very special thanks to James and Kenny for all their feedback and support over the past four months, and especially within the last sprint. 



Saturday, 3 May 2014

Showcase Progress - Website, Business Cards and Showreel Video



Business cards have also been designed and sent off, they also showcase another Beast Box design that was worked on last night called the Blue Steel edition that makes heavy use of gradient colours.

The difference presentation mode/ UI had on the final product within the final patch;



This video highlights the difference an interface can make, drawing a collection of 500+ objects into a more welcoming and intuitive environment. The video also highlights the dynamic different windows and menus.

The project also made the Abertay Digital Graduate Showreel and is visible from 1:45 to 1:54 in the embedded video;

http://www.abertay.ac.uk/graduateshow/ 

Tuesday, 29 April 2014

Project Timeline Summary

A visual summary of the project in terms of the iterative project development.

Also cleaned up another record bug discovered when recording out using the Beast Box standalone;

  • This bug was caused by the absence of an initial value in the parameter settings, which resulted in the recording once activated, not ceasing until Beast Box was closed down. 
Beast Box is now available in three editions that offer different UI environments;

Beast Box - Standard


Beast Box - Miami Nights


Beast Box - Blue Steel


Sunday, 27 April 2014

Record Debug

Got the recording output functioning better;


V1


V2






Revisited the problem with the send and return data, and for some reason the 1 resulting from the Stop command when going straight through the -1 object resulted in a -1 output value, by breaking this down with a series of extra integer objects, the system now functions correctly.
In short the Record Output section doesn't need the stop and start buttons and can solely rely upon the Play and Stop buttons.


The CPU monitor has also been reintegrated, with the option of hiding it within the 'Setup' window;



Website Update

A good consideration concerning the upcoming showcase, in the process of updating it;


Executable Test

The running of an executable of the prototype ran smoothly with the Uni computers;



The functionality improved greatly with the extra audio options that were implemented and located under the 'Setup' button. Along for operation on other machines via Max Runtime.
The TouchOSC features are incompatible though due to the absence of Wi-Fi on the machines.




*Previous executables didn't run on the Uni computers with early builds and tests due to the fact they were 64 bit builds and the Audio labs run 32 bit. For submission builds will be created in 32-bit will be created, as it is more flexible and the TouchOSC features is only compatible with 32 bit.

Saturday, 26 April 2014

Running Devices At The Same Time

The mobile port is a little more delicate, given the reduced screen size, but is still functional. Both devices can operate Beast Box at the same time which is interesting.
Tested that earlier with pals, dubbed "Parameter Wars!" it got quite competitive. This would make for an interesting showcase feature.

The last OSC implementations feature instant parameter feedback that was scripted in, whereas before, say if the visible host parameter was Flow and the mobile parameter Beast was being manipulated, the host wouldn't change. Now thanks to a little tweaking I've configured it so if it was on Flow, and Beast was changed, the Beast parameters would come up on the Host.



The updated parameter control is visible in this video;



The main annoyance is with the mobile port in that Peak editor doesn't operate as it should. Where it should only affect Frequency, it controls gain as well, and cuts it off, another debugging issue. 

Friday, 25 April 2014

Mobile Tags Finished

The last OSC implementation for the mobile support;

This little screenshot details a little of the tagging process that occurs to hook up Beast Box with the TouchOSC built that was optimised for mobile phone use. The mobile tags run off the same output port allowing for the possibility for running mobile and tablet at the same time.

Finished Mobile Designs

The finished designs for mobile;

Will still need to implement the commands, but should run fine due to the similarity with the iPad edition.

Beast window
Destroyer window


Chamber window

Peak window

Preset window

Settings window

Mods window

Mobile Interface

The latest interface concept port for mobile;

Second Major TouchOSC update

The dials do work smoother than the XY pads, working on version II that runs off two pages; one main 'Beast Box' page, and the 'Preset' page.



Changes and improvements;
  • Bigger buttons for the windows and 
  • Data improvements
  • Possible Shaper inclusion
  • Cheeky AlpineFox plug



The design still mirrors the Beast Box application in terms of the position of the playback options, the mixer and the mods. When the parameters are changed, their respective window comes up on the monitor, for example if the Destroyer window was present on the PC monitor, and the Beast parameter was altered on the mobile device, it would trigger the Beast window to come up on the monitor. Very handy in terms of providing visual feedback.

Thursday, 24 April 2014

TouchOSC Update

Given the previous issues with XY, have removed it from the mobile device interfaces, could investigate it again as a further work issue.
Have managed to integrate all features into a singular window;


Updates;

  • Dial control
  • Mod updates; 6 to 8
  • Play and Stop directly connected, provided visual feedback
  • Beast, Destroyer and Chamber parameters bring up dedicated window
  • Overall Beast Box label

Wednesday, 23 April 2014

P8.9.3 Back in Black


Getting there with the development, the revisions took into account some great feedback from James Law of Denki, in terms of making the prototype easy to use. 
Big changes include;

  • The BIG Import button to make the starting steps more obvious, it is replaced by the record input options when Live is selected and vice versa.
  • The increase of Modulators from 6 to 8; this allows for Beast, Shaper, Destroyer and Chamber to have their own respective panels.
  • The ever present Mixer, allowing for the blending, muting and control of sound.
  • The standalone preset window that includes presets that mainly showcase the range of sounds and their respective modulators, for example the 'Deep' preset brings forward the Chamber options. 
  • The use of gradient colour effects for the main buttons to make them stand out. 
  • Have also reallocated the Limiter into the flow section;

The main port of call after this will be in the major update of the TouchOSC iPad utility incorporating all these changes, and debugging along the way. Will try and accommodate advanced features and the layout across a singular window.

Wednesday, 16 April 2014

Progress

The prototype work has been a bit sporadic considering the recent time dedicated for the written elements. Now working from a Post Mortem edition of 8.1, allows for effectively cataloguing the changes and for.

8.1;

Sleeker Overall Preset Options;

How the overall post mortem is looking;


How it looks implemented, the standard Mods options;


With the Preset selected;








Tuesday, 15 April 2014

Standalone

Working on getting final design done as quickly as possible to produce and test the final standalones on other machines.


Thursday, 10 April 2014

Beast Box 2.0 Prospective Features/Future Development

Just some concept/prospective considerations for taking the project further;

Granular element;

  • Could incorporate parameter and controls into the Granular potential already featured in the prototype in terms of the Sample Selection tool.

Improved functionality; 

  • Looking towards streamlining the use of the prototype, especially in terms of the recording/exporting side/sample rate management
  • More presets displaying the range and variety within the prototype
  • Hardware support in the form of assignable MIDI, cc data, etc.

Dynamic effects;

  • Envelope controlled effects
  • Dynamic filtering
  • Cross over controls ie sample selection with beast, allow for more experimental applications etc.
  • Transient trigger effects/filtering


10th Supervisor Meeting

Progress Report;
  • Dissertation work

Wednesday, 2 April 2014

Prototype 7

Improvements;

Bit rate export options to offer a greater variety on export control

Pre-Post filter setup to allow for peaknotch filters to be available before and after the parallel signal division.

Got the video ready for the fourth year showreel;

Monday, 31 March 2014

9th Supervisor Meeting

Progress Report;

  • Getting dissertation draft, currently focusing on project chapter and literature review
  • Got iPad OSC improved display, however issues exist with the multi-xy pad 
  • Continuing debugging and optimising
  • Had a wavetable element feature, but it seemed too distant/un-connected to the overall prototype
  • Other apps have been discovered such as Fantastick and c74
  • Stack overflow still exists
Agreed Action Points;
  • Technical optimisation - Wave, Sample Rates
  • Debugging/Functionality
  • More written work
  • Framework for post mortem/project evaluation

Friday, 21 March 2014

8th Supervisor Meeting

Meeting Agenda; Progress.

Progress Report;
  • Running prototype 6.6/6.7 
  • Streamlined flow
  • Redesigned FX for parallel mix control to present an FX blend
  • Filtering very intuitive on iPad
  • Looked at Pure Data, missing object problems with running PD Extended
  • Dodge objects - Comb~/Clip~
  • Inverse concept a x10 multiplier that opens up for higher sound generation
  • STACK OVERFLOW - Possible to resolve using more specific programming  
  • Flext SDK for taking things further making custom Max/PD objects using a C base language
Agreed Action Points
  • Inverse Mode
  • More Filtering Combinations (Dynamic suggested at least looking at)
  • iPad design improvements
  • Pre-Main-Post for Signal/FX flow
  • Investigate parameter automation

Thursday, 20 March 2014

FX Mixing

After an unsuccessful integration of clip~, have integrated an FX mixer with offers a greater level of control and customisation, allowing the core along with different FX to be blended together;



This presents a level of signal flow control, instead of just relying on the main input and output levels, which proved to be inadequate in terms of offering the balance needed for the multiple processes.

Another concept for implementation would be an inverse feature that essentially adds a simple x10 multiplier on either the standard or reverse signal that results in the negation of the lowered pitch and flips it to a controllable higher pitch. 

Monday, 17 March 2014

Feedback

With the crit feedback, the iPad support feedback was very positive as it allows for a more intuitive form of control.
Will have to address the XY control issues, probably due to scaling and value attribution.

And should things get serious around taking it further in Max or PD using code, there is a dedicated C++ based SDK;
http://grrrr.org/research/software/flext/

Thursday, 13 March 2014

iPad Control

Was able to get an iPad I off one of my lecturers today, so I've been working to develop a control scheme for it. 
Version 1 has been pretty successful as it references the cross patch material. The button elements work especially well.
Issues with XY control and the multitoggle buttons as they are difficult to judge how to assign the right values.

The testing of data allocation

Tablet Optimised Design

Having investigated with lecturers about getting a tablet for development, either an iPad mini or an iPad 2 being provided by the University. I have started designs optimised for a tablet oriented display;




Wednesday, 12 March 2014

TouchOSC Success

The interface test across the University's system was successful, the interface is also capable of interacting across a considerable distance, for example across Whitespace or even outside.
Will look into securing a tablet for porting a more functional and intuitive interactive interface.

This will prove a very useful tool/route of development, bringing a hands on approach to the usability of the project.


Also looking ahead, this feature will be very useful for using at the end of year showcase, allowing people without a background knowledge in sound design, to have a hands on approach/interaction with the project.
The Beast Knob as featured on mobile.

TouchOSC Update

Got the object issue rectified with the 32bit version of Max 6, and the IP issue sorted out, will see how useful it is with the university wi-fi system. 

The TouchOSC interface and communication application is very impressive, and takes advantage of the Max object blah blah that allows information to be received via a network.

The trial Beast dial.

Tuesday, 11 March 2014

TouchOSC Support

Have been working on a way to get mobile touch control integration into the prototype, but a challenge exists in the external OSC support for Max, which after a couple of hours digging around online, only apparently works in 32-bit (due to compatibility issues with external patches).

OSC 
http://hexler.net/software/touchosc

OSC Max
http://cnmat.berkeley.edu/patch/4059

Tutorial
http://www.youtube.com/watch?v=I9bccwcYQpM

Beast Box Post-Mortem

Currently a higher level affair, mainly aimed at adding context to the collection of objects and flow charts within the Max MSP patches that detail the prototypes process.
This analysis is only currently featured in the parent patch, but will also be present in the associated subpatches that are referenced and integrated through the use of the send and receive objects.
The current overview of the post-mortem in patching mode. 
A close-up of the input analysis window.

Friday, 7 March 2014

7th Supervisor Meeting

Progress report;
  • Segmented presentation and rewire - taking advantage of bpatcher and the send and receive objects that work across patches. The segmentation also makes the prototype a lot more manageable to keep and update.
  • Reverse source implemented, but along with a simple switch, two dials are now displayed, one for the normal sound, and one for the reversed.
  • Record function always present to export sounds through the different stages
  • Segmented audio options and modules
  • Signal chain module implemented to display the flow of the signals prototype
  • Worked on Granular, still a challenge.
  • Major find with the replace message, which rectifies the past problems concerning loading samples, where I previously had the read message.
  • Got a basic limiter implemented in the master effects stage.
  • Started prototype post mortem.
Agreed Action Points;
  • Break-down prototype.
  • Investigate real-time options.
  • Additional features; envelope, filters.
  • Investigate cross synthesis.
  • Investigate any outcomes with using audio of different sample rates.
  • Investigate Pure Data.  

Thursday, 6 March 2014

Master Limiter

Still working on the inclusion of a possible Granular element, but have managed to implement a basic limiter in the Master module; 


Wednesday, 5 March 2014

Replace

Still having difficulty with the granular synthesis module, might not be possible to implement, but will give it another couple of attempts. One very significant positive has came out of revisiting the granular tutorial that I had overlooked...
For the sample import, I for the most time used the read message which gave me trouble concerning the buffers as it placed a cap on the durations of audio files that could be loaded. For example the buffer could only hold what I designated. However with replace, it clears the buffer and allows for any duration to be loaded, from a second sample, to a full music track.
A VERY SIGNIFICANT change. 

Tuesday, 4 March 2014

Reverse Input

Got the reverse feature working for both the Beast output and bypassed output signal. However, not how I initially wanted it to function. Another dial had to be created and implemented that did the same thing, but instead it has a negative integer base;


The two dials however provide added functionality in that they can hold different values independent of each other, and also allow for quick real-time flip flopping between normal and reversed. A tab background also indicates which one is active, in addition to the mode indicator.

Signal Chain

One piece of feedback I received was with the signal routing and how it was unclear what the routing order was. To address this I have made a 'Signal Chain' module which shows the flow and allows for it to be customised as well;

Monday, 3 March 2014

Hiding Options

Running Prototype Build 6 and continuing to debug the current send and returns for the modules along with trying to find a way to reverse the sample with 'Beast' mode enabled. 
One new addition is using the same trick with the bpatcher object I've implemented a really basic options menu that allows for the changing of audio drivers and cpu usage monitoring;

Sunday, 2 March 2014

Debugging

Continuing the debugging of the segmented additions. The segmented layout that takes advantage of the bpatcher object brings a lot of positives. When it comes to repositioning objects concerning design and layout, it separates a sea of objects into a collection of more manageable chunks.  
I have had another attempt of reversing the input sample, this time with some partial success, however it only works only for the bypass sample through multiple instances of the selector~ object. 

Saturday, 1 March 2014

Segmented Proof of Concept

The segmented concept works as a means to offer a variety of different options that can be displayed and hidden at any one time.
It involves referencing other patches, and my first use of the send and return objects to communicate data across patches.




The bpatcher as it appears in its own patch;