alsa.conf 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. #
  2. # ALSA library configuration file
  3. #
  4. # pre-load the configuration files
  5. @hooks [
  6. {
  7. func load
  8. files [
  9. {
  10. @func concat
  11. strings [
  12. { @func datadir }
  13. "/alsa.conf.d/"
  14. ]
  15. }
  16. "/etc/asound.conf"
  17. "~/.asoundrc"
  18. ]
  19. errors false
  20. }
  21. ]
  22. # load card-specific configuration files (on request)
  23. cards.@hooks [
  24. {
  25. func load
  26. files [
  27. {
  28. @func concat
  29. strings [
  30. { @func datadir }
  31. "/cards/aliases.conf"
  32. ]
  33. }
  34. ]
  35. }
  36. {
  37. func load_for_all_cards
  38. files [
  39. {
  40. @func concat
  41. strings [
  42. { @func datadir }
  43. "/cards/"
  44. { @func private_string }
  45. ".conf"
  46. ]
  47. }
  48. ]
  49. errors false
  50. }
  51. ]
  52. #
  53. # defaults
  54. #
  55. # show all name hints also for definitions without hint {} section
  56. defaults.namehint.showall off
  57. # show just basic name hints
  58. defaults.namehint.basic on
  59. # show extended name hints
  60. defaults.namehint.extended off
  61. #
  62. defaults.ctl.card 0
  63. defaults.pcm.card 0
  64. defaults.pcm.device 0
  65. defaults.pcm.subdevice -1
  66. defaults.pcm.nonblock 1
  67. defaults.pcm.compat 0
  68. defaults.pcm.minperiodtime 5000 # in us
  69. defaults.pcm.ipc_key 5678293
  70. defaults.pcm.ipc_gid audio
  71. defaults.pcm.ipc_perm 0660
  72. defaults.pcm.dmix.max_periods 0
  73. defaults.pcm.dmix.rate 48000
  74. defaults.pcm.dmix.format "unchanged"
  75. defaults.pcm.dmix.card defaults.pcm.card
  76. defaults.pcm.dmix.device defaults.pcm.device
  77. defaults.pcm.dsnoop.card defaults.pcm.card
  78. defaults.pcm.dsnoop.device defaults.pcm.device
  79. defaults.pcm.front.card defaults.pcm.card
  80. defaults.pcm.front.device defaults.pcm.device
  81. defaults.pcm.rear.card defaults.pcm.card
  82. defaults.pcm.rear.device defaults.pcm.device
  83. defaults.pcm.center_lfe.card defaults.pcm.card
  84. defaults.pcm.center_lfe.device defaults.pcm.device
  85. defaults.pcm.side.card defaults.pcm.card
  86. defaults.pcm.side.device defaults.pcm.device
  87. defaults.pcm.surround21.card defaults.pcm.card
  88. defaults.pcm.surround21.device defaults.pcm.device
  89. defaults.pcm.surround40.card defaults.pcm.card
  90. defaults.pcm.surround40.device defaults.pcm.device
  91. defaults.pcm.surround41.card defaults.pcm.card
  92. defaults.pcm.surround41.device defaults.pcm.device
  93. defaults.pcm.surround50.card defaults.pcm.card
  94. defaults.pcm.surround50.device defaults.pcm.device
  95. defaults.pcm.surround51.card defaults.pcm.card
  96. defaults.pcm.surround51.device defaults.pcm.device
  97. defaults.pcm.surround71.card defaults.pcm.card
  98. defaults.pcm.surround71.device defaults.pcm.device
  99. defaults.pcm.iec958.card defaults.pcm.card
  100. defaults.pcm.iec958.device defaults.pcm.device
  101. defaults.pcm.modem.card defaults.pcm.card
  102. defaults.pcm.modem.device defaults.pcm.device
  103. # truncate files via file or tee PCM
  104. defaults.pcm.file_format "raw"
  105. defaults.pcm.file_truncate true
  106. defaults.rawmidi.card 0
  107. defaults.rawmidi.device 0
  108. defaults.rawmidi.subdevice -1
  109. defaults.hwdep.card 0
  110. defaults.hwdep.device 0
  111. defaults.timer.class 2
  112. defaults.timer.sclass 0
  113. defaults.timer.card 0
  114. defaults.timer.device 0
  115. defaults.timer.subdevice 0
  116. #
  117. # PCM interface
  118. #
  119. # redirect to load-on-demand extended pcm definitions
  120. pcm.cards cards.pcm
  121. pcm.default cards.pcm.default
  122. pcm.sysdefault cards.pcm.default
  123. pcm.front cards.pcm.front
  124. pcm.rear cards.pcm.rear
  125. pcm.center_lfe cards.pcm.center_lfe
  126. pcm.side cards.pcm.side
  127. pcm.surround21 cards.pcm.surround21
  128. pcm.surround40 cards.pcm.surround40
  129. pcm.surround41 cards.pcm.surround41
  130. pcm.surround50 cards.pcm.surround50
  131. pcm.surround51 cards.pcm.surround51
  132. pcm.surround71 cards.pcm.surround71
  133. pcm.iec958 cards.pcm.iec958
  134. pcm.spdif iec958
  135. pcm.hdmi cards.pcm.hdmi
  136. pcm.dmix cards.pcm.dmix
  137. pcm.dsnoop cards.pcm.dsnoop
  138. pcm.modem cards.pcm.modem
  139. pcm.phoneline cards.pcm.phoneline
  140. pcm.hw {
  141. @args [ CARD DEV SUBDEV ]
  142. @args.CARD {
  143. type string
  144. default {
  145. @func getenv
  146. vars [
  147. ALSA_PCM_CARD
  148. ALSA_CARD
  149. ]
  150. default {
  151. @func refer
  152. name defaults.pcm.card
  153. }
  154. }
  155. }
  156. @args.DEV {
  157. type integer
  158. default {
  159. @func igetenv
  160. vars [
  161. ALSA_PCM_DEVICE
  162. ]
  163. default {
  164. @func refer
  165. name defaults.pcm.device
  166. }
  167. }
  168. }
  169. @args.SUBDEV {
  170. type integer
  171. default {
  172. @func refer
  173. name defaults.pcm.subdevice
  174. }
  175. }
  176. type hw
  177. card $CARD
  178. device $DEV
  179. subdevice $SUBDEV
  180. hint {
  181. show {
  182. @func refer
  183. name defaults.namehint.extended
  184. }
  185. description "Direct hardware device without any conversions"
  186. }
  187. }
  188. pcm.plughw {
  189. @args [ CARD DEV SUBDEV ]
  190. @args.CARD {
  191. type string
  192. default {
  193. @func getenv
  194. vars [
  195. ALSA_PCM_CARD
  196. ALSA_CARD
  197. ]
  198. default {
  199. @func refer
  200. name defaults.pcm.card
  201. }
  202. }
  203. }
  204. @args.DEV {
  205. type integer
  206. default {
  207. @func igetenv
  208. vars [
  209. ALSA_PCM_DEVICE
  210. ]
  211. default {
  212. @func refer
  213. name defaults.pcm.device
  214. }
  215. }
  216. }
  217. @args.SUBDEV {
  218. type integer
  219. default {
  220. @func refer
  221. name defaults.pcm.subdevice
  222. }
  223. }
  224. type plug
  225. slave.pcm {
  226. type hw
  227. card $CARD
  228. device $DEV
  229. subdevice $SUBDEV
  230. }
  231. hint {
  232. show {
  233. @func refer
  234. name defaults.namehint.extended
  235. }
  236. description "Hardware device with all software conversions"
  237. }
  238. }
  239. pcm.plug {
  240. @args [ SLAVE ]
  241. @args.SLAVE {
  242. type string
  243. }
  244. type plug
  245. slave.pcm $SLAVE
  246. }
  247. pcm.shm {
  248. @args [ SOCKET PCM ]
  249. @args.SOCKET {
  250. type string
  251. }
  252. @args.PCM {
  253. type string
  254. }
  255. type shm
  256. server $SOCKET
  257. pcm $PCM
  258. }
  259. pcm.tee {
  260. @args [ SLAVE FILE FORMAT ]
  261. @args.SLAVE {
  262. type string
  263. }
  264. @args.FILE {
  265. type string
  266. }
  267. @args.FORMAT {
  268. type string
  269. default {
  270. @func refer
  271. name defaults.pcm.file_format
  272. }
  273. }
  274. type file
  275. slave.pcm $SLAVE
  276. file $FILE
  277. format $FORMAT
  278. truncate {
  279. @func refer
  280. name defaults.pcm.file_truncate
  281. }
  282. }
  283. pcm.file {
  284. @args [ FILE FORMAT ]
  285. @args.FILE {
  286. type string
  287. }
  288. @args.FORMAT {
  289. type string
  290. default {
  291. @func refer
  292. name defaults.pcm.file_format
  293. }
  294. }
  295. type file
  296. slave.pcm null
  297. file $FILE
  298. format $FORMAT
  299. truncate {
  300. @func refer
  301. name defaults.pcm.file_truncate
  302. }
  303. }
  304. pcm.null {
  305. type null
  306. hint {
  307. show {
  308. @func refer
  309. name defaults.namehint.basic
  310. }
  311. description "Discard all samples (playback) or generate zero samples (capture)"
  312. }
  313. }
  314. #
  315. # Control interface
  316. #
  317. ctl.sysdefault {
  318. type hw
  319. card {
  320. @func getenv
  321. vars [
  322. ALSA_CTL_CARD
  323. ALSA_CARD
  324. ]
  325. default {
  326. @func refer
  327. name defaults.ctl.card
  328. }
  329. }
  330. hint.description "Default control device"
  331. }
  332. ctl.default ctl.sysdefault
  333. ctl.hw {
  334. @args [ CARD ]
  335. @args.CARD {
  336. type string
  337. default {
  338. @func getenv
  339. vars [
  340. ALSA_CTL_CARD
  341. ALSA_CARD
  342. ]
  343. default {
  344. @func refer
  345. name defaults.ctl.card
  346. }
  347. }
  348. }
  349. type hw
  350. card $CARD
  351. hint.description "Direct control device"
  352. }
  353. ctl.shm {
  354. @args [ SOCKET CTL ]
  355. @args.SOCKET {
  356. type string
  357. }
  358. @args.CTL {
  359. type string
  360. }
  361. type shm
  362. server $SOCKET
  363. ctl $CTL
  364. }
  365. #
  366. # RawMidi interface
  367. #
  368. rawmidi.default {
  369. type hw
  370. card {
  371. @func getenv
  372. vars [
  373. ALSA_RAWMIDI_CARD
  374. ALSA_CARD
  375. ]
  376. default {
  377. @func refer
  378. name defaults.rawmidi.card
  379. }
  380. }
  381. device {
  382. @func igetenv
  383. vars [
  384. ALSA_RAWMIDI_DEVICE
  385. ]
  386. default {
  387. @func refer
  388. name defaults.rawmidi.device
  389. }
  390. }
  391. hint.description "Default raw MIDI device"
  392. }
  393. rawmidi.hw {
  394. @args [ CARD DEV SUBDEV ]
  395. @args.CARD {
  396. type string
  397. default {
  398. @func getenv
  399. vars [
  400. ALSA_RAWMIDI_CARD
  401. ALSA_CARD
  402. ]
  403. default {
  404. @func refer
  405. name defaults.rawmidi.card
  406. }
  407. }
  408. }
  409. @args.DEV {
  410. type integer
  411. default {
  412. @func igetenv
  413. vars [
  414. ALSA_RAWMIDI_DEVICE
  415. ]
  416. default {
  417. @func refer
  418. name defaults.rawmidi.device
  419. }
  420. }
  421. }
  422. @args.SUBDEV {
  423. type integer
  424. default -1
  425. }
  426. type hw
  427. card $CARD
  428. device $DEV
  429. subdevice $SUBDEV
  430. hint {
  431. description "Direct rawmidi driver device"
  432. device $DEV
  433. }
  434. }
  435. rawmidi.virtual {
  436. @args [ MERGE ]
  437. @args.MERGE {
  438. type string
  439. default 1
  440. }
  441. type virtual
  442. merge $MERGE
  443. }
  444. #
  445. # Sequencer interface
  446. #
  447. seq.default {
  448. type hw
  449. hint.description "Default sequencer device"
  450. }
  451. seq.hw {
  452. type hw
  453. }
  454. #
  455. # HwDep interface
  456. #
  457. hwdep.default {
  458. type hw
  459. card {
  460. @func getenv
  461. vars [
  462. ALSA_HWDEP_CARD
  463. ALSA_CARD
  464. ]
  465. default {
  466. @func refer
  467. name defaults.hwdep.card
  468. }
  469. }
  470. device {
  471. @func igetenv
  472. vars [
  473. ALSA_HWDEP_DEVICE
  474. ]
  475. default {
  476. @func refer
  477. name defaults.hwdep.device
  478. }
  479. }
  480. hint.description "Default hardware dependent device"
  481. }
  482. hwdep.hw {
  483. @args [ CARD DEV ]
  484. @args.CARD {
  485. type string
  486. default {
  487. @func getenv
  488. vars [
  489. ALSA_HWDEP_CARD
  490. ALSA_CARD
  491. ]
  492. default {
  493. @func refer
  494. name defaults.hwdep.card
  495. }
  496. }
  497. }
  498. @args.DEV {
  499. type integer
  500. default {
  501. @func igetenv
  502. vars [
  503. ALSA_HWDEP_DEVICE
  504. ]
  505. default {
  506. @func refer
  507. name defaults.hwdep.device
  508. }
  509. }
  510. }
  511. type hw
  512. card $CARD
  513. device $DEV
  514. hint {
  515. description "Direct hardware dependent device"
  516. device $DEV
  517. }
  518. }
  519. #
  520. # Timer interface
  521. #
  522. timer_query.default {
  523. type hw
  524. }
  525. timer_query.hw {
  526. type hw
  527. }
  528. timer.default {
  529. type hw
  530. class {
  531. @func refer
  532. name defaults.timer.class
  533. }
  534. sclass {
  535. @func refer
  536. name defaults.timer.sclass
  537. }
  538. card {
  539. @func refer
  540. name defaults.timer.card
  541. }
  542. device {
  543. @func refer
  544. name defaults.timer.device
  545. }
  546. subdevice {
  547. @func refer
  548. name defaults.timer.subdevice
  549. }
  550. hint.description "Default timer device"
  551. }
  552. timer.hw {
  553. @args [ CLASS SCLASS CARD DEV SUBDEV ]
  554. @args.CLASS {
  555. type integer
  556. default {
  557. @func refer
  558. name defaults.timer.class
  559. }
  560. }
  561. @args.SCLASS {
  562. type integer
  563. default {
  564. @func refer
  565. name defaults.timer.sclass
  566. }
  567. }
  568. @args.CARD {
  569. type string
  570. default {
  571. @func refer
  572. name defaults.timer.card
  573. }
  574. }
  575. @args.DEV {
  576. type integer
  577. default {
  578. @func refer
  579. name defaults.timer.device
  580. }
  581. }
  582. @args.SUBDEV {
  583. type integer
  584. default {
  585. @func refer
  586. name defaults.timer.subdevice
  587. }
  588. }
  589. type hw
  590. class $CLASS
  591. sclass $SCLASS
  592. card $CARD
  593. device $DEV
  594. subdevice $SUBDEV
  595. hint {
  596. description "Direct timer device"
  597. device $DEV
  598. }
  599. }