Jump to content

Search the Community

Showing results for tags 'lispworks'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Welcome to Opusmodus
    • Announcements
    • Pre Sales Questions
  • Support Forum
    • Support & Troubleshooting
    • OMN Lingo
    • Function Examples
    • Score and Notation
    • Live Coding Instrument
    • Library Setup
    • MIDI Setup
    • SuperCollider
  • Question & Answer
    • Suggestions & Ideas
    • Zoom into Opusmodus
  • Sharing
    • Made In Opusmodus
    • User Extensions Source Code
  • Opusmodus Workshops & Schools
    • Composer Workshop

Calendars

  • Community Calendar

Product Groups

  • Opusmodus

Categories

  • Introduction
  • How-to in 100 sec
  • Zoom into Opusmodus
  • SuperCollider
  • How-To
  • Workflow
  • Live Coding
  • Presentation
  • Analysis
  • Composer Workshop

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Gender


Location


Interests


About Me

Found 1 result

  1. Inspired by the example from this thread but I could not find the related function been shipped with the OM application. The code requires OM3.0 because of LispWorks specific API but the concept should be simple enough to be implemented in Clozure CL. After some midi objects has been compiled and inserted to the playlist one can use run-playlist to start play. While it is still playing one can feed more midi objects queued to the playlist. When the playlist is empty and after the specified seconds of timeout, the player process would exit. (setq midi1 (compile-score 'score1)) (setq midi2 (compile-score 'score2)) (setq midi3 (compile-score 'score3)) (defparameter *playlist* (mp:make-mailbox)) (defun push-to-list (item) (let ((midi (cond ((eq (type-of item) 'midi:midi) item) ((symbolp item) (compile-score item)) ((or (stringp item) (pathnamep item)) (midi:read-midi-file item))))) (mp:mailbox-send *playlist* midi))) (defun run-playlist (&key (timeout 5) (ignore-ports nil)) (mp:process-run-function "Playing..." () (lambda () (loop (let ((current (mp:mailbox-read *playlist* "Wait for feed tracks" timeout))) (if current (mp:process-join (start-midi current :ignore-ports ignore-ports)) (return))))))) (push-to-list midi1) (push-to-list midi2) (run-playlist 5) (push-to-list midi3)
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy