इस प्रोजेक्ट के बारे में

TastyTunes एक डेस्कटॉप एप्लिकेशन है जो StreamMagic प्लेटफॉर्म पर बने Cambridge Audio नेटवर्क प्लेयर्स के लिए रिमोट कंट्रोल के रूप में कार्य करता है। README में समर्थित मॉडलों के रूप में Evo 75/150, CXN100 और CXN (V2), MXN10, AXN10, EXN100, Edge NQ और 851N का उल्लेख है, जबकि विकास और दैनिक परीक्षण Evo 150 पर किए गए हैं। यह ऐप स्थानीय रूप से चलता है, उपयोगकर्ता के अपने नेटवर्क पर स्ट्रीमर से बात करता है, और इसे किसी खाते या क्लाउड सेवा की आवश्यकता नहीं होती है। macOS 11+ (यूनिवर्सल, साइन्ड और नोटराइज्ड), Windows 10+ (x64 और arm64 को कवर करने वाला एक सिंगल साइन्ड इंस्टॉलर) और Linux (x64 या arm64 AppImage, जिसमें 64-बिट Raspberry Pi OS शामिल है) के लिए इंस्टॉलर प्रकाशित किए गए हैं। लॉन्च पर, ऐप SSDP के माध्यम से नेटवर्क पर StreamMagic डिवाइस खोजता है, और यदि खोज में कुछ नहीं मिलता है तो IP एड्रेस मैन्युअल रूप से दर्ज किया जा सकता है। एक डेमो मोड बिना किसी हार्डवेयर के, एक बिल्ट-इन वर्चुअल स्ट्रीमर और दो सैंपल लाइब्रेरी के साथ पूरे एप्लिकेशन को चलाता है। 'Now Playing' एक धुंधले आर्ट बैकड्रॉप पर बड़े एल्बम आर्टवर्क, ट्रैक विवरण, कोडेक, सैंपल रेट, बिट डेप्थ, लॉसलेस और MQA के लिए फॉर्मेट बैज, और एक सिग्नल-क्वालिटी इंडिकेटर प्रस्तुत करता है जिसके स्टेट्स रंग के साथ-साथ आकार में भी भिन्न होते हैं। मुख्य विंडो के साथ एक फुलस्क्रीन Display मोड, एक फ्रेमलेस ऑलवेज-ऑन-टॉप मिनी प्लेयर, और एक वैकल्पिक मेनू बार या सिस्टम ट्रे पैनल की सुविधा दी गई है। लाइब्रेरी फीचर हर लोकल UPnP मीडिया सर्वर और स्ट्रीमर के USB स्टोरेज को Artists, Albums और Tracks व्यू में एकत्रित करता है, जो एक रिबिल्डेबल लोकल इंडेक्स द्वारा समर्थित है जो सभी स्रोतों में 'search-as-you-type' की सुविधा देता है। फ़िल्टरिंग और सॉर्टिंग में शैली (genre), दशक, फॉर्मेट, डायनेमिक रेंज और एल्बम बनाम संकलन (compilations) का अंतर शामिल है। एल्बम हैंडलिंग फीचर गेस्ट आर्टिस्ट्स को उनके स्थान पर रखता है, संकलनों को Various Artists के तहत समूहबद्ध करता है, मल्टी-डिस्क सेट के लिए डिस्क डिवाइडर दिखाता है, और मल्टी-वॉल्यूम बॉक्स सेट को वॉल्यूम सेलेक्टर के पीछे संक्षिप्त करता है। गायब आर्टवर्क को Cover Art Archive से भरा जा सकता है। लाइब्रेरी प्लेबैक के अलावा इसमें पसंदीदा (favourites), कंटेंट डेफिनिशन पर आधारित स्थानीय रूप से संग्रहीत प्लेलिस्ट, मल्टी-सेलेक्ट और ड्रैग रीऑर्डरिंग के साथ एक क्यू, स्ट्रीमर के 99 प्रीसेट स्लॉट (नंबर कीज़ द्वारा रिकॉल किए जा सकते हैं, जिनमें से प्रत्येक का अपना वॉल्यूम हो सकता है), टिल्ट और बैलेंस के साथ सेवन-बैंड EQ, सोर्स स्विचिंग, और शैली एवं दशक श्रेणियों के साथ radio-browser.info डायरेक्टरी की ब्राउजिंग शामिल है। सिंक किए गए लिरिक्स LRCLIB से आते हैं और लाइन-दर-लाइन हाइलाइट किए जाते हैं; किसी लाइन पर क्लिक करने से प्लेबैक वहीं पहुँच जाता है। आर्टिस्ट बायोग्राफी और एल्बम फैक्ट्स MusicBrainz और Wikipedia से लिए गए हैं, जिनमें एट्रिब्यूशन लिंक दिए गए हैं। ऑडियो विश्लेषण लोकल मीडिया सर्वर से फाइलें पढ़ता है ताकि सीक बार और आर्टवर्क के नीचे वेवफॉर्म बनाया जा सके, और DR डेटाबेस की TT-DR प्रक्रिया का पालन करते हुए डायनेमिक रेंज वैल्यू की गणना की जा सके, जो बाद में लाइब्रेरी में एक फ़िल्टर और सॉर्ट विकल्प बन जाता है। एक कैप्ड रिसेंटली-प्लेड लॉग और वार्षिक JSON Lines फाइलों के रूप में लिखा गया लिसनिंग रिकॉर्ड यह ट्रैक करता है कि क्या और कितनी देर तक बजाया गया; दोनों को क्लियर किया जा सकता है और अक्षम किया जा सकता है। ListenBrainz स्क्रोबलिंग केवल वास्तविक प्ले टाइम के बाद लिसन सबमिट करती है और विफल सबमिशन को पुनः प्रयास करती है। ऑटोमेशन में 15 मिनट से दो घंटे या ट्रैक-एंड तक के स्लीप टाइमर शामिल हैं, जिसमें वैकल्पिक वॉल्यूम फेड-आउट है, और प्रति-सप्ताह शेड्यूल हैं जो डिवाइस को फेड-इन के साथ प्रीसेट पर जगा सकते हैं या उसे स्टैंडबाय पर भेज सकते हैं। एक वैकल्पिक MCP सर्वर, जो डिफ़ॉल्ट रूप से बंद रहता है, ऐप की क्षमताओं को Claude Code या Claude Desktop जैसे लोकल AI एजेंटों के लिए उपलब्ध कराता है, जिसमें प्लेबैक और वॉल्यूम, प्रीसेट्स और सोर्स, लाइब्रेरी और रेडियो, पसंदीदा, टोन और EQ, स्लीप टाइमर, लिसनिंग रिकॉर्ड और ऑडियो विश्लेषण शामिल हैं। एडिटिंग टूल्स को अलग रखा गया है और स्विच ऑन होने तक अक्षम रखा गया है, और एजेंट UI के वॉल्यूम कैप, पावर सुरक्षा और कनेक्शन टॉगल्स को अपनाते हैं। README एक Home Assistant rest_command उदाहरण भी दिखाता है जो अतिरिक्त इंटीग्रेशन के बिना MCP एंडपॉइंट को कॉल करता है। प्रोजेक्ट सटीक रूप से दस्तावेज़ करता है कि मशीन से कौन सा नेटवर्क ट्रैफ़िक बाहर जाता है: स्ट्रीमर कंट्रोल या लाइब्रेरी ब्राउजिंग के लिए लोकल नेटवर्क के बाहर कुछ भी नहीं भेजा जाता है, जबकि लिरिक्स, आर्टिस्ट और एल्बम कॉन्टेक्स्ट, गायब एल्बम आर्ट, अपडेट चेक और रेडियो सर्च टॉगल करने योग्य हैं, और स्क्रोबलिंग तब तक बंद रहती है जब तक कि टोकन नहीं जोड़ा जाता। इसमें कोई एनालिटिक्स, टेलीमेट्री या अकाउंट सिस्टम नहीं है, और एक रिक्वेस्ट कंसोल प्लस रॉ स्ट्रीमर-ट्रैफ़िक कंसोल बिल्ट-इन है। इसका स्टैक Electron (electron-vite के साथ), React 19, TypeScript, Tailwind CSS v4 और Zustand है, जिसमें मुख्य प्रोसेस SSDP और स्ट्रीमर के SMOIP WebSocket के माध्यम से डिवाइस I/O को संभालती है। स्ट्रीमर को एकमात्र 'सोर्स ऑफ ट्रुथ' माना जाता है: कमांड भेजे जाते हैं, स्टेट वापस पुश किया जाता है, और इंटरफ़ेस उस पुश से री-रेंडर होता है। प्रोजेक्ट GNU General Public License v3.0 के तहत रिलीज़ किया गया है, जिसका विकास एक develop ब्रांच पर होता है और CI में typecheck, ESLint और Prettier चेक चलते हैं।