Pebble 1.1 - Mix it up!


It's here! After four months of development, the big 1.1 update is officially out!

There are quite a few new features, so we'll start with the highlights:

  • UI Stuff - New color palettes & font options, file selector windows for saving & loading, and a snazzy little volume meter!
  • New chunk types! MIX lets you arrange song parts in a visual layout, and OSC lets you create oscillator modules (like LFO's & automation in other DAW's)
  • New module types! PanPortamento, and LRJoin.
  • And a handful of new properties for customizing Sequences & other modules! (More on those below.)


Alright, time for the in-depth change log! Starting with the small stuff. For more info about how to use the new features, see the Guide Page.

  • Bug Fixes
    • Fixed a bug that was causing the ATK property in the Repeat module to parse incorrectly & throw an error.
    • Fixed a bug that was causing Delay to parse incorrectly if no meta properties were set.
  • Config Chunk - Added a MEASURE property, which sets the number of steps in 1 measure for the song. This will be used as the default SCALE for each space in the MIX chunk.
  • Delay Module - Added a MAX property, which sets the maximum delay time. If the delay time is going to increase during playback, indicating the maximum amount here will save a lot of processing power & likely prevent audio glitches. Numeric. Default: Null (no max).
  • Limit Module - Added a MAKEUP (or MK) property, which applies automatic makeup gain to return the level to 100% after limiting. True/False. Default: False.
  • Set Module
    •  Added an INDEX (or INX) property, which overrides the random index behavior in favor of the given set index. Set indexes start at 0 for the first element, and count up from there. Numeric. Default: Null (random index).
    • Added a STATIC property, which tells the Set not to choose a new random index when reset. This is handy for if you want something to be chosen randomly, but only once & then remain the same. True/False. Default: False.
  • Added a COPY property to Modules (MDL), Instruments (INS), Sequences (SEQ), and SeqBlocks (BLK). By default this is True, meaning these modules will be copied for each use. When disabled, copying will be prevented, and only one instance of the module will exist in the song. True/False. Default: True.
    • Warning! This can definitely have some strange and unintended consequences. Most modules are designed with the idea that they will be operating on their own copy each time. Use with caution & be prepared for something weird to happen.
  • Sequences / SeqLines
    • Added a PITCHLOCK (or PTLK) property, which tells the SeqLine to only update its pitch module while an instrument is actively playing. This should make it a little easier to line up pitch changes & slides with their intended notes. Can be set on individual SeqLines or the entire Sequence. True/False. Default: False.
    • Added a PANLOCK (or PNLK) property, which tells the SeqLine/Sequence to only update its pan module while an instrument is actively playing. When applied on the Sequence level, this affects the Sequence's pan module, and likewise with the SeqLine level. True/False. Default: False.
  • Sequences
    • Added a SCALE property, which sets the number of song steps represented by 1 space/character in the Sequence patterns. Numeric. Default: 1.
  • New module type: Pan (h)
    • As implied, the Pan module lets you set the panning of an input module. Panning works the same as elsewhere in Pebble, where -9 represents 100% Left panning, and 9 represents 100% Right panning. 0 is Center.
    • Usage: AhB, where A is the input module, and B is the panning amount.
  • New module type: Portamento (u)
    • Portamento adds a pitch-slide effect, where pitch changes are applied gradually over a given number of song steps.
    • Usage: AuB, where A is the input module, and B is the number of song steps.
    • Note: Separate notes played by the same Instrument use different copies of the module, meaning in many standard Sequences, there is no pitch change to apply Portamento to. There are a couple of ways to get this module to work, though:
      • Use a sustained note and apply pitch changes either through the SeqLine's pitch module or through a Pitch operator.
      • Set the Instrument's COPY property to FALSE, so it won't be copied for different notes. (This means you can only have it play 1 note at a time, or things will get real weird!)
  • New module type: LRJoin (|)
    • LRJoin is the same functionality as the old Stereo Value symbol, but instead of just working on 2 numeric values, now you can join any 2 modules. The first module will be used as the Left channel, and the second module will be used as the Right.
    • Usage: A|B, where is the Left input and is the Right input.
  • New chunk type: OSC
    • This chunk allows you to create Oscillators, which are generic modules that run separately from whatever modules they might be used in. They keep time based on the song itself, so if you use the same Oscillator in multiple different notes or patterns, they will always be in sync with each other, even if those patterns don't start at the same time or run at the same speed.
    • Apart from the timing aspect, OSC works just like the generic MDL chunk, and the usage & syntax is the same for both. After you create an Oscillator, it will be available anywhere a generic module would be available (which is pretty much anywhere!).
  • New chunk type: MIX
    • MIX works a lot like the SEQ chunk, except where SEQ lets you lay out notes in piano roll form, MIX lets you lay out song parts in the same way. (Think like the main track view of a DAW.)
    • Each MIX represents a single Mix, and you'll give it a name just like with SEQ.
    • The lines under the header are each separate Tracks. They start with a volume amount (9 for 100%, 0 for 0%, can be a module), then a colon, and then a pattern of things to play on that Track. Like in SEQ, this pattern starts and ends with a measure line: |
    • Each space in a Track pattern represents 1 measure by default (16 steps), but you can change that length by setting the SCALE property for the Mix. Set SCALE to the number of song steps you want each space to cover!
    • You can use Sequences, SeqBlocks, and even other Mixes inside a Mix, but they need to have a single-character name. A good workflow is to use SeqBlocks to assign your multi-character patterns to single-char names right before the mix.
    • Here's an example of what a Mix chunk might look like!
// Assign patterns to Mix-friendly names
// (pretend these are patterns we already created)
BLK
A: MDY1
B: MDY2
C: HMY1
D: HMY2
E: KCK
F: SNR
G: SNR2
H: HATS
// Lay out the mix
MIX PRT1
8: |A-B-A-B-|    A-B-| // Melody
6: |    C-D-|    C-D-| // Harmonies
4: |E---    |E-------| // Kick drum
4: |    F---|G---F---| // Snare
7: |        |H-------| // Hats

Files

pebble-linux.zip 35 MB
Version 1.1.0 Apr 29, 2022
pebble-osx.zip 58 MB
Version 1.1.0 Apr 29, 2022
pebble-windows.zip 28 MB
Version 1.1.0 Apr 29, 2022

Get Pebble

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.