Wednesday, March 1, 2017

MMA on Mac

I had a note the other day from a prospective user who had a Mac system. He was having some problems with installing MMA using the instructions at:

I don't have a Mac, so really can't contribute much to the conversation. But, I'm sure one of my delightful readers can help. Please let me know if that page needs help or needs updating.

Saturday, January 21, 2017

MMA in Debian

Got a note earlier today from Anthony Fok the maintainer for MMA in the Debian repositories. He has uploaded version 16.06 and it should be working it's way though in the next short (long?) while.

In the meantime, I checked my repository for Ubuntu 16.10 and, YEAH!!!, MMA 15.12 is there. About a year old, but current enough.

Now, I honestly have no idea how many MMA users there are out there. Looking over my download history from my web site there are more than 200 downloads per month. And via distribution apt's? Who knows. But, all is pretty good as far as I can see.

Now, all you downloaders (and I assume users): Please share what you are doing with the greater community. Send me new grooves. Patches. Ideas.

Tuesday, January 17, 2017

Random chords

One of my friends did a little song in which he created the chord sequence by rolling dice. He then assigned different chords to the bars based on the results. Cool, I thought (even though he is using BiaB and not MMA to create his music). But, dice? Oh, so primitive! I figured a little python program would be much easier!

For the discussion and the song, jump over to the Kara-Moon forum.

So, here is a quick program (this listing was created using pygments, a very useful program).

To use, just create a sequence and then cut/paste the result into a text file. Add some groove names, tempo, etc. and you've got an original song. If only life had been this easy for guys like Bach and Beethoven.

Here's the code (you should be able to cut/paste this to your computer and run it with python):

#!/usr/bin/env python

# This program will generate a mma compatible
# set of chords generated at "random".

# The chords are generated based on a major scale in Ionian mode.
# Using roman numeral results permits easy key changes, but different
# chord tables can be used. 

import sys, os, random

def error(m):
    """ Abort on error with message. """

def usage():
    """ Print usage message and exit. """

Mma-rndchords, (c) Bob van der Poel
USAGE: mma-rndchords  nn
  nn == the number of chords to generate.


if len(sys.argv[1:]) != 1:
    print("mma-rndchords: number of requested bars.")

bcount = int(sys.argv[1])

# This is the weighted table.
# Using roman numerals
#chords={ "i": 4, "ii7": 2, "iii7": 3, "IV": 3, "V7": 4, "vi7": 2, "viiO": 1 }
# Using traditional chord names. Feel free to roll your own.
chords={ "C": 3, "Dm7":2,  "Em7": 3,  "F":4,   "G":5,   "Am7":2,  "Bdim7": 1}
# Convert to an expanded list. It'll look like ["i", "i", "i", ...]
chords = [k for k in chords for _ in range(chords[k])]

for a in range(bcount):
    print "%s %s" % (a+1, random.choice(chords)) 
Simple enough? If you need more options, etc. feel free to add to the program or contact me here via comments and I'll see what I can do.

Saturday, December 10, 2016

Neat sounds using apreggiate and mallet

I needed a somewhat spooky introduction to a song I'm playing. Here are a few lines which might be of interest with (hopefully) useful comments:

Tempo 80
Keysig Ab  /// important here just for the chord choices

// Set up our solo voice
Begin Solo
    Voice OrchestralHarp
    Articulate 190  // very long sustain
    Harmony 3Above+3Below+38below  // lots of notes
    Arpeggiate Direction=Down Rate=16 Decay=-4
    Mallet Rate=64 Decay=-5
    Octave 5
    Begin Riff

Groove NiteJazzIntro   /// our intro groove. Could be anything

Decresc mf mp 4  /// have volume decrease over 4 bars

1         Fm
2         Dm
3         Gmb5

// Change a bit for the final bar
Begin Solo
  Arpeggiate Direction=Down Rate=43 Decay=-4
  Mallet Rate=32 Decay=-2
  Articulate 200

4         Fdim / F#dim

And, that's all folks. Cut and paste into an editor and run it though MMA. Now, you can play with some of the rates and get your own ethereal sounds.

Have fun!

Wednesday, November 30, 2016

New videos

The music teachers group I belong to had their annual concert earlier this month and I played two songs with fellow teacher, Monte Anderson, accompanying me on piano. And our good friend Brian Stushnoff was on hand to video the event. Here are my performances:



I'd love to hear what you think of these. Send me a note by email, here in the comments or in a youtube comment!

Thursday, September 15, 2016

I felt great today!

So, here I was ... just minding my own. Doing a bit of email, etc. and I got a phone call. Nice, elderly lady looked up my number and told me that she'd finally decided to give me a call. She'd purchased one of my CDs, five or more years ago at an art show and really needed to let me know how much she still enjoyed it. I could hear it playing in the background. During our brief conversation I thought she was going to break down into tears.

The CD was done as a test of MMA! All the backgrounds, 100%, were done with MMA. All I had to do was write the melodies, play the saxophone, record and mix it all. The simple stuff :)

Made me feel pretty darn good knowing that this little test could bring such joy into someone's life!

Saturday, September 10, 2016

New Developer Version 16.06.a

I've posted mma-16.06.a on the download site. A few features I'm sure "someone" will like:

 - The AFTER option parser now permits option pairs in the command to execute properly.

 - DefaultDrum now sets up solo/melody tracks as
      well as drums. I've spent quite of time debugging this apparently simple fix. Please let me know if get it to crash!

 - The plain old #5 for a major chord no longer works (well, it didn't before!). Please use (#5), + or aug.

As always, you can get this at:

Have fun!