Проект: YAMP (Yet Another Music Player)
Модератори: Ilko Ivanov, mad_presley, Технически модератори
27 мнения
• Страница 1 от 2 • 1, 2
- Gemar
- младши ентусиаст
-
- Мнения: 615
- Регистриран на: 10.02.2007
- Местоположение: София
- Пол: Мъж
- Кара: '98 E39 M52B20
Проект: YAMP (Yet Another Music Player)
И така, това за което ще ви разкажа в тази тема е какво съм си направил в колата във връзка с източника на музика. Проекта представлява аудио плейър, който заема мястото на CD Changer-а, подава MP3, Flac, WAV, WMA (и какъвто още формат се сетите) и изписва песните на екрана на MID-а, таблото (голямото, ако е налично), навигацията и прочее, кой каквото има. Ще кажете - да, ама защо не си купиш GROM или някакъв аналог или не си изведеш букса и да си пуснеш MP3 player. Ами отговарям, че го правя за себе си, не за да създавам конкуренция или нещо такова, ами просто защото в продуктите на пазара нищо няма екстрите, които искам да имам и затова си ги правя сам. Примерно искам да мога да си избирам изпълнител, жанр на музиакта, отделни плейлистове и не искам да се ограничавам само до 6 папки със музика в тях, каквото примерно прави GROM-а.
Какво имам в наличност: Един лаптоп за development, който ще бъде заменен в последствие. Кабел за I-BUS, който съм си направил сам по схемите, но мисля да изработя нов в последствие, който съдържа един чип на Melexis за хардуерен flow control и max232 вместо транзисторите в тази простата схема. Предимството е, че въпросния чип следи консистентноста на съобщенията по I-BUS и се грижи за доставянето им. Софтуерно лаптопа е с Gentoo линукс, който ще бъде прекомпилиран в даден момент за да стартира още по-бързо. Самата програма, която съм написал е на Python, а аудио плейъра е добре познатия конзолен плейър mplayer, който работи във slave режим като daemon и чака команди. За момента съм написал един клас, който се грижи за съобщенията по IBUS - да ги чете и разпознава, както и да ги изпраща и съответно да следи изпратените дали се получават коректно и ако не да ги праща наново докато успее, още ще прави софтуерен flow control, като следи за тишина по шината преди да изпраща за да не чупи останалите съобщения на другите устройства. Към настоящия момент нещата работят по следния начин: Като пусна програмата тя анонсира с команда наличието на cdchanger на всеки 30 сек. докато получи питане (poll) от радиото за статуса на cd changer-а. От този момент нататък отговарям на poll-овете със статус "готовност" (ready) и режим "пауза и 6 диска в магазина". След като направя това (става в рамките на няколко секунди) в менюто MODE ми се появява CD Changer като устройство. Като го избера, получавам комада да започна да пускам музика - от там нататък е ясно прихващам си команди за play/pause/next track/previous track и си свиря, като същевременно си подавам песните към екра на MID-а. Другото, което искам да направя е да сложа сортировка по Жанр, Изпълнител и Playlist. Затова разкарвам надписите от 1 до 6 над бутоните за смяна на 6-те диска в магазина и надписвам на тяхно място GENRE ARTIST и PLAYLIST. Това още не ми е готово. Смятам да ползвам подредбата на песните на харддиска и по дървото на структурата да ходя чрез тези бутони, като папките са от вида: /home/user/Music/GENRE/ARTIST/ALBUM... а за PLAYLIST съм предвидил да си правя мой си playlist-и до които бързо да стигам с този бутон.
Лаптопа още има WiFi и когато колата е в обхват на рутера у дома се вързва и с rsync синхронизира цялата музика в колата с тази на компютъра ми у нас.
Ето екран на това, което съм сътворил до момента


И малко output от терминал:

Плейъра го правя много бавно, защото нямам особено много време. Би трябвало да работи на MID, IRIS, Навигации и т.н., но като го завърша за мен ще го тествам при колеги със навигациите и ще го направя да работи и за тях.
Темата я пускам за да видя дали има още програмисти тук и да почерпя още идей от тях.
Теоретично скрипта би трябвало да сработи и под Windows, но ще го предоставя на някой колега, дето разбира и се занимава с Windows да го портне ако е необходимо. Аз нямам къде да го направя, а и не ми се занимава с Windows-и.
Какво имам в наличност: Един лаптоп за development, който ще бъде заменен в последствие. Кабел за I-BUS, който съм си направил сам по схемите, но мисля да изработя нов в последствие, който съдържа един чип на Melexis за хардуерен flow control и max232 вместо транзисторите в тази простата схема. Предимството е, че въпросния чип следи консистентноста на съобщенията по I-BUS и се грижи за доставянето им. Софтуерно лаптопа е с Gentoo линукс, който ще бъде прекомпилиран в даден момент за да стартира още по-бързо. Самата програма, която съм написал е на Python, а аудио плейъра е добре познатия конзолен плейър mplayer, който работи във slave режим като daemon и чака команди. За момента съм написал един клас, който се грижи за съобщенията по IBUS - да ги чете и разпознава, както и да ги изпраща и съответно да следи изпратените дали се получават коректно и ако не да ги праща наново докато успее, още ще прави софтуерен flow control, като следи за тишина по шината преди да изпраща за да не чупи останалите съобщения на другите устройства. Към настоящия момент нещата работят по следния начин: Като пусна програмата тя анонсира с команда наличието на cdchanger на всеки 30 сек. докато получи питане (poll) от радиото за статуса на cd changer-а. От този момент нататък отговарям на poll-овете със статус "готовност" (ready) и режим "пауза и 6 диска в магазина". След като направя това (става в рамките на няколко секунди) в менюто MODE ми се появява CD Changer като устройство. Като го избера, получавам комада да започна да пускам музика - от там нататък е ясно прихващам си команди за play/pause/next track/previous track и си свиря, като същевременно си подавам песните към екра на MID-а. Другото, което искам да направя е да сложа сортировка по Жанр, Изпълнител и Playlist. Затова разкарвам надписите от 1 до 6 над бутоните за смяна на 6-те диска в магазина и надписвам на тяхно място GENRE ARTIST и PLAYLIST. Това още не ми е готово. Смятам да ползвам подредбата на песните на харддиска и по дървото на структурата да ходя чрез тези бутони, като папките са от вида: /home/user/Music/GENRE/ARTIST/ALBUM... а за PLAYLIST съм предвидил да си правя мой си playlist-и до които бързо да стигам с този бутон.
Лаптопа още има WiFi и когато колата е в обхват на рутера у дома се вързва и с rsync синхронизира цялата музика в колата с тази на компютъра ми у нас.
Ето екран на това, което съм сътворил до момента


И малко output от терминал:

Плейъра го правя много бавно, защото нямам особено много време. Би трябвало да работи на MID, IRIS, Навигации и т.н., но като го завърша за мен ще го тествам при колеги със навигациите и ще го направя да работи и за тях.
Темата я пускам за да видя дали има още програмисти тук и да почерпя още идей от тях.
Теоретично скрипта би трябвало да сработи и под Windows, но ще го предоставя на някой колега, дето разбира и се занимава с Windows да го портне ако е необходимо. Аз нямам къде да го направя, а и не ми се занимава с Windows-и.
- Sesko
- ентусиаст
-
- Мнения: 937
- Регистриран на: 21.05.2008
- Местоположение: Разград
- Пол: Мъж
- Кара: е60 525 x-drive
- Мечтае да кара: M6
Re: Проект: YAMP (Yet Another Music Player)


- Se7ven
- ентусиаст
-
- Мнения: 887
- Регистриран на: 20.10.2005
- Местоположение: София
- Пол: Мъж
- Кара: BMW X5, Е60, Е30
- Мечтае да кара: с талон
- Детайли за колата: БМВ
- stasko5
- младши ентусиаст
-
- Мнения: 417
- Регистриран на: 11.07.2008
- Местоположение: София
- Пол: Мъж
- Кара: f80 M3 Competition Package
- Мечтае да кара: M6 GC
Re: Проект: YAMP (Yet Another Music Player)
Евала колега. Ако трябва помощ при програмирането може да се видим да пообясниш за какво иде реч по-подробно и да помогна. Писал съм на python, така че може да съм ти от полза.
- NAPSTERS
- старши ентусиаст
-
- Мнения: 1585
- Регистриран на: 3.03.2006
- Местоположение: СОФИЯ
- Пол: Мъж
- Кара: Каквото запали
Re: Проект: YAMP (Yet Another Music Player)
еииии не те сдържа
евала 


- Gemar
- младши ентусиаст
-
- Мнения: 615
- Регистриран на: 10.02.2007
- Местоположение: София
- Пол: Мъж
- Кара: '98 E39 M52B20
Re: Проект: YAMP (Yet Another Music Player)
NAPSTERS написа:еииии не те сдържаевала
Мдаааа... трябва някой ден да си поиграя с твоята кола да видя на малката навигация как седят нещата... там ми е малко мъгла как да надпиша бутоните на мястото на 6-те диска в магазина.
Ами в тази тема ще пиша като напредвам по малко. Сега стана студено и все по-рядко ми се слиза до колата в студа, но всичко с времето си

- Glamav
- младши ентусиаст
-
- Мнения: 380
- Регистриран на: 8.05.2006
- Местоположение: София
- Пол: Мъж
- Кара: 525d '02
- Мечтае да кара: 850i или M6
Re: Проект: YAMP (Yet Another Music Player)
Дам, а на моята за голямата навигация 

- Gemar
- младши ентусиаст
-
- Мнения: 615
- Регистриран на: 10.02.2007
- Местоположение: София
- Пол: Мъж
- Кара: '98 E39 M52B20
Re: Проект: YAMP (Yet Another Music Player)
Exactly. В интерес на истината до миналата седмица когато се видяхме с теб имах проблеми с командите и всичко работеше половинчато, но преди няколко дни се осъзнах, че трябва да подавам байтовете с четност на единиците - Parity Even и тогава нещата сработиха от раз 

- Giorceto
- Дружба Тийм
-
- Мнения: 5675
- Регистриран на: 4.05.2002
- Местоположение: Keep walking
- Пол: Мъж
- Кара: 535xD
Re: Проект: YAMP (Yet Another Music Player)
Евала че още имахора като тебе. Бая работа ще ти се отвори с тая тема. Само не разбрах на какво се съхранява музиката в колата?
Докъдето и да си стигнал, продължавай напред...
Почивки в Турция Почивка в Алания| Почивка в Дидим| Доставка от Англия|
Почивки в Турция Почивка в Алания| Почивка в Дидим| Доставка от Англия|
- Gemar
- младши ентусиаст
-
- Мнения: 615
- Регистриран на: 10.02.2007
- Местоположение: София
- Пол: Мъж
- Кара: '98 E39 M52B20
Re: Проект: YAMP (Yet Another Music Player)
Да, за хардуера не съм писал много. Въпрос на импровизация. Самата система работи на машини около 300Mhz за момента - това означава стар лаптоп или компютър със какъвто и да е носител - харддиск, SSD, флашки.. през USB-то вече може да се върже и външен харддиск. Общо взето възможностите са неограничени. Аз лично за себе си мисля да купя едно дъно MicroITX с размери 12х12см с някакъв процесор на 1-1.2Ghz. Малко рам (принципно и 64-128Mb са досатъчно, но да го кажем 256Mb или повече защото мисля да измисля някакъв вид кеширане, така че да не въртят диска постоянно - примерно 5 песни напред да влизат в рамта и освен това мога да взема достатъчно малък линукс - има дистрибуции по 50Мб и да го зареждам изцяло в рамта). Ще го сложа в една хубава алуминиева кутия с подходящо захранване и охлаждане и ще намеря една букса за CD Changer. На външен вид няма да се познава за какво става въпрос. Искам да го направя възможно най-малко като размери. Но това най-накрая, когато поразходя лаптопа, открия и отстраня бъговете в системата. Също така трябва да се помисли и за схема, която ще пуска компютъра. Намерих вече готови скриптове, които трябва да се програмират на чип и да се изработи една проста схема. Тя слуша IBUS шината и когато с ключа се отключи колата прихваща съобщението и включва. А при заключване компютъра се гаси или с някаква опция (ще видя къде ще я намъкна), ако се е вързал вече към безжичната мрежа у дома и прехвърля някакви файлове да си остане да работи докато прехвърли файловете и след това да се загаси.
Като допълнителни опции съм намислил да сверявам часовника на таблото по системния на компютъра, който пък сам по себе си ще се сверява когато влезе в обхвата на отворена мрежа с интернет. Колегите с голямата навигация би трябвало да го имат вече това като сигнал от сателитите.
Дефакто проекта е ориентиран към голям обем от музика. Ако става дума за няколко диска с MP3-ки, то една флашка 8Gb и GROM адаптера ще свършат също добра работа. Минуса е, че гром-а е 300лв, отделно пари за флашка и инсталацията става скъпа и същевремнно се ограничаваме с 6 папки само без никаква друга подредба. Моето решение би трябвало да излезе по-евтино и същевременно да управлява достатъчно разумно обеми музика от рода на 40-60-80Gb. Според съответния харддиск - ако щете и 160Gb
Забравих да спомена, че мултиволана се поддържа.
Общо взето идей много, а времето малко. Но лека по лека ще стане.
Като допълнителни опции съм намислил да сверявам часовника на таблото по системния на компютъра, който пък сам по себе си ще се сверява когато влезе в обхвата на отворена мрежа с интернет. Колегите с голямата навигация би трябвало да го имат вече това като сигнал от сателитите.
Дефакто проекта е ориентиран към голям обем от музика. Ако става дума за няколко диска с MP3-ки, то една флашка 8Gb и GROM адаптера ще свършат също добра работа. Минуса е, че гром-а е 300лв, отделно пари за флашка и инсталацията става скъпа и същевремнно се ограничаваме с 6 папки само без никаква друга подредба. Моето решение би трябвало да излезе по-евтино и същевременно да управлява достатъчно разумно обеми музика от рода на 40-60-80Gb. Според съответния харддиск - ако щете и 160Gb

Общо взето идей много, а времето малко. Но лека по лека ще стане.
- Giorceto
- Дружба Тийм
-
- Мнения: 5675
- Регистриран на: 4.05.2002
- Местоположение: Keep walking
- Пол: Мъж
- Кара: 535xD
Re: Проект: YAMP (Yet Another Music Player)
Идеята да се ъдейтва времете през уайърлеса .
... пак ти казвам радвам се че имахоракато тебе ... 




Докъдето и да си стигнал, продължавай напред...
Почивки в Турция Почивка в Алания| Почивка в Дидим| Доставка от Англия|
Почивки в Турция Почивка в Алания| Почивка в Дидим| Доставка от Англия|
- Gemar
- младши ентусиаст
-
- Мнения: 615
- Регистриран на: 10.02.2007
- Местоположение: София
- Пол: Мъж
- Кара: '98 E39 M52B20
Re: Проект: YAMP (Yet Another Music Player)


- astoinov
- кандидат ентусиаст
-
- Мнения: 157
- Регистриран на: 5.02.2008
- Местоположение: София
- Пол: Мъж
- Кара: X3
Re: Проект: YAMP (Yet Another Music Player)
Браво колега, много добро изпълнение. Явно има и други програмисти из форума
. Аз иначе с удоволствие бих помогнал с нещо, но се занимавам с уеб програмиране та ... едва ли ще съм от полза
Интересно ми е цялата тази системка дали ще сработи на кола с dsp. При мен мид-а е някакъв странен. Виждал съм същия само на още една е39-ка. Имам единствено бутони dsp/audio и отдолу за часовника. На софт бутоните нямам mode и съм със бизнес цд. Ако искаш някой ден може да изтестваме дали ще тръгне при мен, че много ме запали с тая тема.


Ако планината не отиде при Мохамед, Мохамед ще отиде до тоалетната!
- Gemar
- младши ентусиаст
-
- Мнения: 615
- Регистриран на: 10.02.2007
- Местоположение: София
- Пол: Мъж
- Кара: '98 E39 M52B20
Re: Проект: YAMP (Yet Another Music Player)
Ще тестваме колега. До колкото съм чел от другите форуми - звук в DSP-то може да се вкара от цифровия изход на една обикновена звукова карта без никакви специални схеми. За бутоните на MID ще видим - би трябвало да стане, защото MID-овете поддържат changer.
Иначе и аз се занимавам най-вече с web програмиране. На Python пиша за първи път, но сега малко съжалих, че не го правя със C++. Както и да е.. с python ще стане по-бързо, защото за него има всякакви полезни библиотеки. Доста съм доволен.
Иначе темата я пуснах и за да мога да имам повече стимул да пиша програмата по-бързо, но като гледам снега навън все по-малко ми се слиза до колата
. Нищо, поне на този етап мога да ги пиша у дома нещата, защото съм си създал една постановка, който симулира радиото и пускам съобщения от негово име.
Иначе и аз се занимавам най-вече с web програмиране. На Python пиша за първи път, но сега малко съжалих, че не го правя със C++. Както и да е.. с python ще стане по-бързо, защото за него има всякакви полезни библиотеки. Доста съм доволен.
Иначе темата я пуснах и за да мога да имам повече стимул да пиша програмата по-бързо, но като гледам снега навън все по-малко ми се слиза до колата

- vlindos
- кандидат ентусиаст
-
- Мнения: 147
- Регистриран на: 31.07.2006
- Местоположение: София, България
- Кара: BMW 520i '97
Re: Проект: YAMP (Yet Another Music Player)

Имах идея за развитие на цяла платформа, но е много работа за сам човек. Идеята ми беше за уеб интерфейс защото се пише и скин-ира лесно. Отдолу е мозила с плъгин (с javascript API) за управление на музиката и други модули.
Пиши ако имаш интерес.
27 мнения
• Страница 1 от 2 • 1, 2
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани