জেনহারমনিক (অ্যাড।): সংগীতের সাথে সম্পর্কিত যা পরিচিত 12 টি টোন সমান স্বভাবের স্কেলে রচিত নয় তার বিপরীতে।
–আইভর ডাররেগ
জেনহার্মলিব একটি সাধারণ সংগীত তত্ত্বের গ্রন্থাগার যা traditional তিহ্যবাহী পশ্চিমা এবং অ-পশ্চিমা সুরেলা সিস্টেমগুলি, অপ্রচলিত মাইক্রোটোনাল এবং ম্যাক্রোটোনাল টিউনিংস, ডায়াটোনিক এবং পোস্টটনাল সেট তত্ত্ব এবং অ-মানক স্বরলিপিগুলিকে সমর্থন করে।
এটি ব্যবহার করা সহজ, প্রসারিতযোগ্য এবং স্বজ্ঞাত হওয়ার চেষ্টা করে। একটি উঁকি দিন:
from xenharmlib import WesternNotation
from xenharmlib.periodic import mod_connectors
n = WesternNotation()
# find out which I-III-V triads can be used
# to modulate between d minor and g major
d_minor = n.pc_scale(('D', 'E', 'F', 'G', 'A', 'Bb', 'C'))
g_major = n.pc_scale(('G', 'A', 'B', 'C', 'D', 'E', 'F#'))
for c in mod_connectors(d_minor, g_major, (0, 2, 4)):
print(c)
WesternNoteScale((A0, C1, E1))
WesternNoteScale((C1, E1, G1))
from xenharmlib import EDOTuning
from xenharmlib import play
from xenharmlib import UpDownNotation
# create a supermajor 7 chord on vD for an
# equal temperament with 31 notes per octave
edo31 = EDOTuning(31)
n_edo31 = UpDownNotation(edo31)
d_down = n_edo31.note('vD', 4)
SM3 = n_edo31.shorthand_interval('^M', 3)
P5 = n_edo31.shorthand_interval('P', 5)
m7 = n_edo31.shorthand_interval('m', 7)
chord = n_edo31.scale(
(
d_down,
d_down.transpose(SM3),
d_down.transpose(P5),
d_down.transpose(m7),
)
)
print(chord)
UpDownNoteScale((vD4, F#4, vA4, vC5), 31-EDO)
play(chord, duration=1, play_as_chord=True)
from xenharmlib import EDTuning
from xenharmlib import FrequencyRatio
# analyze group theoretical properties of
# Bohlen-Pierce tunings
bp = EDTuning(13, FrequencyRatio(3))
p1 = bp.pitch(4)
p2 = bp.pitch(18)
i1 = bp.interval(p1, p2)
print(p1.pc_index)
print(p2.pc_index)
print(i1.frequency_ratio)
dist = i1.get_generator_distance(
bp.pitch(7)
)
print(dist)
শ্রোতা এবং নকশা দর্শন
জেনহারমলিব এমন সুরকার এবং গবেষকদের লক্ষ্য করে লক্ষ্য করা যায় যারা ইতিমধ্যে পাইথন প্রোগ্রামিংয়ে প্রাথমিক জ্ঞান রয়েছে।
জেনহার্মলিব করেন না স্কোর রচনা সরঞ্জাম, সিকোয়েন্সার বা সিনথেসাইজার হওয়ার লক্ষ্য (তবে এর উপরে এই জাতীয় জিনিসগুলি তৈরি করা সম্ভব)। বরং এটি বৈজ্ঞানিক ফোকাসের সাথে সুরেলা সম্পর্কের বিভিন্ন ধারণাগুলি অন্বেষণ করার জন্য একটি সরঞ্জামসেট সরবরাহ করতে চায়।
জেনহার্মলিব অবজেক্ট-ভিত্তিক তবে বেশিরভাগ কার্যকরী প্রোগ্রামিং নীতিগুলির আশেপাশে ডিজাইন করা হয়েছে: অবজেক্টগুলি অপরিবর্তনীয় হিসাবে বিবেচিত হয় এবং পদ্ধতিগুলি অভ্যন্তরীণ অবস্থার পরিবর্তন করে না তবে মূল অবজেক্টের পরিবর্তিত সংস্করণগুলি ফিরিয়ে দেয়।
বৈশিষ্ট্য
জেনহার্মলিব দ্বারা সমর্থিত জিনিসগুলির একটি নির্বাচন:
সমান বিভাগ টিউনিংস (যেমন পশ্চিমা, আধুনিক আরবি, তুর্কি মাকাম, বোহলেন-পিয়ার্স, ওয়েন্ডি কার্লোসের গামা স্কেল)
পশ্চিমা স্বরলিপি (বিরতি নামকরণ সহ)
আপ/ডাউন নোটেশন (পশ্চিমা স্বরলিপিটির একটি সুপারসেট)
অন্তর, আঁশ এবং একে অপরের সাথে তাদের সম্পর্ক বিশ্লেষণ
গোষ্ঠী তাত্ত্বিক বিশ্লেষণ (পূর্ণসংখ্যা পিচ, পিচ ক্লাস ইত্যাদি)
অন্তর সিকোয়েন্স প্যাটার্ন ম্যাচিং
স্বেচ্ছাসেবী কী পরিবর্তনের জন্য মড্যুলেশন পরামর্শ
বেসিক পোস্টোনাল বিশ্লেষণ (সাধারণ এবং প্রাইম ফর্ম গণনা, বিপরীতকরণ ইত্যাদি)
রোডম্যাপ
পরিকল্পিত বৈশিষ্ট্যগুলির একটি তালিকা (প্রয়োজনীয়ভাবে কালানুক্রমিক ক্রমে নয়):
পশ্চিমা সংগীতের জন্য টেমপ্লেট
স্কোর রেন্ডারিং ব্যাকেন্ডগুলির জন্য প্লাগইন ইন্টারফেস
উন্নত পোস্টটনাল বিশ্লেষণ (অন্তর ভেক্টর, জেড-রিলেশনস, ফোর্ট সংখ্যা)
রথেনবার্গের স্বীকৃতি এবং বিরতি ম্যাট্রিক
এমওএস স্কেল জেনারেশন ইউটিলিটিস
কেবল অন্তর্নিহিত এবং প্রাইম সীমাবদ্ধ সুর
বর্ধিত হেলমহোল্টজ-এলিস জি পিচ স্বরলিপি
বিজোড় সীমা টিউনিংস
আরেল-ইজগি-উজডে লেক ডোনমন
লাইসেন্স
জেনহার্মলিব এর অধীনে প্রকাশিত হয়েছে জিএনইউ পাবলিক লাইসেন্স ভি 3।
আপনি উত্স কোডটি হোস্ট করা খুঁজে পেতে পারেন Gitlab.com
স্বীকৃতি
ধন্যবাদ ঘুড়ি গিড্রাইটিস এবং
তুষার ফ্রস্ট এবং আমি যখন আপডেটনোটেশন বাস্তবায়নের জন্য লড়াই করে যাচ্ছিলাম তখন জেনহারমনিক জোটের বিভেদে থাকা প্রত্যেকে যারা আমার সাথে ধৈর্য ধরেছিলেন।
সমর্থন এবং যোগাযোগ
আপনি যদি কোনও নতুন বৈশিষ্ট্য জিজ্ঞাসা করতে চান বা কোনও বাগের প্রতিবেদন করতে চান তবে এটিকে নিয়ে যান
গিটল্যাব ইস্যু পৃষ্ঠা। যদি আপনি কেবল রক্ষণাবেক্ষণের সাথে চ্যাট করতে চান: আমি প্রায়শই চারপাশে ঝুলন্ত জেনহারমনিক জোটের ডিসকর্ড
নামের অধীনে @retooth
ব্যবহারকারী গাইড
নিম্নলিখিতগুলিতে, আপনি বেশিরভাগ জেনহার্মলিবের বৈশিষ্ট্যগুলির জন্য একটি গাইড পাবেন।
অবদানকারী গাইড
আপনি সর্বদা একটি টান অনুরোধ খুলতে স্বাগত জানাই, তবে, একটি পুল অনুরোধের জন্য কিছু পূর্বশর্ত রয়েছে যা আপনার জানা উচিত:
আপনার প্রতিশ্রুতিবদ্ধ বার্তাগুলি ফর্ম্যাট করার জন্য দয়া করে ব্যবহার করুন
প্রচলিত প্রতিশ্রুতিআপনার কোড ফর্ম্যাট করতে দয়া করে এটি ব্যবহার করুন
কালো কোড ফর্ম্যাটার
স্ট্রিং নরমালাইজেশন বন্ধ হয়ে যায় এবং সর্বাধিক লাইনের দৈর্ঘ্য 79৯। স্ট্রিংগুলির ক্ষেত্রে, জেমহর্মলিব ডেটাগুলির জন্য নীতিগত একক কোট (‘) অনুসরণ করে, ডক্টস্টিংয়ের জন্য কেবল মানুষের (ব্যতিক্রমের বর্ণনার মতো) এবং ট্রিপল-ডাবল কোটস (“” “) দ্বারা পড়ার জন্য তথ্যের জন্য ডাবল কোটস (“) অনুসরণ করে।আপনার কোডটি এমন পরীক্ষাগুলির সাথে আসা উচিত যা আপনার করা সমস্ত কিছু কভার করে। (এর মধ্যে শাখা কভারেজ অন্তর্ভুক্ত)। জেনহার্মলিবের পরীক্ষার কাঠামো হ’ল
pytesteআপনার কোডটি টাইপ টীকাগুলির সাথে আসা উচিত। কয়েকটি ব্যতিক্রম রয়েছে: কখনও কখনও পাইথনের টাইপিং সিস্টেমটি যথাযথ স্ট্যাটিক-জাতীয় টাইপিং করার পক্ষে যথেষ্ট পরিপক্ক হয় না (উদাহরণস্বরূপ এটি উচ্চ-কির্দি প্রকারগুলিকে সমর্থন করে না)। কখনও কখনও পাইথনের গতিশীলতা ব্যবহার করার নকশার কারণ রয়েছে। এই ভারসাম্যের জন্য অনুভূতি পেতে কেবল বিদ্যমান কোডের চারপাশে স্নুপ করুন।
জেনহার্মলিব কার্যকরী প্রোগ্রামিং নীতিগুলির চারপাশে ডিজাইন করা হয়েছে। পদ্ধতিগুলি কল করার সময় অবজেক্টগুলি তাদের অবস্থার পরিবর্তন করা উচিত নয় (সূচনা পদ্ধতিগুলি বাদে)
চেঞ্জলগ
পরিবর্তনের তালিকার জন্য দেখুন চেঞ্জলগ