Saturday, September 24, 2005


Starting a blog for Monad ramblings!! Here is the first port about the Monad Package Manager i have written, its very very alpha and needs a new scriptdepot. But hej Microsoft is going to move fast to win the web but until then i'll use what serves my purpose. So here it is Introoducing MPKG - the Monad Package manager

Introducting the Monad package manager. You can download it from

The scriptdepot contains a bunch of monad scripts to experiement with. To install the package manager copy the script to your msh directory and run it as follows: mpkg.msh -install

You are all set to explore the package manager. It allows you to search the internet for scripts just type mpkg.msh -search [query].

Fun! fun !! ride enjoy!!

Wednesday, September 07, 2005

Artificial Music

My rendition of Alap in Raag Bhup with Teen-taal in beats, the code is in lisp:

(setq *BHUP-SCALE* '(55 57 59 60 62 64 65 67 69
71 72 73 75 76))
(setq *TEEN-TAAL-THEKA* '((0 45 500 10 127)
(500 41 500 10 127)
(1000 41 500 10 127)(1500 45 500 10 127)))

(defun compose (number-of-events ontime)
"(compose 77 0)"
(if (zerop number-of-events)()
(cons (list ontime
(+ (choose-bhup-notes 0) 0)
;;to put it in MIDI range
(compose (- number-of-events 1)
(+ ontime 1000)))))

(defun surleena (number-of-events)
"Alap with zor n zhala optimum @ 25 events"
((alap (long-notes
(compose number-of-events 0) 0))
(zor-zhala (scale-tempo 0.5
(compose number-of-events 0)))
(zor-theka (scale-tempo 1
(repeat-events 8 2000
(* 1000 number-of-events) zor-zhala)
(* 500 number-of-events) zor-theka)

(defun long-notes (events change-so-far)
"Assuming events are well-formed"
(if (null events) ()
(let ((change (random 500)))
(cons (change-tempo (first events)
change-so-far change)
(long-notes (rest events)
(+ change change-so-far))))))

(defun change-tempo (event val tempo)
"(change-tempo '(0 34 1000 1 127) 0 500) returns
'(0 34 1500 1 127)"
(list (+ (nth 0 event) val)
(nth 1 event)
(+ (nth 2 event) tempo)
(nth 3 event)
(nth 4 event)

(defun choose-bhup-notes (number)
"Picks one note from a flute based bhup scale"
(let ((val (+ (random 23) 53)))
((memberp val *BHUP-SCALE*) val)
(t (choose-bhup-notes number))

(defun memberp (elem elist)
"Is elem a member of elist"
((= elem (first elist)) t)
((null (rest elist)) ())
((not (null elist))
(memberp elem (rest elist)) )

(defun scale-tempo (factor events)
"Scales tempo 0-1 1 implies no effect"
(if (null events) ()
(let* ((event (first events))
(ontime (round
(* factor (first event))))
(duration (round
(* factor (third event)))))
(list ontime (second event)
(fourth event) (fifth event))
(scale-tempo factor (rest events))

Enjoy the code is LGPL.

Saturday, September 03, 2005

Verses Froms The Bible


Shoulders/ Chest/ Back


Standing Barbell Curls

Barbell Flat Bench Press


Preacher Curls

Barbell incline bench press

Machine Squats

Incline Dumbbell Curl

Dumbbell flat bench press

Leg Presses

Reverse Preacher

Dumbbell Incline

Leg press toes pointing out

Cable Press Down

Dumbbell Decline

Hack Squats

One Arm Press down

Parallel Bar Dips


Seated Triceps

Dumbbell Fly

Leg Extensions

Lying Triceps

Incline Fly

Leg Curls

Lying dumbbell extension

Cable Cross over

Standing Calf Raises

Lying cross dumbbell ext

Rope pulls

Seated Calf Raises

Kick Back

One arm cable pulls

One arm extension

Barbell Flat bench Press


Dumbell Flat Bench Press

Decline Dumbell Press

Dumbell Fly

Close Grip Chins

Lats machine pull down

One arm dumbbell rows

Seated cable rows

· Crunches
· Reverse Crunches
· Hanging Reverse Crunches
· Vertical Bench Crunches
· Cable Crunches
· Seated Leg Tucks
· Machine Crunches