Skip to content

Releases: ddj231/Handel

0.8.0

05 Feb 23:51
Compare
Choose a tag to compare

New Features

  • Adds Notegroups
  • Adds select expressions. Select expressions allows you to index into notelists and notegroups (0 indexed)
  • Allows using choose expressions with Notegroups

The syntax for Notegroups is as follows: |E4, G5| C4, D4| E3

Below is an example program that uses Notegroups and select expressions:

start
  save group = |E3| D3, G3| B3, F3
  save sec = select 0 from group
  play sec for 1b
finish

0.7.12

02 Feb 19:13
Compare
Choose a tag to compare

New Features

  • adds choose expressions. This allows you to choose a random subset of notes from a notelist.

The syntax is: choose digit from notelist

Below is an example program that uses this feature:

start
    save list = E2, G2, B2
    save note = choose 1 from list
    play note for 1b
finish

Bug fixes

  • allows digit expressions that begin with digits (no just enclosed in parens) to be used wherever a digit is expected.

0.7.7

31 Jan 02:37
Compare
Choose a tag to compare

New Features

  • randint and eval expressions can now be used wherever a digit type is expected. See release 0.7.2 for context

0.7.4

30 Jan 04:45
Compare
Choose a tag to compare

Bug Fixes

  • no longer creates new scope for if-else blocks and block loops

0.7.2

30 Jan 04:12
Compare
Choose a tag to compare

New Features

  • allows random number generation when setting variable
  • allows evaluating expressions when setting variables

To generate a random number when setting a variable, use the randint keyword, followed by a range start to end

To evaluate an expression use the eval keyword followed by a mathematical expression (note division is integer division).

Here is an example of the syntax:

save somerandomdigit = randint -5 to 5
save someint = eval 5 * 5 / (1 + 1) % 6

0.7.0

29 Jan 03:41
Compare
Choose a tag to compare

New Features

  • adds if - else blocks (conditionals)
  • adds while loops

The syntax for an if - else block is as follows:

start
    if E4 greaterthan Cb3 then
        play E4 for 1b 
    else
        play Cb3 for 1b
    endif

    save mydigit = -5
    if mydigit equalto 5 then
        play C2 for 5b
    endif
finish

The syntax for an while loops is as follows:

start
    save note = C2
    block 
        play note for 1b 
        update note rshift 1
    endblock loop while note lessthan C3
finish

0.5.11

29 Jan 02:37
Compare
Choose a tag to compare

Bug Fixes

  • fixes rest error bug

0.5.10

27 Jan 01:56
Compare
Choose a tag to compare

Bug Fixes

  • check types when shifting by variable amount. See 0.5.9 release

0.5.9

27 Jan 01:52
Compare
Choose a tag to compare

New Features

  • allows shifting by variable amount

Example

start
  save num = 10
  save mynote = E4
  update mynote rshift num
finish

0.5.8

27 Jan 01:06
Compare
Choose a tag to compare

New Features

  • all types can now be shifted.
  • Integer shifting is the equivalent of addition and subtraction.
  • Shifting a playable, shifts its associated note lists by a number of semitones.
  • Shifting a duration increases or decreases its beat length.

Example:

start
save num = 0
update num rshift 5

save myplayable = D2 for 1b
update myplayable lshift 2

save myduration = for 1b
update myduration rshift 3

finish

At the end of the above program, num = 4, myplayble = C2 for 1b, and myduration = 4b