Мазмуну:

Ошол эле музыканы бир нече бөлмөлөрдө ойнотуңуз: 3 кадам
Ошол эле музыканы бир нече бөлмөлөрдө ойнотуңуз: 3 кадам

Video: Ошол эле музыканы бир нече бөлмөлөрдө ойнотуңуз: 3 кадам

Video: Ошол эле музыканы бир нече бөлмөлөрдө ойнотуңуз: 3 кадам
Video: Жайнагул Тентиева - Жаман ойлобо / Жаны клип 2019 2024, Ноябрь
Anonim
Ошол эле музыканы бир нече бөлмөлөрдө ойнотуңуз
Ошол эле музыканы бир нече бөлмөлөрдө ойнотуңуз

Салам баарына, Мен сиз жөнүндө билбейм, бирок мен үнүмдү өтө катуу бурбастан, бүт батиримде бирдей музыканын болушун жакшы көрөм. Ошентип, бул көйгөйдү бир аз изилдеп чыккандан кийин, мен ошол эле музыканы бир эле учурда бир нече бөлмөлөрдө, атап айтканда ваннада ойноо үчүн, бир эле музыкалык серверге wifi аркылуу туташкан бир нече спикерлерди курууну чечтим.

Система GStreamer технологиясына негизделген, ал VLC сыяктуу укмуштуудай программалык камсыздоонун негизи жана Raspberry Pi аркылуу wifi мүмкүнчүлүгү бар спикерге негизделген.

1 -кадам: Мончо үчүн спикерди куруу

Мончо үчүн динамик куруу
Мончо үчүн динамик куруу
Мончо үчүн динамик куруу
Мончо үчүн динамик куруу
Мончо үчүн динамик куруу
Мончо үчүн динамик куруу

Тетиктер тизмеси:

  • ваннага каршы спикер
  • 2W күчөткүч (12v иштейт)
  • a Raspberry Pi Zero (5vде иштөө)
  • a Pimoroni Phat DAC
  • SD карта
  • ON/OFF баскычы
  • 12v кубат адаптери + туура келген сайгыч
  • DC/DC төмөндөтүү (12v-> 5v)
  • электр кутуча
  • кээ бир кабелдер

Курулуш абдан жөнөкөй.

Электрондук тарапта, бул ASCII диаграммасын аткарыңыз.

  • DC плагин ON/OFF баскычынын күчөткүчү
  • ON/OFF баскычы DC/DC баскычын түшүрүү Raspberry Pi
  • Raspberry Pi Phat DAC күчөткүчүнүн спикери

Механикалык жагында, электр кутусуна керектүү болгон тешиктерди кесип, ичине баарын салып койсоңуз болот.

Бул техниканы колдонуу менен сиз каалаган спикерлерди түзө аласыз.

2 -кадам: Программалык камсыздоо жагы

Программалык камсыздоонун бардык тарабы ачык булак мультимедиялык алкакка негизделген, GStreamer. Мен Linuxту гана колдонгом, бирок ал ар кандай ОСте бар, ошондуктан баарын башка ОСко ылайыкташтырса болот деп ойлойм.

Баштоо үчүн, сиз "жакшы" плагиндер менен Pi, PHAT DAC жана GStreamer 1.0ге Raspbian Lite орнотушуңуз керек. Музыкалык сервер катары колдонулган компьютерде сизге ошол эле GStreamer керек. Мен ал бөлүктөрдү деталдаштырбайм, анткени башкалар муну менден жакшы жасашты. Акыркы нерсе - Pi жана музыкалык сервер кабелдик же wifi аркылуу бир тармакка туташуусу керек.

GStreamer туура орнотулгандыгын текшерүү үчүн, сиз ошол буйрук саптарын колдоно аласыз.

Баяндамачы жөнүндө:

$ gst-launch-1.0 udpsrc порт = 5000 caps = 'application/x-rtp, media = (string) аудио, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, каналдар = (int) 1, пайдалуу жүк = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

ЖКда:

$ gst-launch-1.0 audiotestsrc! audioconvert! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", channels = 1, rate = 44100! rtpL16pay! udpsink хост = RASPBERRYPI_IP порт = 5000

"RASPBERRYPI_IP" ордуна жакшы IP дарегин койгондон кийин, динамиктен синусоидалуу үндү угушуңуз керек. Бул көптөн бери угууну жактыра турган нерсе эмес, андыктан үнүн катуу чыгарбаңыз.

Кээ бир түшүндүрмө: ЖК "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channels = 1, rate = 44100" convertus аркылуу синусоидалдык үндү чыгарат. "rtpL16pay" түшүнгөн жакшы форматтагы үн аудио пакеттерди түзөт жана акыры "udpsink" пакеттерди UDP протоколу аркылуу жөнөтөт. Динамикте бул бирдей, бирок тескери, "udpsrc" аудио агымын калыбына келтирет, "rtpL16depay" де-пакеттери жана "audioconvert! Autoaudiosink" үндү автоматтык үн картасынын форматына дал келет жана албетте ойнойт.

Ошентип, азыр негизги нерселер иштеп жаткандыктан, андан ары кетүү керек. Максат - бул тармак аркылуу жөнөтүү үчүн колдонмонун үнүн кармоо.

- Биз жасалма чыгарууну түзөбүз

$ pactl load-module module-null-sinkink_name = multiHP

- Биз киргизүүнү жасалма чыгууга туташтырабыз (тандалган тиркемени өчүрүү (киргизүү))

$ pacmd list-lavabo (чыгаруу тизмеси)

$ pacmd list-sink-inputs (киргизүүлөр тизмеси)

$ pacmd move-sink-input %input %output (%киргизүүнү жана %outputту тиешелүү тизмелердин бирине алмаштырыңыз)

- Биз үн картасын максимумга коебуз

$ pactl set-sink-volume 0 100%

- Биз ЖКда жасалма чыгарууну калыбына келтирүү жолун текшеребиз (үндү калыбына келтирүү)

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconvert! autoaudiosink

Сиз тандаган колдонмонун үнүн кайра угушуңуз керек.

Абдан жакшы! Эми акыркы буйрук саптарына өтүү убактысы келди. Бул жерде буйрук саптары 2 спикердин үнү менен ЖК да ойнойт.

Ар бир спикер боюнча:

$ gst-launch-1.0 udpsrc порт = 5000 caps = 'application/x-rtp, media = (string) аудио, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, пайдалуу жүк = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

ЖКда:

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! audioconvert! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", channels = 2, rate = 44100! rtpL16pay! tee name = t t. ! кезек! udpsink хост =%addrpi1 порт = 5000 т. ! кезек! udpsink хост =%addrpi2 порт = 5000 т. ! кезек! audioconvert! autoaudiosink

3 -кадам: Жыйынтык

Бул көрсөтмө толук долбоордун биринчи кадамы. Бул принципти түшүндүрүү үчүн гана болгон. Эми сиз Raspberry Pi жүктөөдө жана ЖКда сценарий жасап, автоматташтыра аласыз. Сиз GStreamer буйругун муктаждыгыңызга жараша өзгөртө аласыз. Мен жеке өзүмдүн мурунку көрсөтмөмдү (BRAND NEW OLD RADIO) спикер катары колдонуу үчүн өзгөрттүм. Бул көп бөлмөлүү үн системасын өркүндөтүү үчүн чексиз нерселер бар. Тактап айтканда, бардык динамиктер шайкештештирилбейт, андыктан бөлмөдөн башка бөлмөгө которулганда сизде кандайдыр бир өзгөрүүлөр болот.

Мен бул нускаманы жакшыртууга аракет кыласыз деп үмүттөнөм.

Чоо -жайын билүү үчүн суроолорду берүүдөн тартынбаңыз.

Жакшы создор!

Сунушталууда: