Skip to content
This repository was archived by the owner on Nov 16, 2025. It is now read-only.

ormf/cl-mobmuplat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository has Moved!

Due to the fact that GitHub is hosting the files on privately owned servers located in the USA, this repository has been moved to Codeberg in November of 2025. It will not receive further updates or patches. Issues and pull requests will not be looked at here either, please submit your patches and issue tickets on Codeberg, or send them directly via good old email patches to the author.

Thanks.

cl-mobmuplat is a simple api to simplify the creation of json files for the MobMuPlat platform using common lisp.

Dependencies:

Installation:

If quicklisp is installed, put the folder into ~/quicklisp/local-projects or alternatively put it in a location where asdf looks for .asd files.

Then use (ql:quickload "cl-mobmuplat") or (require 'cl-mobmuplat)

example:

(require 'cl-mobmuplat)
(in-package :cl-mobmuplat)

;;; create the lisp structure of a gui with one slider and one button:

(make-mmp
 :pd-file "mmp-test.pd"
 :canvas-type "tallTablet"
 :gui (list
       (make-slider :frame '(80 0 240 50))
       (make-button :frame '(80 60 50 50))))

;;; convert to a json-string:

(encode-json-to-string
 (make-mmp
  :pd-file "mmp-test.pd"
  :canvas-type "widePhone"
  :gui (list
        (make-slider :frame '(80 0 240 50))      
        (make-button :frame '(80 60 50 50)))))

;;; Write a gui with one slider and 8 buttons to file: Note the
;;; boolean predicate for the :is-orientation-landscape

(with-open-file (out "/tmp/mmp-test.mmp" :direction :output :if-exists :supersede)
  (encode-json
   (make-mmp
    :pd-file "mmp-test.pd"
    :canvas-type "tallPhone"
    :is-orientation-landscape nil
    :gui (append
          (list
           (make-slider :frame '(80 0 240 50)))
          (loop for count below 8 collect
               (make-button
                :frame `(80 ,(+ 60 (* 60 count)) 50 50)
                :address (format nil "myButton~2,'0d" count)))))
   out))

Check the widgets.lisp file for all possible keywords for the make-mmp and gui widget functions.

A multipage object is the same as a single page object with a larger screen size. Use the appropriate x-offsets to draw gui objects on the relevant pages.

The code is (c) Orm Finnendahl, released under the GPL, version 2 or later, without any warranties. Use at your own risk.

About

Simple Common Lisp api layer for creating GUI files for the MobMuPlat platform.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors