Help get this topic noticed by sharing it on Twitter, Facebook, or email.

Granular Synthesis for MPC Live

So I do a lot of field recording and pull out frequencies to work with from the recordings of natural tones.

Two of the most important steps is extracting frequencies from a field recording..for example "Water" ...using an 8 band EQ.

The second step is to use granular synthesis to create lush pad-like ethereal tones form water.
3 people like
this idea
+1
Reply
  • Hey Mr Boom Bam Ughh!,

    Thanks for posting!

    This sounds like an interesting idea! I wonder if it could be integrated into a type of program - possibly Keygroups with very short loops on samples? Be sure to submit this as a feature request with the MPC 2.x Software's built-in feedback module. The feedback module is represented by a smiley icon at the lower right side of the software next to the browser icons. This information goes directly to the Akai team for consideration!

    If you need an alternative method of submitting feedback, you may use the following links:

    MPC - Submit a Feature Request

    MPC - Submit a Bug Report

    Thanks for your feedback!
    • Hey Nick D, yea that would be great, I'll be happy to share my workflow. Not only would it be a great feature but there is so much we don't know about our natural environments sounds and it would really help take the MPC to another level in exploring and working with natural sounds and tones.
    • I think that this could be integrated into the actual sample engine, so that it would be available for anything playing a sample. It's more about how to extract data from the waveform, but yeah. If it was an option in the sample engine, it could be turned on if desired. :)
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated kidding, amused, unsure, silly indifferent, undecided, unconcerned happy, confident, thankful, excited

  • Reading about https://en.wikipedia.org/wiki/Granula..., and of course that being the extent of my understanding about it, I wonder if it's possible to implement a poor man's granular technique on a raw waveform?

    For example, could one replace calculated time elements with simple offsets instead. I.e. rather than needing to compute between time and sample positions, is it possible to implement it based on offsets alone.

    Also, it would be neat that if overlapped grains could be set to be added using cross modulation, AM, etc. rather than just mixed.

    This is supposed to be a discussion forum, so I figured I'll throw some thoughts.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated kidding, amused, unsure, silly indifferent, undecided, unconcerned happy, confident, thankful, excited

  • My take on this is that, though you can effect various hacks to simulate granular synthesis, to get the best from it you need dedicated support for this.

    A lot of the power of granular synthesis comes from 'randomness' and modulation in the process. Specifically you might select your grains according so some statistical distribution within the sample and do similar for the parameters (such a grain length, volume, phase, playback speed, pitch etc). You would also want a way to modulate these distributions such that you could control the evolution in time.

    At its simplest a granular synthesis is nothing more than having multiple "play heads" being placed and re-placed in the sample but the mechanics around how and where, and the means by which you control them is very important to the user experience. That is to say a watered down version might be easy to make, but a full version would be a lot of work.

    This is definitely a feature I'd like to see, but to be done well, it would need to be a complete new synthesis engine which (unfortunately) seems like a big ask. Top of my list is still more flexible MIDI routing.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited indifferent, undecided, unconcerned kidding, amused, unsure, silly sad, anxious, confused, frustrated

  • Of course, I see your point. I am by no means versed in granular synthesis, but I can see how it works, and not to create an 'argument' about something I know little about, I can only express what seems logical to me.

    Though technically my point was not to re-direct effort from implementing a proper granular synthesis engine, but rather enhance the engine that reads waveforms, to be able to incorporate modulation at this level, so in a sense, all of the engines would benefit from a new optional way of getting at the samples. Using granular extraction without bogging down the system, seemed like a cool idea to me. A regular sample player is great and all, but there are so many ways that I would like to read samples, not just forth/back. Imagine cross/amplitude modulation of one or more samples from the same waveform.

    Anyways, it would seem to me that one or more sample pointers, shifting around, would yield a simple yet very powerful way to pick from a sample without too much CPU. Perhaps I am way off.

    Oh, BTW, I really like the single cycle synth concept you brought around here. I started looking into a way to create them, maybe with a command line tool, and to be able to mix various shapes using various techniques, perhaps some sort of looping capability for creating ranges of waveforms, any ideas?
    • Regarding creating waveforms like that, the key is that any waveform of the appropriate length played at the appropriate sample rate will sound at the correct pitch. Since it is easier to drop samples (pitch up) than add them I chose to create samples at the lowest frequency you'd use. This is the lowest MIDI note, C0. The standard calculation will tell you that, at 44.1khz sample rate, a 10788 (IIRC) sample waveform will correspond to C0.

      I created those waveforms using the standard wave generators in audacity and copy pasting (magnified so I can operate a single sample accuracy). You didn't try it but you may even be able to draw your waveforms in audacity directly. I am sure there are many command line tools to generate samples (I'm thinking Linux) but I've not really experimented. If you are a programmer it should be relatively easy to make a simple program to create a waveform according to a function of your design.

      For reference I did something very similar when experimenting making a soft synth. I wrote a prototype in python using jacks for MIDI and audio (very quick and easy) but it was relatively slow (4 note polyphony). I switched to C++ and got roughly a 1000x performance improvement but for offline generation, python is more than fast enough and very simple. Once you are working programmatically you can fairly easily make multi samples and more interesting elements like round robin variations. I may get to it at some point but I don't have the time right now. Also the MPC program format is XML which seems trivial to reverse engineer (or it may be documented already) meaning you could even create an instrument program alongside the samples.

      Feel free to ask any more specific questions and I'll try my best to help.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited indifferent, undecided, unconcerned kidding, amused, unsure, silly sad, anxious, confused, frustrated

  • Hey, great. We're curious to hear about that. How does it sound? Any examples?

    THANKS,
    PSOUND
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated kidding, amused, unsure, silly indifferent, undecided, unconcerned happy, confident, thankful, excited

  • Yeah, I am using Windows, so it'll be C#, which should also work on Linux (e.g. Mono). The code is simple though, so can be translated into any other language.

    Anyways, yeah, so far I created functionality for the common basic waveforms. I also created one generator where you specify a waveform and the number of cycles (one in this case), and two other generators that takes one or more waveforms and using additive synthesis/cross modulation respectively they generate new waveforms. I'll add amplitude modulation in at some point too.

    This enables generation of basic combinations. I would like to create some form of generic generator that can take output from other generators to enable generation of much more complex waveforms. E.g. waveform A and B (using cross modulation) and C and D (using amplitude modulation) then additively mix A/B and C/D into a third form. This could obviously be expanded on. :) One could imagine using the stereofield to vary waves too. But then the waves would double in size.

    Let's try to see if this works: https://1drv.ms/f/s!AixIdT5A-lYCm8k86...
    (Please let me know if it doesn't work.)
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated kidding, amused, unsure, silly indifferent, undecided, unconcerned happy, confident, thankful, excited

  • 1
    Hi Robert, to keep all discussion around this in a single thread, I posted my and your responses on this topic back into the other thread on single cycle synths: http://community.akaipro.com/akai_pro...
    Let's continue the conversation there.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated kidding, amused, unsure, silly indifferent, undecided, unconcerned happy, confident, thankful, excited