Jump to content

Recommended Posts

Posted

ChatGPT made this function. It works if you change :forte to :pitches. But the results will also be :pitches type. Is there any way to find a Forte name for a set consisting of numbers or pitches? Pcs-analysis of course, but it has to be used one set at a time.

 

(defun find-pitch-classes-with-interval (interval-value interval-class cardinality)
  (let* ((pitch-sets (pcs-cardinal cardinality :forte)) ; Retrieves sets in Forte notation
         (matching-sets
          (remove-if-not
           (lambda (set)
             (let ((vector (interval-vector set)))
               (and (>= (nth interval-class vector) interval-value))))
           pitch-sets)))
    matching-sets))

 

Thanks,

Henry

Posted

If the last line reads (mapcar 'pcs-analysis matching-sets), a list of pcs-analyses is printed. But apparently you cannot list them? That would give the opportunity to extract the information that you want.

Posted

I'm basically looking for a list of Forte names. Most of the pcs-analysis information is available with OM pcs functions, but the option to find Forte name for a set of numbers or pitches seems not to be available. 

 

Forte similarity relations would also be a useful addition.  Maybe there could be a function for that. In fact I was planning to compare sets of selected cardinality by cross-searching e.g. for two instrument classes to find a similarity relation.

Posted

I'm beginning to try. Pcs-complement might be a companion to that. This is variance, where you compare pitches.

Then there similarity relations, where you compare intervals classes.

 

Allen Forte writes: "...the relation maximum similarity with respect to both pitch class and interval class will be regarded as more significant than pitch class similarity alone or interval class similarity alone."

 

So I thought it could be a good idea to have a function with which you could compare pitch-sets regarding interval classes. That's my one cent...

 

I think I have to read the Forte book again carefully, and this time also the second half Pitch-Class Set Complexes, which I neglected earlier 😧

 

I'm now very motivated to learn more, since I have, for the first time, heard something musical coming out from OM: first Stéphane's string quartet workspace and then the examples in your book! Thanks a lot for that! 

 

 

 

 

Posted

Yes!

(defun find-pitch-classes-with-interval (interval-value interval-class cardinality)
  (let* ((pitch-sets (pcs-cardinal cardinality :integer))
         (matching-sets 
          (remove-if-not 
           (lambda (set)
             (let ((vector (interval-vector set)))
               (and (= (nth interval-class vector) interval-value))))
           pitch-sets)))
    (let ((pc-sets matching-sets))
  (mapcar (lambda (pc-set)
            (pcs-prime-form (pcs-normal-order pc-set) :forte))
          pc-sets))))

(find-pitch-classes-with-interval 3 0 6)

=> (6-8 6-9 6-9b 6-z10 6-z10b 6-z11 6-z11b 6-z12 6-z12b 6-z13 6-14 6-14b
    6-15 6-15b 6-16 6-16b 6-z17 6-z17b 6-18 6-18b 6-z19 6-z19b 6-20 6-z39
    6-z39b 6-z40 6-z40b 6-z41 6-z41b 6-z42 6-z43 6-z43b 6-z44 6-z44b)

 

Posted

Some potentially useful files:

.xml-files that show pitch-class sets in traditional notation plus forte names plus interval vectors. These can be opened in OM Notation Viewer, or, if you want to print them out, Lilypond is your friend (Dorico or MuseScore don't import text attributes).

 

If you need to add forte names on a note example, you can use add-forte-text-attributes. Paste it into Opusmodus/User Source/Extensions/User Attributes.lisp.

 

For investigating R₀,  R₁  or R₂ -relations, put R₀-R₁-R₂-relations.lisp into Opusmodus/User Source/Libraries/Def-Library/.

Info about these relations is found in PCSets.pdf, which is in OM Documents.

Rₚ-relation you can find with pcs-sub-relation or pcs-sub-sets.

 

If there are any errors, let me know.

 

Henry

add-forte-text-attributes.opmo cardinality-3-with-info.xml cardinality-4-with-info.xml cardinality-5-with-info.xml cardinality-6-with-info.xml cardinality-7-with-info.xml cardinality-8-with-info.xml cardinality-9-with-info.xml R₀-R₁-R₂-relations.lisp

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy