Skip to content
View in the app

A better way to browse. Learn more.

Opusmodus

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

"Voice-leading" monophonic lines

Featured Replies

I just want to share a AHA-moment and nothing more than my admiration for OM...

The function closest-path is documented to voice-lead chords, which already in my view is a great use-case.

But do you know that it also helps to get a cohesive monophonic line from otherwise pretty scattered pitch collection as its often the result of a stochastic generation processes ?

Most of you will know this already, having a musician background and it might feel trivial (the mere name voice-leading already indicates it).

So I am writing this more to share my surprise and learning for those coming rather from „outside“.

I was so nudged by the docu which covers chords, so that I did not recognize that its highly generalizing.

Example:

;; Random noise
(setf vector (gen-noise 32 :seed 42))

;; Map to 3 Octaves
,; OK I am making this up, its just an example, 
;; showing what one can expect for stochastic material.

(setf pitch-mat (vector-to-pitch '(c3 c6) vector))
(pitch-list-plot pitch-mat)

Bildschirmfoto 2025-12-19 um 22.24.39.png

With closest-path :

;; Voice leading also for melodies :-)
(setf pitch-mat-vl (closest-path pitch-mat))
(pitch-list-plot pitch-mat-vl)

Bildschirmfoto 2025-12-19 um 22.26.07.png

Very interesting

(closest-path (vector-to-pitch '(c3 c6) (gen-noise 32 :seed 42)))

I agree, very interesting and I didn't know this possible monophonic usage of closest path.

Generally I use vector-smooth function to get more melodic material from vectors but this alternative is very interesting, thank you.

(pitch-list-plot
 (vector-to-pitch
  '(c3 c6)
  (vector-smooth
   0.02
   (gen-noise 32 :seed 42))))
  • Author

Comparison:

Given (setf v (gen-noise 32 :seed 42).

Code

Plot

(vector-to-pitch '(c3 c6) v)

Bildschirmfoto 2025-12-25 um 20.25.49.png

(vector-to-pitch '(c3 c6) (vector-smooth 0.02 v))

Bildschirmfoto 2025-12-25 um 20.27.18.png

(closest-path (vector-to-pitch '(c3 c6) v))

Bildschirmfoto 2025-12-25 um 20.28.39.png

(relative-closest-path (vector-to-pitch '(c3 c6) v))

Bildschirmfoto 2025-12-25 um 20.30.04.png

Create an account or sign in to comment


Copyright © 2014-2026 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.