मैं सोच रहा था कि PHP में एक फ़ंक्शन कैसे बनाया जाएगा, जिसका उपयोग कुछ संगीत तारों को स्थानांतरित करने के लिए किया जाता है।PHP के साथ संगीत तारों को कैसे स्थानांतरित करें?
मैं यह समझाने की कोशिश करूंगा कि यह संगीत सिद्धांत में कैसे काम करता है। मुझे आशा है कि मैं कुछ नहीं भूलूंगा। अगर कुछ गलतियां हैं, तो कृपया इसे ठीक करने में मेरी सहायता करें।
1. सरल तार।
सरल chords लगभग के रूप में एक वर्णमाला के रूप में सरल हैं और यह इस प्रकार है:
सी, सी #, डी, डी #, ई, एफ, एफ #, जी, जी #, ए, ए # बी
बी से यह फिर से सी पर लूप करता है। इसलिए, यदि मूल तार E
है और हम +1 को ट्रांसफर करना चाहते हैं, परिणामी तार F
है। यदि हम +4 को स्थानांतरित करते हैं, तो परिणामस्वरूप तार G#
है।
2. विस्तारित तार।
वे लगभग साधारण तारों की तरह काम करते हैं, लेकिन कुछ और वर्ण होते हैं, जिन्हें ट्रांसपोज़ करते समय सुरक्षित रूप से अनदेखा किया जा सकता है।
CMI, सी # 7, Dsus7, ईएमआई, Fsus4, एफ # मील, जी ...
तो फिर, सरल chords के साथ के रूप में, हम स्थानांतरित करता है, तो Dsus7
+ 3: उदाहरण के लिए = Fsus7
3. गैर रूट बास टोन।
समस्या तब उत्पन्न होती है जब बास कोर रूट टोन की तुलना में एक अलग स्वर बजाता है। यह तार के बाद एक स्लैश द्वारा चिह्नित किया जाता है और इसे भी स्थानांतरित करने की आवश्यकता होती है। उदाहरण:
सी/जी, Dmi/ए, एफ # sus7/A #
1 2 उदाहरण और साथ के रूप में, सब कुछ एक ही है, लेकिन स्लेश जरूरतों के बाद वाले हिस्से भी स्थानांतरित, इसलिए :
C/G
+ 5 = F/C
F#sus7/A#
+ 1 = Gsus7/B
तो मूल रूप से, कल्पना करें कि आपके पास एक PHP चर है जिसे chord
और ट्रांसपोज़र मान transpose
कहा जाता है। कौन सा कोड तार को स्थानांतरित करेगा?
उदाहरण:
var chord = 'F#sus7/C#';
var transpose = 3; // remember this value also may be negative, like "-4"
... code here ...
var result; // expected result = 'Asus7/E';
मैं StackOverflow, at here पर एक ही अस्तित्व में सवाल मिल गया है। वे तार-प्रगति के लिए एल्गोरिदम के बारे में बात करते हैं।
मैं PHP के साथ संगीत chords कैसे स्थानांतरित करते हैं, बढ़ाने या semitones द्वारा कम करके?
SO में आपका स्वागत है। कृपया पढ़ें [मैं किस विषय के बारे में पूछ सकता हूं] (http://stackoverflow.com/help/on-topic) और [एक अच्छा सवाल कैसे पूछें] (http://stackoverflow.com/help/how-to -स्क) और [सही सवाल] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) SO ** एक मुफ्त कोडिंग या कोड रूपांतरण नहीं है या ट्यूटोरियल या पुस्तकालय खोज सेवा ** आपको यह भी दिखाना होगा कि आपने अपनी समस्या को हल करने के लिए कुछ प्रयास किए हैं। – RiggsFolly
@lvk मेरी पहली टिप्पणी में लिंक पढ़ें! – RiggsFolly
ऐसा लगता है कि आपको कोई समस्या है, लेकिन आपने समाधान का पता लगाने की भी कोशिश नहीं की है। क्या आपने अभी तक एक फ़ंक्शन लिखने का प्रयास किया है? आप लोगों को यहां आपके लिए कोड लिखने के लिए नहीं मिलेगा, ऐसा नहीं है कि यह कैसे काम करता है। हम उन चीजों को ठीक करने में मदद करते हैं जो काम नहीं कर रहे हैं लेकिन आपने शुरुआत नहीं की है। ऐसा लगता है कि आपको 'सरणी' ('सी', 'सी #') जैसे एक एसोसिएटिव सरणी बनाने की आवश्यकता है और फिर आप इच्छित मूल्य प्राप्त करने के लिए सरणी में इंडेक्स की तुलना करना शुरू कर सकते हैं। – Jimbo