HenryT Posted October 26, 2024 Posted October 26, 2024 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 Quote
HenryT Posted October 27, 2024 Author Posted October 27, 2024 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. Quote
opmo Posted October 27, 2024 Posted October 27, 2024 For what result (output) you are looking for. Quote
HenryT Posted October 27, 2024 Author Posted October 27, 2024 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. Quote
JulioHerrlein Posted October 28, 2024 Posted October 28, 2024 Have you tried the pcs-sub-relation function ? Quote
HenryT Posted October 28, 2024 Author Posted October 28, 2024 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! Quote
HenryT Posted October 29, 2024 Author Posted October 29, 2024 I found out that with pcs-prime-form you can get the Forte number... Quote
HenryT Posted October 29, 2024 Author Posted October 29, 2024 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) jon and Stephane Boussuge 2 Quote
HenryT Posted November 3, 2024 Author Posted November 3, 2024 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 jon and Stephane Boussuge 2 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.