I've always thought that it may not be the best solution to add a new action for every possible way to play a sample (repeat, on specific channel, internal or external file).
If e.g. the "play internal sample (pick sample with expression)" feature is added, imagine how many new actions we'll get to cover all the possible combinations:
- Play sample
- Play sample on channel
- Play and loop sample
- Play and loop sample on channel
- Play sample file
- Play sample file on channel
- Play and loop sample file
- Play and loop sample file on channel
- Play sample (pick sample with expression)
- Play sample (pick sample with expression) on channel
- Play and loop sample (pick sample with expression)
- Play and loop sample (pick sample with expression) on channel
I'd like to propose something different. I understand that it's extremely unlikely that this will make it into MMF2, but it could be a great MMF3 feature. I'd like all "play sample" actions to be reduced down to two actions only.
* Play Sample (simple), which plays an internal sample on any channel
* Play Sample (complex), which opens a series of expression input boxes:
- Embedded or external (0 for embedded, 1 for external)
- Which sample (internal sample name or external file name)
- Channel (-1 for "any", 0 to 31 for a specific channel)
- Volume (-1 for channel setting, 0 to 100 for a specific volume)
- Pan (-1 for channel setting, 0 to 100 for a specific pan)
- Frequency (-1 for channel setting, 0 for sample default, 1 or higher for a specific frequency)
- Repeat count (-1 for infinite loop, 0 for 'play once' and 1 or higher for repeat)
This would prevent an additional problem with MMF - currently if you play an internal sample, and then change the sample volume of it, a small fraction of the sample can play before the "change sample volume" event have had a chance to run, resulting in a digital 'click'. A way to solve this have been to change the volume on a channel, then to start playing a sample on that specific channel. Unfortunately, this also requires the user to set up his own manual voice allocation, since (s)he can't rely on the automatic one any longer. My proposal would solve this too.
In a similar way, I'd like the "change channel volume, change pan, change position, change frequency, etc." actions to be reduced down to two simple "Modify channel" and "Modify sample" actions that lets you set all the parameters at once and -1 for "no change".
I guess the problem with my solution is possible lack of backwards compatibility, but the way the actions are set up now are far from optimal from a technical and functional aspect, they make new sound related features very hard to add without making that action list grow even more.





Reply With Quote








