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

Single Cycle Synths

Since my port of the salamander piano to MPC seemed to get some interest I thought I'd share something else I put together. I had felt that the instrument set provided with the MPC Live was very synth heavy but the sounds were based on sampling synths and hence didn't give much flexibility (the reason I like synths in the first place).

To counter this I generated a set of simple waves (Saw, Square, Sin etc) all tuned down to C-2 (the lowest note MPC allows). Combined with the envelopes, Filter, LFO and layering this adds up to a fairly flexible subtractive polysynth. The added benefit is that, since there is only one .25s sample per wave the memory usage is extremely low meaning many can be used together without issue (unlike their sample heavy counterparts). The only negative I spotted is that they do start to alias as you get into the upper registers.

By way of example I put together a small set of instruments based on these samples which (along with the samples themselves) should form a basis on which to build a pretty nice variety of subtractive synth sounds with very little resource utilisation.

Considering the sample loops as the sound sources of a subtractive synth one could readily add a whole family of samples to add wavetables, noise, one shot samples or anything else into the mix. Bear in mind that if you want to add noise into the mix without having it track the keyboard it'll need to be added as an additional keygroup. Also note that in my examples I set offsets for the start times of the waves shifting them earlier to avoid having the start points of the waves coincide for a more "freerunning analogue synth" feel, but the samples are created starting at the 0 crossing so that. I also used detuning and the LFO to give more of a classic feel to them so don't be surprised.

