की चरम सीमा है I संगीतकार हूं और मैं क्लोजर में एक फ़ंक्शन लिखने के साथ खेल रहा हूं ताकि पिच ए 4 और ए 5 (आवृत्तियों 440Hz और 880Hz क्रमशः) के बीच एक सरल ग्लिसैंडो को पुन: पेश किया जा सके। घातीय वक्र, लेकिन मैं परेशानी में भाग रहा हूँ। मूल रूप से मैं इस तरह उपयोग करना चाहते हैं: सिवाय मैं अंत में भी यह एक तीसरा तर्क के रूप में एक नमूना दर देना चाहते हैंग्लिसंडो फ़ंक्शन जिसका तर्क कोडोमेन
=>(441 484 529 576 625 676 729 784 841)
:
(def A4 440)
(def A5 880)
(gliss A4 A5)
जो मेरे जैसे कुछ देना चाहिए।
काम करता है इस तरह की:
(defn gliss
[start-pitch end-pitch s-rate]
(let [f (fn [x]
(expt x 2))]
(remove nil?
(map
(fn [x]
(when (and
(>= (f x) start-pitch)
(<= (f x) end-pitch))
(f x)))
(range 0 10000 s-rate)))))
मैं इस समस्या लगता है कि जिस तरह से मैं समारोह का उपयोग करना चाहते है। कुछ ऐसा कहने के बजाय "x1 से x2 तक glissando जहां f (x) = x^2" मैं वास्तव में कहने की कोशिश कर रहा हूं "f (x) == 440 से f (x) == 880 तक glissando" तो मैं ' एम ने वास्तव में शुरुआत में काम करने के लिए एक्स की एक श्रृंखला नहीं दी है, इसलिए इस मामले में मैंने कड़ी मेहनत 0 से 10000 क्यों की, लेकिन यह बदसूरत है।
जो कुछ मैं करने की कोशिश कर रहा हूं उसे पूरा करने का एक बेहतर तरीका क्या है?
अद्यतन: मैंने टर्मिनोलॉजी में गलती की है जिसे फिक्सिंग की आवश्यकता है (यहां लोगों के सभी लोगों के लिए जो क्लोजर में ग्लिसेंडो को नोट करना चाहते हैं)। तीसरा तर्क वास्तव में नमूना दर नहीं है, यह संख्या के नमूने होना चाहिए। दूसरे शब्दों में, नमूना दर (जो 44100 हर्ट्ज या 48000 हर्ट्ज, आदि हो सकती है) निर्धारित समय के लिए नमूने की संख्या निर्धारित करता है।
(defn gliss
[start end samples]
(map #(+ start
(*
(math/expt (/ (inc %) samples) 2.718281828)
(- end start)))
(range samples)))
(defn ms-to-samps
[ms s-rate]
(/ (* ms s-rate) 1000))
इस तरह::
(def A4 440)
(def A5 (* A4 2))
(def s-rate 44100) ;; historic CD quality sample rate
(gliss A4 A5 (ms-to-samps 500 s-rate))
यह एक अच्छा जवाब है। मुझे निश्चित रूप से यह पसंद है कि आपने 'ई' चुना है और आपने इसका उल्लेख किया है। मुझे निश्चित रूप से ओवरटोन के साथ इसका परीक्षण करना चाहिए। 1 के एक्सपोनेंट के लिए, मुझे लगता है कि एक संगीत स्टाफ पर नोटेशन ऐसा लगता है कि इसे इस तरह से किया जाना चाहिए, लेकिन व्यवहार में वे लगभग बहुत ही रैखिक रूप से प्रदर्शन नहीं कर रहे हैं। – tjb1982