1. One or more computer-readable media embodying computer-readable instructions thereon which, when executed, implement a method comprising: receiving an indication to generate a filter graph representing a user-defined development project; identifying media sources that are to be used in the user-defined development project; establishing a programming grid that incorporates a user's editing instructions; generating a matrix switch filter based, at least in part, on the programming grid, wherein the programming grid identifies which matrix switch filter inputs are to be coupled to which matrix switch filter outputs at particular project times; assembling the filter graph representing the user-defined development project, wherein the filter graph comprises a plurality of individual filters; and negotiating buffer size and attribute characteristics between an input/output of the matrix switch filter and an input/output of adjacent filters, wherein negotiated buffers are utilized to communicate media content between the matrix switch filter and adjacent filters by sharing a common buffer between inputs and outputs.