The samples and instruments are created by me and distributed completely without conditions so feel free to do with it what you will. I hope you all get some use out of them:
https://www.dropbox.com/s/c01ifs6cfmp...
5 people like
this idea
+1
Reply
  • I’m thankful
    Yeah! That's also great again :-) We did that on an old Akai X7000 sampler which
    turned the machine into some kind of synthplayer. (.wav transfer via Atari editor) Filtering is needed for higher octaves, as you've mentioned.

    It should sound great with MPCs filters and FX. That's really creative stuff for MPCs
    again and is a good base for development. That might be the synth engine for the
    MPCs, that are included on Roland MV8000 or NI Maschines. MV filters are bad, NI
    is quite basic too (pad-synth-fun: https://www.youtube.com/watch?v=g0tKz...)

    Could we ask which software you are using, and if it is MPC-V could you share a
    copy of it? That free software seems not available on the internet anymore.

    Thank you Daniel!
    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

  • The only computer I have runs Linux so I don't actually use any software to make the programs. In this case I used audacity and some mathematics to create the waves and created the program directly on the MPC Live.

    Similarly for the piano program I made a script to get the correct sounds and resample them. I then made the program directly on the MPC Live (a mechanical but relatively long/error prone process).

    Having examined the files, the xpm files are XML so I could have probably automated their creation. The data associated with the sample pitch correction and root note is a little more complicated; It is stored as metadata in the WAV header so in order to carry out that part I'd have to reverse engineer the encoding and make an application around it (more effort that I was willing to expend): Though I'm familiar with some of the technicalities I try and spend my time on music rather than engineering.

    There is a free genral midi soundfont out there called "fluid synth r3 general midi". The sounds are of varying quality and only one layer (around 10 samples across the keyboard IIRC) but I mifht manually convert one to see how they sound. If it seems okay I may be able to programmatically converted then all to XPM+WAV.

    Another interesting option is the Philharmonia orchestral sample set: http://www.philharmonia.co.uk/explore.... Many instruments at various pitches, articulations and amplitudes. The MPC doesn't really support a lot of subtle instrument implementations so it wouldn't necessarily be intuitive to use but could be handy too.
  • (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

  • Interesting stuff, we should get our linux chromeboox started for sound sooner or
    later, since there are lots of midi-solutions. F.e. the hatari (atari) emulator on linux
    seems to be very stable midi-vise. I guess that'll be my very own job, my partner
    is happy on a running pc. He does the music :-))

    That library of the philharmonia orchestra is really something, quite a big lib. We'll
    establish a workflow for handle samples for mpc more easily. At present these wav
    files you've provided for creating synth sounds grabbed our intention. We'll come
    up with synthpatches (so to say) for the MPC soon, starting with a moog-ish bass.

    For drums, if it's needed, there's a huge TR-808 lib with different saturation settings
    for dynamic sample layering https://www.wavealchemy.co.uk/808-tap...
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • Oddly ive just had the same idea....to make a set of single cycle pgms. But i was just gonna use these
    https://www.adventurekid.se/akrt/wave...
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • 1
    That sample set looks interesting but it has a problem for use in this context. They are provided at D2 (around 73hz). The algorithm employed to pitch shift is almost invariably going to pitch up better than down (Increasing pitch just skips over sampled values, down pitching has to invent new ones). My samples are at C-2 (about 8hz, the lowest midi note) meaning you are only ever increasing the pitch in use. This means they work much better in the bass octave on a piano (A0-A1) and below (into sub sonic ranges).

    Irrespective of the pitch of the original sample you will always get aliasing problems as the frequency increases if the algorithm is just "sample thinning" vs an integration based approach. A better approach would really be to provide one wave per octave generated using an anti aliased method. Since each sample is half the length of the previous one this would (at most) double the memory needed, which is negligible anyway. This makes the whole process a little more clunky, so (likely) you'd want to carry out your sound design with a single key group then introduce the other samples and split it up/modify them all to match.

    In any case, I provided a set of 5 example instrument programs with my download (mostly to save the samples with the metadata for immediate use) including a lead, bass and poly synth sounds. With very little effort, you could swap out my samples for anything in that pack and see how it works side by side. All you'd need to do is change the sample assignment per layer, and go to 'sample edit' to set the root note of the sample so it is tuned correctly, and turn on looping.
  • (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

  • We took the C-2_saw.WAV and created a moog-style bass patch running all four available "oscillators" thru the MPC's own Model1 4-pole filter plus added minor
    effects to add some additional warmth to it. It is a joy to play this MPC synth on
    our MPC Renaissance having a keyboard attached.

    Here is the YouTube Link:
    https://youtu.be/wwl6-069n04

    And the program download:
    https://goo.gl/vnmoYo

    ThankYou
    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

  • I’m happy
    It sounds great! I'm glad someone is getting some use out of my experiments :).
  • (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

  • Thank you sir, we're quite glad being provided by you with such good base material.
    If you find it not to cheesy we'd like to add your nickname in future results. We could
    credit you as DanLin (Man/Machine) but maybe you've something better than that.

    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

  • 1
    No need to credit me: having someone use something I made is thanks enough. On that subject though, I was trying to picture a few more waveforms that stick to the basic analogue style but add some depth. This style of digital synthesis can reward random experimentation and collecting sound snippets by sampling but my goal here has been to make a set of samples that are synthetic and fit that old school style of conceiving and creating sound.

    To that end I made 3 new waves and corresponding example programs. A sine wave with progressively quieter octaves added above it, a corresponding wave using a triangle as the basis, and finally a saw wave superimposed with a single offset octave (super saw).

    As with the others I maximized the amplitude of the waves so my example programs use an aggressive compressor in the effect slot as a limiter to avoid clipping, especially when played polyphonically. Anyway, here is the link:
    https://www.dropbox.com/s/xlf9qwbfkkt...

    As before, consider it free for any purpose.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • I’m thankful
    We'll definitely use these new waveforms again. Future creations will be more moody
    Farfisa string sound-like which needs more different filtering. A good SubBass Boom
    patch which sounds right might be a real challenge filter-vise. A limiter is a real good
    idea on more voices, the monophonic Moogla Bass is already a bit on the edge.

    Making use of Hypersaws and actually creating any kind of deep string sound needs
    voices. Random layer playback is possible on MPCs, which can nicely emulate the
    unperfect art of analog oscillator behaviour. But then patches end up having only one
    layer for playback, which is not enough for most sounds. Having created an 8-voice
    hyper saw on the MPC would be a fine result. Doe the MPC support intersecting
    keyzones which could be stacked on top of each other? Stacked keyzones which randomly play detuned waveforms would just do for nice string/hypersaws patches.

    We haven't been looking into origins (waves) of vocoder string sounds yet, also
    creating voice sounding wavetable-like synth sounds could be interesting. Maybe
    it does not make much sense on a sample based machine like the MPC, which
    has already a hard time emulating a simple pulse width modulation ..but we'd try.

    Any new special waveforms would be appreciated :-)
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • Yes, I'm fairly sure you can have overlaping key ranges as I've used them accidentally in the past. I was previously considering using the layering on the salamander piano such that each minor third would have 4 key groups covering it, one for each velocity with each one containing 3 samples (taken from the original 16 and volume adjusted to match the middle one). The individual key group would use random selection resulting in a 3 different samples being played for a given key key strike (adding more variations). That would, unfortunately, triple the memory needed so it wouldn't really work on a standalone MPC any longer.

    There are certainly limitations in how the modulations can apply so wave shaping (like pulse width modulation) is effectively not possible as far as I can tell. The modulations are basically fixed and also unipolar (e.g. the filter envelope can't be set to have a negative effect). Another classic analogue synth effect you can't recreate is gliding between notes and controlling how the sons retriggers. On MPC you get not glide and the notes always retrigger per key press.

    As for wave tables I think they would work fine in the sense that a wave from a wave table is just a short, looping sample. The waves I've been making are probably more accurately described as wave tables but with only 1 wave per type. Assuming your waves for the table are in phase you can "morph" between them, as is common on wave table synths, simply by cross fading between them. The wave tables have to be created with care so the cross fades sound fluid and the waves don't destructively interfere. This approach works well for waves that are structurally similar but with differing harmonic content but won't really work for PWM as you'd add additional discontinuities (effectively adding higher harmonics as you cross fade between pulse widths).

    More complex waves such as a real string/organ sample are much more susceptible to aliasing as they are up pitched so you may need a set of samples at differing pitches. Another possible source of interesting waves might be an FM synth. There are probably some free/open source wave table synths out there so it may be the case that some wave tables that we could use already exist.

    I'll see if I come up with any interesting ideas in any case.
  • (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

  • 2
    I haven't got that much time this evening, but I thought I'd try and create a simple wavetable. In this case I used a sample from the Philharmonia set I mentioned earlier. The set of samples specified that you may distribute or use them as you wish as long as you don't just distribute the samples (individually or in an instrument file). Given that I extracted roughly 31ms of audio from 1 cello sample (out of probably 100) as source material and turned it into a full subtractive synth instrument I'd consider this fair use.

    I basically found a 'steady state' snippet (or two) and pitched them down to C-2 then cut them on zero crossings corresponding to the start and end of a cycle and stretched them to match the tuning exactly, then I attempted to phase align them so you can crossfade. This represents a minimal wavetable but if you play both samples with the same onset and tuning (I don't do this in my example for more variety) you can set the volumes of the two waves in your chosen ratio to (effectively) morph between the waves.

    This was not done with a huge amount of forethought and my basic sample was simply the lowest note they sampled. Thinking about it it's probably a better choice to pick a note near the middle of its pitch range so the formants are most representitive. In any case, this functions as an example of a very basic wavetable synthesis approach base on sampled material. In any case the result sounds acceptable around the C1 to C4 range.
    https://www.dropbox.com/s/yt27bq1ulkg...

    Remember that the goal of this wavetable isn't to make the best cello sound, but rather to act as a complex oscillator with a cello like timbre. The goal is to use it as part of a subtractive synthesis process, so it can be mixed and matched with any of the other oscillator types to varying effects. I might try and do something similar with a brass sound next.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • Superb info and quite different material to work with. Thanks from ourside. We're still
    after the idea of layering multiple keyzones for strings and hypersaw stacks.The next
    days we are going to create sounds in that direction to find out what is possible. It'll
    be the base for any further sound design.

    Your provided samples for a wavetable approach is truly motivating. We'll dive into
    that field soon and see how if wave morphing could be done in any way.

    The goal is not another multilayered super sample set which takes gigabytes of disc
    space, that's right. Actually we've an orchestra harp sound in our Akai S700 disc lib
    which doesn't sound to bad. This can't be compared at all, but gets in that direction.
    We'd invest time for a proper harp string creation, that wouldn't need much layers
    but polyphony for decay and proper use of the MPCs internal effects. The patches
    should be as compatible as possible for the MPC series (so no use of 3rd party fx)

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

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

  • Daniel,

    Thanks so much for sharing, this just made my day! It's great! :)
  • (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
    I'm glad you enjoyed it. It would be nice if there were an easier (or broader) way to share media like this as I'm sure a bunch of drop box links in a forum post will be forgotten soon enough and, eventually, no-one will be able to keep track of the content.

    I made a couple more super saw style waves. In particular a stack of 4 octaves worth of saw/square waves with optional alternative sign (i.e 4 related waves). In order to check they work and provide something to carry them with I made some quick synth strings (using all 4 waves and some detune/LFO). The strings aren't very finely tuned, but they give you a flavour of what you might do:
    https://www.dropbox.com/s/q4bc5arki8s...

    The benefit of these composite waves is that they give you the harmonic complexity of multiple oscillators (in this case 4) in a single layer so the 4 layer string's input waveform is analogous to one from a 16 oscillator per voice synth. In a way these are getting too complex and need quite a lot of filtering to be usable in a mix, but at the very least they allow some exploration. I also made a tuba wavetable but it sounded very much like the "sin octaves" wave I'd already created so I wasn't in a hurry to upload. Once I've got a few brass wavetables together I'll bundle them up and upload them too.
  • (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

  • We keep track of it over the weekend, it sounds really exciting. And you are right,
    sharing this kind of media to a broader public would be a good idea. If you like we
    could exchange ideas about it via email. Do you have a profile email address?

    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

  • I've been reading a little about formants in musical instruments recently. I'm considering an experiment using some band pass and band stop filters to break one of the waves out into formant waves and the remainder of the sound. If successful it might allow a more realistic simulation of various instruments while keeping the instrument size small (at most 4 samples in total). The main benefit would be to keep the timbre believable over a wider pitch range.

    I feel like there is a lot of scope for this type of instrument combined with a lot of flexibility that isn't available in a typical sampled instruments. I definitely look forward to seeing what type of sounds we can produce and, more importantly, what type of music we can make with them.

    As for communicating outside this forum, I don't want to put an email address in text as robots will pick it up, but I have a spam oriented email address that I wrote on paper and took a picture of. That should avoid web scraper a from getting it but allow humans to easily read it.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • Very interesting experiment with formants you're about to do. We haven't done much
    in that direction beside having the VirSyn TeraSynth going, which is one of the better
    ones covering formants. One of our next hardware synth we are about to dive into, beside MPC sound of course, is the Waldorf Blofeld, since it is able to read wav files.

    Anyway, let us see what's happening over time.The forum seems a starting point.

    Thanks for the email. It's a good idea handwriting the emailadress, we did the same
    with bank account details purchasing 2nd hand synth. Not sure how deeply OCR is already used by web crawlers today.

    We'll get back via hotmail soon, the Moogla program patch is about to get updated a
    bit adding another lead variation for higher octaves ..including a demo video re-edit.

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

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

  • This reply was removed on 2018-02-23.
    see the change log
  • Robert Hugo:
    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?

    Daniel:
    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, C-2. The standard calculation will tell you that, at 44.1khz sample rate, a 10788 (IIRC) sample waveform will correspond to C-2.

    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.

    Robert Hugo:
    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.)
    • I don't have my MPCX with me (sort of obvious I suppose), so I cannot actually play the waveforms at the moment. I will verify when I get a chance though. I just though that it would be cool to be able to generate an extensive library, sort of like the adventure kid mentioned earlier (not to redo his work per se, but better purposed with the lower/st frequency for maximum sample content).

      I do like the idea of being able to generate advanced waveforms using various methods of blending waveforms with each other and be able to continue with already blended ones to create really complexities. Down the rabbit hole. :)
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • As for the language, I agree that it's simple enough that you can write it in almost anything and porting shouldn't be problematic (as long as no UI gets created). So we are all working to the same end, here is the formula I am using for frequency of notes. In particular the MIDI standard specifies A4 is note 69 yielding a lowest note of C-1, but on the MPC the lowest note is C-2 so that is the frequency I've been targeting; be aware that I'm not simplifying the formulae for clarity, note numbers ascend chromatically.

    C-2 = MPC Note 0 = 440 * 2^(-81/12) hz
    C-1 = MIDI Note 0 = 440 * 2^(-(81-12)/12) hz
    MIDI Note X = 440 * 2^((X-(81-12))/12) hz
    MPC Note X = 440 * 2^((X-81)/12) hz

    For a single cycle waveform at a given sample rate you need a sample that is (sample_rate)/(note pitch) samples long. For continuous waveforms you ideally want value at the first and last sample to be close and the gradient immediately before the last sample and before the first to be almost equal. If you have a sample with discontinuities then placing one across the sample loop boundary (spanning the beginning/end) makes most sense.

    As for combining waveforms, I'd say that this is an interesting approach, but yields a less flexible setup that mixing the waveforms in the MPC. Specifically on the MPC you can re/detune the waveforms affording a wider range of sounds. Remember that a single cycle waveform added to a wave at a different frequency is effectively "v-synced" meaning detunes up in integer frequency multiples work (i.e adding harmonics) but non integer detunes, or detunes down won't. Remember that typical subtractive synths only have 4 or 5 waveform types and rely on the rest of the pipeline to add timbral complexity and modulation.

    One benefit that a typical hardware synth has is a waveshaping capability (such as pulse width modulation on a pulse wave). There is no equivalent to this on the MPC so you need to provide several waves at different shape amounts (as I did for the pulse wave). This is a little clunky and doesn't allow for effective modulation between the different widths. You can simulate such modulations with multiple cycle waveforms, but this starts to reduce the benefit of having single cycle waves (they are very small and easy to work with).

    Another aspect that is similar to wave shape modulation, is the inclusion of inharmonics (harmonics at non integer frequency multiples). In harmonics would also require the sample length be extended until the root wave comes back into phase with the inharmonic (likely many cycles, increasing sample length by 10s to 100s x). In a hardware synth these are typically created using ring modulation or phase or frequency modulation. These things are not practical on the MPC so this approach isn't that helpful for such waveforms.

    I'd say a simple additive synthesis approach would work well for creating basic waveforms (Something like wavetables). That's to say you simply define a spectral make up of the waveform and construct it using an iFFT (or as the superposition of sine waves). Such an approach should be quite easy to implement in software and allow for a good range of (harmonic) timbres. The down side is that such approaches tend to be good for things like pads, but the MPC doesn't really have great modulations to add interest to the sounds.

    Anyway, I have plenty of other thoughts on this, but I'll stop here before I start rambling even more than I already am.
    • view 1 more comment
    • If you make a key group program with samples you specify the note to which the samples you use are tuned. The lowest note that the MPC allows you to select as the root note is C-2. They are correctly tuned when played via MIDI (and I believe all events are effectively MIDI anyway, irrespective of how you input them) so the lowest note in the piano roll on a track is C-1.

      I suspect the reason for allowing you to select C-2 is that pitch bend can have a range of 1 octave so a MIDI note 0 (C-1) pitch bent down an octave corresponds to C-2 (which I referred to as MPC note 0). Assuming you only ever want samples up pitched, it therefore makes most sense to generate them at C-2. In practical terms you rarely see notes in music below C0 so any note in the bass is probably okay.
    • Just got in, checked out a keygroup program, and it appears that they simply use a labeling system of C-2 (LO) to G8 (HI), i.e. note number 0-127, which correspond to the alternate notation of C-1 to G9 range. These are only labels anyway, but knowing local labeling among systems, make it easier to talk about.

      Since there was no inherent standard for MIDI note names, many is considering A440 as being note number 69 being on octave 4, including MTS (MIDI Tuning Standard) and GM (General MIDI). I think this (#69 = A4) is a nice(r) conclusion than what is used in the MPCX, but then again they're only labels.

      In the end it's the note numbers and their relative audio frequencies that matters.
  • (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

  • Being a noob about programming synthesis, apart from the obvious, is there an advantage to using 0 through 2*PI versus 0 through 1 for phase? To me it seems logical to use the latter, but lots of information use 2*PI when talking cycle (probably because of sine waves) so I'd like to understand if I am on thinner ice. E.g. https://en.wikibooks.org/wiki/Sound_S...

    Currently I elected to use 0.0 - 1.0 generically as the phase window, as long as that is equally advantageous to 0.0 - 2*PI.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • I would definitely opt for a normalized window but the extents of that window are effectively irrelevant. Without wishing to over engineer my preference in design would be to make an abstract oscillator base class in which the function domain is defined (in time, and amplitude) as a constructor argument along with a "generate" function that takes a value in the domain and returns the corresponding codomain value . You would inherit from that base class for each oscillator type, setting the most convenient domain and codomain for the oscillator type and override the "generate" function with an actual implementation.

    An object of bass class type would be passed to a "render" function which would scale appropriately between the domain and codomain and the sample format and return an appropriate object containing the waveform. Exactly what the function prototype might look like depends heavily on the library you'll be using to output your waveform. For live playback in jack you get a buffer object for output which contains a pointer to memory for the data and a set of attributes describing the audio format.

    I didn't mention last time either, but, though stereo samples could be interesting, a lot of interesting stereo effects (like chorus) vary on time scales much longer than the wave period so they aren't well suited to build into the samples. Once you have the framework, stereo would be simple but if all you can do is shift by a fixed phase per channel, the MPC can do that for you (there is a time offset on each sample that may be positive or negative.
  • (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

  • Stereo OSC/WAV works quite well. We've done it to the update of the Moogla Bass,
    which is uploaded soon. Nice to have it on the MPC, Stereo Oscillators are quite rare
    and can sound great. Here are some examples of the cycling wave in stereo and two
    variations in mono. The big benefit of having a chorus-like effect via the OSC/WAV is
    to save one effect slot. On the new Moogla Bass update we've happily replaced the
    chorus with a sync pan effect which might add more randomness to the bass sound.







    ps: It's interesting to hear how the inverted OSC/WAV does sound so much different.
    Editing a matching time offset for the samples can really create a serious headache.
    And honestly, the Moogle Bass instrument sounds a lot better than via soundcloud.

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

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

  • Ah, so it looks like your channels are reversed with respect to one another? I guess that would give a different stereo image and timbral complexity (but no temporal variation which is what I was referring to). I hadn't really considered previously, but I believe the MPC allows you (per sample) to specify how it loops (back/forth, only backward or only forward IIRC) so you may be able to do something interesting there. Unfortunately, as it's a property of the sample, if you want several instances with different looping characteristics you need a separate sample for each variant (i.e. no memory saving).

    Going back to the additive synthesis I mentioned, the "correct" approach would be to use an inverse fourier transform ( https://en.wikipedia.org/wiki/Fast_Fo... ) but a much simpler approach would be to simply sum weighted sine waves, something like (in pseudocode):
    generate(t):
    sum = 0
    for weight in index,weights:
    sum += weight*sin(index*t)
    return sum
    Where the sum of the weights is [-1,+1]. The weights represent the 'energy' at the root frequency and corresponding integer overtones.

    You may also want to consider a way of handling the rendering such that it can normalize/remove DC offset from your wave after generation (buffer it as floats then post process before rendering to output format). It is unlikely you want to generate a waveform at anything other than full amplitude as doing so would be wasting fidelity.

    If you want the timbre to vary across registers (as happens to an extent in real analogue synths) then your generation function would need to be a little more complex. The nice thing about one sample per octave is that each octave is 2x the frequency and hence 1/2 the sample length. This means that (in the limit) the extra samples will never cause the total sample amount to more than double.

    Another interesting option would be to make 4 variations per wave and have the MPC round robin or randomly select an instance per key press. This could yield some interesting 'experimental' sounds like the waveform of the oscillators changing randomly or more textural variation in a polysynth where the waveshape changes each time you press a new key.

    Also, (Robert Hugo) feel free to email me (my email address is further up in this thread) if you want to discuss this out of band. I don't have much time for hobby programming projects but I'm happy to provide you with more input if you are interested.
  • (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

  • Round robin is really great on the MPC, even if it was thought for the drums. There's
    obviously not much sound with one cycle wave playing randomly, so layers need to
    get stacked up ..to emulate the behaviour of out of tune oscillators on analog synth.
    For the stereo cycle wave, it's a snapshot out of a longer sound file. Changing loop
    directions doesn't sound good to us. We might have a look in the manual, but the results sound strange. Maybe it's just a bug. Not the most used playback option :-9
  • (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

  • So how about simply extending the SingleCycle to DuoCycle waves and simply make the second cycle the same as the first, but mirrored (if that makes sense)? I am not sure that would make it better, but certainly uniform in the stereo field. :)
  • (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

  • Hey Robert, give it a try. We're really curious about how it sounds! For the above
    shown examples the 1st+2nd waves are classic oscillator emulations (2nd is only inverted) the 3rd is a stereo oscillator sample, picked out of a long sound file (not serious mirror editing trickery but maybe sound design and effect trickery etc :-).

    It's quite fun, give it a shot yourself using a sound editor. Generate a waveform with
    4.0879 herz (equals C-2) and throw it in the original Moogla Bass project file we've uploaded some month ago at https://goo.gl/vnmoYo
    Using that Moogla project, the generated wave file of your own needs to have the
    same name. We're pretty sure you'll setup your own projects and rename files etc.
    We've done maybe 10-20 different variations using cycling WAV files from all over
    the internet place. Finally we "ended up" creating our own, to cover the best quality.
    Wave Editor on Mac is our Sound Editor, OSC/WAVs are all 4,1HZ/32bit/44khz.
    The OSC/WAV for Moogla Bass V1 (link above) was invented by Daniel. Thanks!

    The MPC Software let's you playback samples forwards (Fwd), in revers (Rev) and
    via alternative (Alt) ways. What ALT does isn't known to us, it sounds quite strange.
    Following the classic oscillator run (..what's that?) of analog synth, the Moogla Bass instrument plays all samples normally/forward. We've done some audio examples
    to check what sounds best using stereo cycling waves on 4 layers. Here's a snap:

    The Moogla Bass layers:Oscillators/layers 1+2 play slightly detuned and paned,
    oscillator/layer 3 plays straight from the mid,oscillator/layer 4 is detuned by -12.




    Example 1: Normal run, all oscillators/layers play forward (..update of the above)



    Example 2 : Reverse play for oscillator/layer 2 (sounds strange to us, was a test)



    Example 3 : Reverse play for Oscillator/Layer 4 (sounds good, maybe take it)



    ps: ..add comment: We call it the Moogla Bass because it runs only thru a Moog-like
    filter. It's Moog-ish or Moog-la, but surely not a Moog! All this is not rocket science to
    us, it's only experimental stuff anyway which can break with the next MPC update :-)
    Not to forget: All was done via the MPC Software, Standalone shouldn't be different.

    PSOUND
    • view 1 more comment
    • Using stereo oscillators has been done in other great synthesisers. It's possible on the MPC and sounds good. We really think that counts most. (and actually it can help to get around having only four effects slots available /MPC Software).
    • I have certainly heard that some synthesizers have stereo oscillators, but I'm not sure which and why. On a polysynth the smallest "musical unit" could be considered a voice: typically multiple oscillators shaped and attenuated to represent a musical note. From a hardware and sound design perspective the multiple oscillators in that voice are intended to embody a single instrument voice.

      Though the oscillators are separate, they are passed through a common filter and amplifier into the mix. Typically the mixer after the oscillators mix down to a single mono signal before running into the filter then through the amplifier (per voice) then through an output mixer (with one input per voice). Conventional architecture has the output mixer receive monophonic signals and place them (through some pan control) in the stereo field. In this setup each voice needs one mixer, one VCF, one VCA (irrespective of the VCO count).

      One could conceive of an architecture where each oscillator was panned in the stereo field at the input mixer, followed by a pair of VCF and VCAs per voice. This would add width to each voice but the separation would be per waveform yielding a disconnect between the parts of the voice (this is what the panning of the MPC sample layers does). Another option would be to replace each oscillator with a pair with a controllable delay between the two panned hard left/right on the input mixer. This would also require two VCF & VCA but the timbre of both pieces of the stereo image would be equal. This would use the Haas effect to widen the stereo image of the individual oscillators by a controllable amount without separating the oscillators (within the voice) in the mix (This can be done on the MPC with mono samples using the playback offset and pan controls for the sample layer).

      From a hardware perspective this architecture is quite a bit more complex, specifically it means the per voice mixers have to be stereo, you have to double the VCA, VCF and VCO count and you need to add the delay lines between the stereo elements (plus other complications, like probably wanting to alternate which channel is delayed across all the oscillators). The outcome is slightly more powerful from a sound design perspective, but only marginally at (roughly) a doubling of the cost per voice. The same designs I mentioned would also work on a monosynth (only one voice) so in that context it might make more sense (since a polysynth's cost is dominated more by voice cost than other hardware, in contrast to a monosynth).

      Given the the user wouldn't actually use the stereo image of the individual oscillators using alternate means to provide a stereo image on the master out can be much simpler and cheaper as you only need one (at least on a polysynth, for a monosynth you only have one voice so my former proposal may be simpler). Since each voice is a separate signal on the output mixer then panning them around (either under individual control or a bulk pan spread) will yield a stereo signal of controllable width. The problem here is that if you have a big pan spread and play notes monophonically you hear each note sound in a different point in the stereo field. This is an interesting sound but you may find it disturbing, especially if overdubbed into the mix (where you get different pan each time). This type of panning can't really be handled in the MPC effectively, but it could be simulated using the round robin sample approach. You have 4 instances of the sample for each wave, panned differently in the stereo field; when they round robin the voice (or rather oscillator in this case) would move around the stereo field.

      The other option here is to gain stereo image through a post process on the master out (after the master mixer). To gain stereo image here you'd probably want a chorus, stereo delay, reverb or similar. The difficult part (from a sampling perspective) is two fold. First of all the effect of any such effect is extended. Lets discuss them in turn:
      1. Chorus has a period on the order of seconds, so at the very least a sample of a wave using chorus would need to be on the order of seconds long. Secondly the chorus is typically applied to the entire output (and not per oscillator). Thirdly the chorus has a fixed period, irrespective of pitch but including it in the oscillator sample would make the rate change with pitch.
      2. Stereo delay can have a tail lasting several seconds and should sound after all voices stop sounding (irrespective of the release time). Including this in the oscillator would couple the release time of the oscillator with some assumed release from the delay. it also has the same problems listed for chorus
      3. Reverb has the same problems are Stereo delay.
      In other words if you want a stereo widening effect like the above to work as expected, they must be applied at the effect insert level. Note that all 3 can be applied as a send, so having them as sends saves your 4 per program inserts (though obvious requires common parameters across all programs).

      To be clear, I am not opposed to experimenting with stereo waves, but I think they bring a lot of complexity (in sampling or generation, and in use) and can result (in some situations) in less flexible program architectures on the MPC.
  • (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

  • Regarding the play/loop direction, the closer a wave is to its own (in time) mirror image the less difference in timbre reverse play will have. Significantly asymmetric waves will probably sound very different but symmetric waves (sine, square, triangle for example) will sound almost identical (the reflection is analogous to a phase shift). When played alongside another wave (in tune) however, the phase shift may make a difference (due to signal interference reducing or reinforcing harmonics). The meaning of 'alt' looping is that it alternates between playing the wave forwards and backwards (imagine the play head bouncing back and forth over the wave). Note that, depending on the waveform, you may end up with a subharmonic 1 octave down; this may seem appealing, but additional sub sonic frequencies can be conceived of as a DC offset which may introduce clipping without any perceptual benefit.

    If you look at the waves you posted images of, I think you'll note that at least one looks like the stereo channels are reversed copies of each other. Though this is not how you created it, it may be an interesting method to add stereo image/spectral complexity to an asymmetric wave.

    My observation though is that In a typical analogue synth, irrespective of the master output being stereo or monophonic, the oscillators are monophonic. The stereo width is usually made by panning (aka spreading) the voices over the stereo field (the voice allocation algorithm/voicing mode will affect how this sounds significantly), by applying an effect that adds width (like Hass effect, reverb, stereo delay, chorus etc) and often both. This means that sampling from a synth with anything other than a single oscillator on a single voice with no panning or effects (in mono) may not capture the raw oscillator sound, and the resulting waveform may have temporal effects with a period longer than the wavelength. This means that no one single cycle would capture the true timbre.

    My preference would therefore ordinarily be to capture the raw oscillators and reintroduce the stereo width and effects on the MPC (giving maximum flexibility). If I have the time this evening I'll try and put together an example multi sampled from one of my analogue synths.
    • view 1 more comment
    • Mixing oscillators waveforms is great fun! Being able to run sound samples in a
      way like an oscillators, we think about why not stacking different sorts togethers
      ..much in a mix-down/bounce fashion and reuse it as a single layer oscillator. It
      may be a bit static but playing layers of looping mixed down oscillator stacks in
      a round robin/random way can be interesting. Before we haven't done it in real,
      it's all just theory. It could really expand the layer limitations. Obviously all that
      is different from the single cycle synth idea, this very thread hast started with.

      The focus is to create great sounds, doesn't matter if original or not. If you play
      an old mini moog model a (1968), oscillators tune/detune while the synth is
      getting warmer in time. You'll never ever catch that analog synth behaviour on
      a digital sampler. Doing that stuff on the Akai MPC drum machine concept is an
      experiment all the way. We started with the single cycle waves, but might not
      come back to this very idea. The new stereo Moogla Bass is already not a single
      cycle synth anymore, it's based on cycling stereo waves. The concept has been
      done by others, it's by no means perfect but then the machine (MPC) it's running
      on isn't either at this point of time. And we guess much won't change about that.
    • Yep, I'm always interested in pushing the limits of what the hardware is capable of in search of new sounds. I also try and take an analytic approach to the potential benefits various approaches can afford. I agree that this thread is more than just single cycle synths now, but more generally "MPC Synthesis" which is an interesting topic indeed.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • Well, my original mention of mirror, was more in terms of the waveform stereo field, as in left and right... a simple example would be where we have two cycles where the first cycle is say square to the left and saw to the right, the second cycle would be have the left/right swapped. This appears to be the concept in the last image PSOUND embedded?

    Anyways, I am still figuring some things out, but I added another sample to the previous link, experimenting a bit with various methods. I have no background in DSP so I am having to learn a few things, loads of fun. I have a basic framework for oscillators (C# interface called IOscillator) and implementations of the typical waveforms (pulse, sawtooth, sine, square, triangle and white noise). I also found out how to generate brown (or red?) noise and a couple of versions of pink noise, which was very interesting.

    In order to render waveform from the oscillators I created a generator (IGenerator, for now) and an implementation that yields samples from the oscillators for a specified frequency.

    I also made generators that combine samples in various ways, additive, subtractive, ring modulation and an amplitude modulation. Well, I am using the math, but I am not entirely sure the integration is all that correct. BUT I have definitely created some interesting waveforms using them.

    I created four samples, which are a combination of three wave forms at different frequency, a triangle at note #72, a sine #24 and a square #36, just to see what the outcome would be. They are uploaded to the previous location. I made them so that I can listen to them on my laptop, not as single cycle waves, hence the higher note numbers. They are actually just ten times the 5394 samples of MIDI note 0 (8.. Hz), made it easy on myself. :)
  • (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

  • Out of curiosity we did a Moogla Bass comparison using stereo cycle waves versus
    one using a mono cycle waves (the sum of the stereo cycle wave). Have a listen :-)

    Variation 1: Moogla Bass - Stereo cycle wave (..nothing new here)



    Variation 2: Moogla Bass - monocycle wave (..sum of the stereo cycle wave)



    ps: ..and that'll be all about the Moogla Bass in this thread. Let's do something else!
    • view 5 more comments
    • Just to note: We use 4.0879 hz which results in 4.1 when using the software.
    • Yep, that observation was simply to highlight the problems you can face when doing calculations with numbers that had already been rounded. Doubles are more than sufficient. In fact single (float) and even integer/fixed point can be enough but for non realtime work it hardly matters. For real-time you want to match the format of the output stream end to end if you can to avoid conversion costs.
  • (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

  • Here's an oscillator mix of saw, sine and triangle in one mono-cycling-wave file at
    different levels. (the creation in 3 layers and the sum of all waveforms in one file).
    Now we're curious how that stack will sound on the 4 layers via the MPC Software.



  • (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

  • FYI today I checked on the MIDI output and what MPC calls C-2 is definitely MIDI note 0. All my synths output a wave of period around 5400 samples in when triggered with MIDI Note 0. This confirms what Robert Hugo suggested: the notes are just incorrectly labelled on the MPC (I'd given them the benefit of the doubt and not actually tested previously).

    This means we should be using C-1 at 5394 samples per cycle for what the MPC calls C-2 to remain in "concert pitch". Previously things were 1 octave lower than expected, but the upper harmonic content probably made this non obvious (gave extra sub harmonics).
    • view 4 more comments
    • Yeah, I saw that about the ToFrequency so I quickly changed it before any replies, to a simpler formula. :) Thanks for looking out!
    • Running the MPC Software (no standalone) we actually compared the OSC/WAV
      cycle synth tuning with the Hybrid3 build-in and other third party software synth.
      Doubling midi tracks works well for this purpose.

      new add: A further comparison in more detail including three sources (two synth
      and one piano/not pitched/detuned etc) ..revealed, that the piano needed to get
      pitched down one octave to sound right with the Moogla Bass (at 4.088 HZ/C-2).

      Creating an OSC/WAV much in the way as described above (8.175 HZ/C-1) and
      tuning it via the MPC Software to C-2, results in the following sound example:
      (4 Tracks, 3 Synth, 1 Piano) ..now the whole Sequence should be played lower.
      Taking a 3rd party piano instrument into comparison is actually a quite good idea.

  • (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

  • Hallo! Could anybody around here come up with a simplified workflow for everybody
    how to create THE perfect single/cycle wave? Why not use the audio editor Audacity
    for these examples, it's freeware and available for major computer platforms.

    Also a little talk about benefits of having OSC/WAVs created in C-1/C-2 (or what?)
    might be interesting. A lot of OSC/WAVs from original synth like Moog, Yamaha,
    OSC are around octave 1 and octave 2. They sound great in professional software solutions recreating classic synthesisers, which the MPC platform has yet to proof
    (talking about.. lfo/pw modulation,osc sync,unison,morph,portamento,presets etc).

    THANKS!
    PSOUND
    • The reason I am making this code, was to be able to via a command line be able to generate single cycle (perhaps also multi-cycle) wav files.

      I would like to be able to generate not only one at a time, but also a sequence of them, similar to the waves in wavetables, but in separate files. E.g. combining various input parameters (to the command line) it would output a number of wav files with some change/s occuring between each one. Sort of what the adventure kid has.
    • ..sounds/reads like a wavetable sweep
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • The notation is really just a label.

    The SPN (Scientific Pitch Notation) states that "Using scientific pitch notation consistently, the MIDI NoteOn message assigns MIDI note 0 to C−1". (https://en.wikipedia.org/wiki/Scienti...)

    The MTS (MIDI Tuning Standard) as defined by the MMA (MIDI Association) states (link above) "The frequency range starts at MIDI note 0, C = 8.1758 Hz, and extends above MIDI note 127, G = 12543.875 Hz." (https://en.wikipedia.org/wiki/MIDI_tu...)

    The A440 Pitch Standard further adopts this, "It is designated A4 in scientific pitch notation because it occurs in the octave that starts with the fourth C key on a standard 88-key piano keyboard. On MIDI, it is note 69." (https://en.wikipedia.org/wiki/A440_(p...)

    In the section of "Similar systems" it is mentioned that "pitch-octave notation conventions that appear similar to scientific pitch notation but are based on an alternative octave convention that differs from scientific pitch notation usually by one octave." (https://en.wikipedia.org/wiki/Scienti...)

    So it's not particularly odd that Akai and the MPC range use a different (shifted) notation, perhaps because older MPC's were invented before these things became the norm, and Akai don't want to upset long time users?

    I personally prefer MIDI Note 0 = 8.1758 Hz = C-1, and MIDI Note 69 = 440 Hz = A4, since that also correspond to how pianos are tuned and assigned frequencies relative to their notation. Makes it easier on everyone.

    In the end it really doesn't matter since you could tune any note to any frequency and call it anything and as long as you retain the pitch intervals you could play it like any other piano, but it would be out-of-tune when compared to others. :)
    • view 2 more comments
    • The problem with using MIDI note as the label (hex or decimal) is that, when used on various platforms, MPC included, the correspondence between the MIDI note and the note name (e.g. C-2) is non obvious. This makes the discrepancy (C-2 vs C-1) quite frustrating as a clear naming for MPC and otherwise that is also user friendly. It seems like naming like: M-0F-D#-1_MPC-D#-2 sound be very verbose, but specific enough for any user.

      One observation is that if you create the MPC instrument program XML programmatically alongside the waves then the naming is less important.
    • I don't think there is a universal naming convention (other than the actual frequency) but that is even harder to map for a human. As you say, making basic programs would solve a bit of that, regardless of any chosen notation.

      The better for MPC is of course C-2, but I think C-1 is universally a better choice.

      The best of course, would be if Akai changes their notation. ;)
  • (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

  • We've experimented with effects on stereo OSC/WAVs with quite interesting results.
    That's all we're able to do as sound designers, beside generating normal single cycle waveforms and multi layer/round robin synthesiser sample recording/creations.

    To catch the very own oscillator sound of various classic synthesisers, we'll further
    spend time on reusing sampled waveforms, taken of these very original machines.
    Since you guys seem to know the math you might have the answer. Is there an easy
    way to analyse a cycle wave for its original/correct pitch in case it's not known? We
    have no real concept for this yet, being able to run software on MacOS, Windows7/8
    and Debian Linux.

    PSOUND
    • I am not familiar with the math in question, maybe FFT (Fourier), but I can't imagine that it's super hard to do. It's probably more a foreign concept to most. It certainly is to me.

      Akai, this is a function that would be nice to have built-in to the MPC, a sample most likely pitch founder-outer. (HINT!)
    • The tuning is fairly straightforward in this case. Since you know exactly how many samples a single cycle of a given pitch should be, you simply cut out one cycle of the waveform you have and stretch it to be the number of samples it should be: it will them be in pitch.
  • (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

  • FYI I tried to sample some waves from a synth (driven by the MPC). The synth has 3 oscillators so I set the synth up to produce an unshaped raw wave on one oscillator at concert pitch then made a sequence playing each note C for 1 beat up all the registers. I repeated the process 3 times, once for each oscillator (assuming they will sound different). The result is a multi cycle sample of the same wave from each oscillator (for variety). These samples can be loaded into something like audacity to be cut up and tuned.

    The cutting up can be done well enough by eye if you zoom in until just more than one full cycle of the wave fills the screen. I recommend setting it to show the wave in DB as it's much easier to spot repetitive elements of the waveform that way. You then cut a piece of the wave for each register out containing precisely one cycle (preferable starting and ending at a 0 crossing). I noted that in the low registers there was more variance of the period (in samples). In higher registers (with t be too tricky but for anything more complex it could be very hard. The former method has the benefit of working on any waveform (even things like wavetables) whereas the latter is of varying difficulty depending on the source.
    • I don't know what happened here, but over half my comment disappeared :(
    • I'll summarize what was missing, to sample from a real synth... Get the samples as I mentioned, cut one representative waveform of each register for each oscillator trying hard to hit the 0 crossings and ensure the phases/peaks match. Adjust the speed of each wave so it is exactly the correct number of cycles long. Make an instrument program using your samples with the 3 instances per key group set to select randomly. This way you have "natural variation" but also exact pitch and phase unless you choose to alter either. (to fix the phase cut pieces from the end of the sample and move them to the start or visa versa until the peaks coincide).

      I observed that the waveform I was using (saw) looks very different across registers. In particular the gradient of the ramp doesn't vary across registers that much, so in the mid it looks like a saw wave, in the treble it looks almost like a sine and in the bass it looks like it's 0 mostly apart from an impulse once per cycle. These variations are presumably important to the character of the synth.

      In my testing I only did one copy of each wave per register and it sounded okay except for one register. The problem with that register is in cutting I introduced a small discontinuity which sounds as high end content. The fix is to manually inspect each waveform and paint out any discontinuities like this.

      I think automating this in some way would be very helpful. The easiest I could think of is to do a fourier transform on a representative set of cycles of your oscillator in a given register. You can then use the power spectrum to generate a single cycle wave of corresponding spectral content. This has a down side of not generating such sharp waveforms, but an advantage that it works on any input (eg wavetables). Also using a inverse fourier transform can give you waves that are exactly in phase (which is good). Another option would be to devise a method to detect the peaks and zero crossings and infer where the single cycles are... cut them out, then pitch correct them to the nearest C.
  • (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

  • When talking about using waveforms of analog synthesisers we don't own, we think
    about the various synthesis sound packs for electron gear which can be found at:
    https://www.elektron.se/soundpacks/

    Immortal Waves (MoogModel D based samples /free)
    https://www.elektron.se/soundpacks/im...

    Oxford Overdrive (OSCar based samples /free)
    https://www.elektron.se/soundpacks/ox...

    These packs are great, the projects/samples are all for the Elektron Monomachine.
    Which tuning do they have? Maybe the included .syx files hold any information, the
    included PDFs do not.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • The odd thing about reusing oscillator waves taken from other synth and play them
    in cycle loops via the MPC Software, is the addition of digital high frequent overtones.
    It's not existing on any note, but clearly there on any 6th/7th note. This is really awful
    and very much audible on cycling sawtooth waves as on smoother sine waves. We
    don't now if that is MPC Software (Mac/PC) specific, but it is a real existing problem
    which can't quite be confirmed on other music software products we're using.

    This would be finally quite interesting for us to test on the MPC Standalone hardware
    as much as the instrument all the above mentioned sound packs were produced for.
    • view 3 more comments
    • The MPC, as we see it, isn't made for synthesis and we guess that won't change.
      Speaking to the Akai support, they actually point out that synthesis needs much
      processing power and therefore gets no support. The lack of mod sources show
      that much won't work at all. Options like round robin are meant for providing more
      variety on drums (hihats?) not synthesis. It's always fun to get around limitations
      and test the limits of what is possible. But if you used to work with music standarts
      on hardware (none Akai) since 25 years ago in a more time saving manner, self-
      limitating get's a bit hard. The gear on the table then needs to be extraordinary
      good, what the MPC Software and hardware controllers can't deliver yet. Maybe
      that's all different for MPC Standalone units, probably you really have to own one
      to now how good it is. We have none and are not about to get one soon.

      Not quite sure if it's very bright to say that Akai needs to deliver, maybe they really
      do ..and we're just false trying or simply using it wrong. MPC sample playback is
      much supported via software options and commercial sounds (Expansion Packs).
      So let's giv'em samples, multisamples or multisample-cycling waves just will do.
    • I suspect they overplay the CPU power required for synthesis. In particular if they wanted to provide machinery to generate various raw oscillators in place of samples this is very computationally cheap. I think the limiting factor lies more in the design and intent of the device.

      The device grew from a sampler/sample playback device and sequencer. Those features and the workflow built around them lie at the heart of the MPC hardware and software design. They have attempted to add features to facilitate differing modes of use, but at its core it's the same device. Maintaining the workflow and user friendly experience for the classic MPC use cases will always take priority over supporting new use cases (irrespective of the hardware's ability to support them).

      I believe the MPC live/X represent an attempt to bring a new experience to users but the paradigm is built heavily on prior designs and what they believe user expectations to be. Going forward I hope to see improvements and well thought out design changes to simplify various (traditional and non-traditional) use cases. My suspicion though, is that such changes will happen on subsequent hardware generations.

      I also agree that a dedicated synthesis engine doesn't necessarily belong in the device (as the complexity it adds might detract from the overall simplicity). Irrespective of that, the machine has reasonable sound design possibilities. Using those to their fullest (be they on single/multi samples or single cycle waveforms) will always be appealing. Even on multi samples strong modulation options open a world of sound design (e.g. the new prophet X). From my perspective a stronger (i.e more flexible) modulation section would benefit all users for little cost. That is definitely second on my wish list, just after improved MIDI handling.

      Irrespective of all this: It's great to have meaningful conversations on a topic like this. Somehow this seems to be sorely missing on a lot of internet forums. It's great to collaborate and share ideas, so all participants: thank you! I look forward to seeing what other ideas (and music) we can come up with.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

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

  • That commercial hardware hasn't been taken to its full potential by the company who
    offers it, has been successfully proven by alternative OS developers, i personally do
    admire a lot. If it's Magic Lantern for Canon Photo Cameras which adds professional
    video recording options, the Zaquencer for Behringer midi control hardware which
    surprisingly supports midi step-sequencing or JJ-OS for the legacy MPC 1000/2500
    introducing round robin options for sample playback etc ..there seems more under
    "the hood" of everydays hardware than one expects.

    Maybe the MPC Live get its custom firmware in a not so distant future, that shows
    what is really possible using this music hardware ..we wouldn't wonder. And b.t.w.
    having an Arkanoid/Break-Out session on the big MPC touch screen might be even
    much more fun than on a Canon Camera display running Magic Lantern Break-Out.

    An alternative OS hasn't to be freeware, a project like that nowadays could get pretty
    well funded via a crowd-funding campaign. We ourselves might pay up to a hundred
    bucks for some OS which save us time and run music hardware which is good to its
    full potential (including a game :-).

    It doesn't help much for todays MPC usage, it's just a future vision. Let's see..
    • While I very much like the idea of aftermarket firmware I'd definitely prefer to go down that road when the manufacturer officially declares the platform end of life. The more the burden to improve (and the requirements of the users) is pushed onto the manufacturer the more we'll see the next generation move in the direction we'd like.

      The prospect of making an aftermarket firmware on the live is (unfortunately) quite a bit more onerous one than the likes of the Zaquencer, JJ-OS and launchpad pro. In particular those platforms run 'bare metal' on a relatively simple platform (and I believe in the case of magic lantern is a patched existing firmware). The result is that the platform's software is simple enough for a single individual to write a complete replacement.

      This is where the MPC Live differs. The MPC live can be thought of as a full OS (likely some *nix, probably linux) on a custom hardware platform. If the platform is made of commodity hardware then the possibility of installing Linux or BSD directly is reasonable. If the hardware isn't commodity then to get to that stage would require quite a bit of reverse engineering to produce usable drivers. Even then, things like power management would also need consideration (to keep the battery life high).

      If one got to that stage you would have an MPC which could boot to a desktop with a touch screen, USB ports plus audio and MIDI interfaces on which you could run platform specific software. This is, unfortunately, of limited use as you'd basically have a heavy and underspecified laptop in a strange form factor. This is when the "real work" would start. In effect the rest of the "firmware" would be a new, written from scratch, MPC like piece of software (that you might otherwise run on a desktop computer); you'd be writing the "MPC 2.0" software from scratch.

      Obviously you could choose to compile whatever other music software you have in source form (Ardour, LMMS etc). The problem with such a choice would be that, unlike the actual MPC software, they are not designed to operate on the exact hardware platform (with a constrained display size, custom buttons/dials and a touch interface). This would mean that at the very least the UI would need to be rewritten and, most likely, a whole set of custom control bindings would need to be created. This is not even considering other complications like the VU meter and dial displays on the MPC X.

      The best parallel I can think of here is writing a new OS for a phone (on modern hardware like iPhone). There do exist several projects which, at first glance, look like they are doing this (like cyanogen mod) but they are quite different. They are simply porting (and writing a few drivers) for an existing OS (Android) to target the platform. The software on top of the OS already exists in redistributable form and therefore don't need to be rewritten. This is not the case for MPC. All things are obviously possible, but I am highlighting that a true aftermarket OS replacement would likely either be a huge amount of effort to make (many people, for many months) or would not really keep the experience the same (behaves like a laptop or runs LMMS with a custom UI and bindings).
    • Probably you're right about the lack of specific drivers running an alternative OS.
      The MPC without working pads/knobs is useless. I personally don't think a next
      generation MPC will improve on synthesis options. If at all i guess it'll be an own
      separate unit with an descriptive named like Akai Rhythm Wolf. Having drumpads
      on a synth unit isn't what people expect. So it'll be a challenge to work with what's
      there and try to get the best out of it. Showing it to a wider public and maybe get
      noticed by the devs might change their minds. Anyway, good to talk/back2sound.
  • (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