mirror of
https://github.com/immich-app/immich.git
synced 2026-02-05 00:30:57 +03:00
[Feature]: Support audio files #151
Closed
opened 2026-02-04 18:12:31 +03:00 by OVERLORD
·
23 comments
No Branch/Tag Specified
main
feat/asset-file-apis
chore/translations
fix/web-switch-label-clickable
fix/web-people-hidden-state
renovate/typescript-projects
release/next
fix/timezones
fix/time-zone-upserts
midzelis/wip
push-zpwsovysllvn
push-nwxlpmyzkyrl
push-nvnkszuqwppm
renovate/github-actions
push-smstsuupsowp
refactor/adaptive_image
push-olwpzvrxnomt
push-lmxsupnmxspl
renovate/machine-learning
feat/web-chromecast-video-looping
feat/use-native-clients
renovate/flutter
fix/create-face-edited
fix/mobile-ios-mtls
docs/contributing
docs/mise-mobile
renovate/grafana-monorepo
feature/bottom-buttons-order
feat/immich-mobile-ui-showcase
refactor/consolidate-image-requests
renovate/connectivity_plus-7.x
renovate/major-vitest-monorepo
renovate/pypi-python-multipart-vulnerability
fix/mobile-people-query
sqlite_thumbs
feat/html-text
chore/no-macro-validation
refactor/purchase-store
uhthomas/mobile-fix-app-bar-fade
uhthomas/mobile-fix-asset-jump
feat/pano-ocr
feat/shared-link-login
fix/database-backup-db-names
fix-keep-correct-ios-shared-album-asset
fix-memory-generation-and-display
feat/verify-permissions
refactor/album-service-small-tests
fix/ml-rocm-build
fix/flipped-dimensions-mobile
push-vpxwmwwxwnvw
fix-migration-width-height
refactor/more-queries
revert/prettier-translations
refactor/asset-service-queries
fix/locale-settings-desc
chore/add-debug-log
feat/edit-filters
shared-deep-link-handler
feat/mobile-editing
feat/thumbnail-native-clients
feat/platform-clients
feat/integrity-checks-izzy
fix/foreground-cloud-sync
feat/dynamic-layout
filter-by-person
feat/csp
refactor/sidebar
fix/disable-editing
fix/view-timeline-deeplink
image-zoom-on-slow-connection
fix-consider-dar-for-video-dimension
fix/merged-edited-assets
perf/optimize-album-sort
open-api-fix
feat/create-job-with-dto
use-toast-primary
feat/vitest-4
feat/ios-fastlane-match
match-signing
fix-update-time-update-timeline
chore/translation-keys
feat/modal-routes
feat/panorama-tiles
feature/mobile-view-asset-owner
feat/system-settings
feature/show-activity-count
better-info-in-asset-viewer
fix/all-people-count
feat/location-favorites
feature/rearrange-buttons-2
fix/download-storage-template
feat/kb-shortcuts-mobile
fix/people-count
push-qolzzzzxrvvn
chore/originals-in-asset-files
feat/asset-size-columns
ben/tree-a11y
new-search-filter-ui
refactor/expectSelectedReadonly
refactor/mobile-grdb
push-qvuktpxmkknu
feat/mobile-native-local-sync
refactor/timeline_ops
fix/scrubber_end
feat/version.txt
feat/context-menus
feat/server-chunked-uploads
refactor/virtualsegment
refactor/rename_daymonth_groups
fix/restrict-android-bg-worker
feat/android-periodic-worker
fix-remote-sync-clean-up
refactor/timeline_move_ops
renovate/mapbox-mapbox-gl-rtl-text-0.x
fix/timeline_split_selectable
feat/keyboard_actions_help_modal
feat/static_frontend
feat/notification-warnign-android
feat/plugins2
feat/plugins
test/create-workflow-token-action
fix/docs-force
debug/search-result-similarity
debug/cf-chunked-uploads
feat/eslint_rule
feat/search-filter-album/web
refactor/timeline_photostream
refactor/timelineasset_asset
feat/session-permissions
feat/timeline_photostream_assetnav
feat/timeline_minor_optimize
feat/timeline_perf_nocomp
feat/timeline_search_results_actions
feat/timeline_search_results_page
fix/timeline_padding
fix/timeline_search_reactivity_warnings
feat/timeline_scrollbar
feat/timeline_stream_withviewer
fix/timeline_back_forth_nav
refactor/timeline_photostream_component
fix/generated-files-checks
fix/locate-button-local
chore/base-image-mimalloc
refactor/timeline_assetlayout
refactor/timeline_selectable
refactor/timeline_aware_actions
refactor/timeline_monthsegment
feat/remove-old-pages
chore/deps-gradle
tmp_photostream
tmp/lcms
feat/mobile-dynamic-thumbnails
fix/mobile-finer-thumbnail-concurrency
refactor/timeline1
refactor/extract_photostream
refactor/rename_load_api
refactor/timeline2
refactor/timeline3
feat/multi-select-asset-viewer
feat-no-thumbhash-cache
refactor/asset_grid
feat/faster-access-checks
fix/18991
fix/19543
chore/temp-remove
fix/21419
feat/mobile-hdr-images
chore/update-mise-lockfile
feat/mise-server-checks
feat/mise-ci
feat/windows-2025
feat/dev_cli
refactor/mobile-migrate-clients
fix/map-theme
fix/require-checkbox
chore/use_swc
feat/efficient-thumbnail-decoding
refactor/mobile-thumbhash
refactor/mobile-thumbhash-new
fix/mobile-uncached-zoom
feat/beta-background-upload
fix/beta-timeline-memories-setting
fix/failed-uploads-not-removed
feat/mobile-shared-album
feat/groups
drift-map-page
drift-auth-user-sync
fix/disable-memory
feat/add-to-album-action
edit-date-time-action
drift-people-page
sqlite-remove-isIn
feat/inline-storage-columns
chore/required-reviewers
refact/asset-manager
fix/folder-sort
pnpm
feat/widget-multiple-server-urls
chore/medium-tests-dbname
fix/web-no-iterator-find
fix/map-pan-interruption
track-livephotos
timeline_events
chore/oxlint-migration
feat/maintenance-worker
feat/dav
chore/demo-snapshot
refactor/server-side-dedupe
feat/integrity-checks
dev/recognition-eval
lighter_buckets_test
perf/postgres-queue
postgres-queue
focus_rings
refactor/web-stores-1
refactor/add-to-taken
feat/sort-places
feat/sidecar-asset-file
vet
tmp/demo-snapshot-preview
fix/server-migration-file-extension
refactor/mobile-v2
fix/asset-update-race-condition
rknn-toolkit-lite2
refactor/mobile-split-up-search-page
feature/Add-rocm-support-for-machine-learning
feat/rocm
chore/async-hash-file
feat/shared-link-view-count
feat/rotation
feat/graphql
feat/job-ids
feat/ignore-library-permission-error
feat/docker-compose-builder
feat/kysely-typeorm
mobile/onboarding
no-video-player
fix/server-qsv-output-format
chore/server-geodata-tweaks
mobile/native-video-player-no-hero
feat/xxhash
fix/docs-concurrency
feat/preload-ml-textual-model
feat/local-tileserver
refactor/exif-orientation
original-path-infix
refactor/mobile/login-form-1
feat/server-editor-endpoints
fix/server-qsv-vbr
fix-mobile-db-problems
feat/ml-armnn-conversion
feat/mobile/backup-with-album-info
feat/fast-initial-sync-1
chore/handle-output_dims
feat/server-more-robust-generation
feat/unassign-faces
feat/shortcuts-on-asset-grid
feat/background-upload
feat/capacitor-mobile-app-poc
feat/server-nvenc-hw-decoding
release/v1.105
fix/mobile-fetch-non-archive
feat/fine-grained-access-controls
web/automation-ui
feat/mobile-server-endpoint-save-dropdown
feat/blurhash-thumbnail
object-storage
feat/memories-animations
dev/metrics
ml/tflite
feat/ml-export-cli
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.0
v2.0.1
v2.0.0
v1.144.1
v1.144.0
v1.143.1
v1.143.0
v1.142.1
v1.142.0
v1.141.1
v1.141.0
v1.140.1
v1.140.0
v1.139.4
v1.139.3
v1.139.2
v1.139.1
v1.139.0
v1.138.1
v1.138.0
v1.137.3
v1.137.2
v1.137.1
v1.137.0
v1.136.0
v1.135.3
v1.135.2
v1.135.1
v1.135.0
v1.134.0
v1.133.1
v1.133.0
v1.132.3
v1.132.2
v1.132.1
v1.132.0
v1.131.3
v1.131.2
v1.131.1
v1.131.0
v1.130.3
v1.130.2
v1.130.1
v1.130.0
v1.129.0
v1.128.0
v1.127.0
v1.126.1
v1.126.0
v1.125.7
v1.125.6
v1.125.5
v1.125.4
v1.125.3
v1.125.2
v1.125.1
v1.125.0
v1.124.2
v1.124.1
v1.124.0
v1.123.0
v1.122.3
v1.122.2
v1.122.1
v1.122.0
v1.121.0
v1.120.2
v1.120.1
v1.120.0
v1.119.1
v1.119.0
v1.118.2
v1.118.1
v1.118.0
v1.117.0
v1.116.2
v1.116.1
v1.116.0
v1.115.0
v1.114.0
v1.113.1
v1.113.0
v1.112.1
v1.112.0
v1.111.0
v1.110.0
v1.109.2
v1.109.1
v1.109.0
v1.108.0
v1.107.2
v1.107.1
v1.107.0
v1.106.4
v1.106.3
v1.106.2
v1.106.1
v1.106.0
v1.105.1
v1.105.0
v1.104.0
v1.103.1
v1.103.0
v1.102.3
v1.102.2
v1.102.1
v1.102.0
v1.101.0
v1.100.0
v1.99.0
v1.98.2
v1.98.1
v1.98.0
v1.97.0
v1.96.0
v1.95.1
v1.95.0
v1.94.1
v1.94.0
v1.93.3
v1.93.2
v1.93.1
v1.93.0
v1.92.1
v1.92.0
v1.91.4
v1.91.3
v1.91.2
v1.91.1
v1.91.0
v1.90.2
v1.90.1
v1.90.0
v1.89.0
v1.88.2
v1.88.1
v1.88.0
v1.87.0
v1.86.0
v1.85.0
v1.84.0
v1.83.0
v1.82.1
v1.82.0
v1.81.1
v1.81.0
v1.80.0
v1.79.1
v1.79.0
v1.78.1
v1.78.0
v1.77.0
v1.76.1
v1.76.0
v1.75.2
v1.75.1
v1.75.0
v1.74.0
v1.73.0
v1.72.2
v1.72.1
v1.72.0
v1.71.0
v1.70.0
v1.69.0
v1.68.0
v1.67.2
v1.67.1
v1.67.0
v1.66.1
v1.66.0
v1.65.0
v1.64.0
v1.63.2
v1.63.1
v1.63.0
v1.62.1
v1.62.0
v1.61.0
v1.60.0
v1.59.1
v1.59.0
v1.58.0
v1.57.1
v1.57.0
v1.56.2
v1.56.1
v1.56.0
v1.55.1
v1.55.0
v1.54.1
v1.54.0
v1.53.0
v1.52.1
v1.52.0
v1.51.2
v1.51.1
v1.51.0
v1.50.1
v1.50.0
v1.49.0
v1.48.1
v1.48.0
v1.47.3
v1.47.2
v1.47.1
v1.47.0
v1.46.1
v1.46.0
v1.45.0
v1.44.0
v1.43.1
v1.43.0
v1.42.0_65-dev
v1.41.1_64-dev
v1.41.0_64-dev
v1.40.1_63-dev
v1.40.0_63-dev
v1.39.0_61-dev
v1.38.2_60-dev
v1.38.1_60-dev
v1.38.0_60-dev
v1.37.0_58-dev
v1.36.2_56-dev
v1.36.1_55-dev
v1.36.0_55-dev
v1.35.0_54-dev
v1.34.0_53-dev
v1.33.1_52-dev
v1.33.0_52-dev
v1.32.1_51-dev
v1.32.0_50-dev
v1.31.1_49-dev
v1.31.0_49-dev
v1.30.2_48-dev
v1.30.0_46-dev
v1.29.6_45-dev
v1.29.6_44-dev
v1.29.5_44-dev
v1.29.4_44-dev
v1.29.3_43-dev
v1.29.2_43-dev
v1.29.1_43-dev
v1.29.0_42-dev
v1.28.4_41-dev
v1.28.4_42-dev
v1.28.3_41-dev
v1.28.2_40-dev
v1.28.1_39-dev
v1.28.0_38-dev
v1.27.0_37-dev
v1.26.0_36-dev
v1.25.0_35-dev
v1.24.0_34-dev
v1.23.0_33-dev
v1.22.0_32-dev
v1.21.1_31-dev
v1.21.0_31-dev
v1.20.3_30-dev
v1.20.2_30-dev
v1.20.1_30-dev
v1.20.0_30-dev
v1.19.1_29-dev
v1.19.0_29-dev
v1.18.0_27-dev
v1.17.0_25-dev
v1.16.0_23-dev
v1.15.1_21-dev
v1.15.0_21-dev
v1.14.0_21-dev
v1.13.0_20-dev
v1.12.0_18-dev
v1.11.0_17-dev
v1.10.0_15-dev
v1.9.1_14-dev
v1.9.0_13-dev
v1.8.0_12-dev
v1.7.0_11-dev
v1.6.0_10-dev
v1.5.1+9-dev
v1.5.0+8-dev
v1.4.0+7-dev
v1.4.0+6-dev
v1.4.0-dev
v1.3.0-dev
v1.3.1-dev
v0.6-dev
v0.5-dev
v0.4-dev
v0.3-dev
v0.2-dev
first-android-release
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: immich-app/immich#151
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Eidenz on GitHub (Jul 26, 2022).
Feature detail
I know Immich is mainly focused on images, but I do have a couple audio memories (wav, mp3..) that I'd like to have on Immich as well rather than needing to use a secondary cloud service.
I think this would be a nice feature to have to support all kind of memories.
Platform
Server
@zackpollard commented on GitHub (Jul 26, 2022):
Personally I don't believe this is really the idea behind Immich and I think it would be quite difficult to implement these in a way that looks nice in the UI alongside the photos and videos as we wouldn't have any way to generate a thumbnail for the file. I'll leave this open to gather more feedback from the other devs but my vote would be against adding this to Immich.
@Eidenz commented on GitHub (Jul 26, 2022):
I think that a simple music note placeholder wouldn't be bothering (especially if you're the one adding it knowingly), but that's an understandable statement.
Proposed it due to the goal being to store memories
(and Google Photos allows this), and images are only a part of it. Curious about Alex's position on this.@alextran1502 commented on GitHub (Jul 26, 2022):
From the library we use to upload assets from the phone. I remember seeing an options to get audio type asset. I think this can help with uploading such file.
I think it can be done, but it also requires a lot of work on all platform to render/play the content. Since this is a niche feature, I think it will be done at a later day when we finish other major features.
To help with this, can you help with a guide on how to create an audio memory? Do you know if it is also showed in the gallery?
@Eidenz commented on GitHub (Jul 26, 2022):
I see, that's perfectly fine, I don't have many myself.
I'm not sure to fully understand your request? To get my audio files, they either come from an audio recorder app on my phone, or downloaded online from audio libraries.
Though my bad sorry, it wasn't Google Photos displaying those but another Gallery app I had (just called Gallery), never really noticed it switched to it when playing audio files.
So they don't show up in Google Photos, and Gallery just had a music note instead of the usual image preview.
@Eidenz commented on GitHub (Jul 26, 2022):
And even though it's under the "Feature request" tag, it was really more of a general question/future feature (after production or something).
Personally, I'm fine converting my audio files to mp4 using something like a music note to generate the preview.
@alextran1502 commented on GitHub (Jul 26, 2022):
@Eidenz From my understanding that the audio file is stored in a different location rather than the location photos and videos are stored, so it might be difficult to obtain the file.
@alextran1502 commented on GitHub (Jul 26, 2022):
When it comes to this feature, I will let you know more about what I find out.
@alextran1502 commented on GitHub (Sep 10, 2022):
After further consideration, this feature won't be implemented as it doesn't fit into the vision of the app.
@forresthopkinsa commented on GitHub (Feb 2, 2025):
I understand why this was closed, but IMO the landscape has changed a little bit in the past few years and it seems like Immich's scope has increased a bit with the uptick in funding. Is this feature request worth reconsidering? Even as a far-future roadmap item?
There are not a lot of options for hosting a gallery of audiovisual media and Immich has (wonderfully!) risen to the point of being the state of the art in this area.
@earlsrock commented on GitHub (Mar 26, 2025):
Here is my use-case on why I would like to have specifically M4A support considered for addition - as well as why it might be low hanging fruit to add more easily.
My kids send our family members pictures, videos, and audio messages. These get saved as .JPG, .MOV, and .M4A respectively. I'm using Immich to store all this and make it accessible to myself and family for enjoyment. I am able to transfer the pictures and videos, but not the audio in M4A format - even though they are treasured memories. Given that M4A can be boiled down to just an MP4 with no video, the framework for everything to make this work is already there and technically this already works if you rename the M4A file to MP4. The only "issue" is that once the MP4 is imported - there is no thumbnail for the video-less MP4 in the timeline/gallery.
By adding only support for M4A, no heavy lifting needs to be done since Immich already works with that file format (just not the extension). You can just use a placeholder audio image for all thumbnails for M4A files. As far as where files get stored, they can store in exactly the same location as video files - again since M4A is just an MP4 with no video stream embedded. Transcoding should work exactly as it already does since it's still just the same audio codec.
I appreciate your consideration.
@alehel commented on GitHub (May 21, 2025):
I recently discovered audio cassette recordings of my late grandparents made during the 1980s. We've had them digitised, and it would be great if these could live in my library next to photos and videos from the same time.
@ngdangtu-vn commented on GitHub (Jul 28, 2025):
2 / 3 media types are supported by Immich which are image and video. But no audio? I don't see why it doesn't match the app vision?
@Ahrimdon commented on GitHub (Aug 7, 2025):
I don't see why this is such a contentious issue. This is literally aiming to be a self-hosted media server. Image, video, audio... There are tons of ways this can be implemented to look nice along side the other images and videos. It's clearly not Jellyfin and it's obvious just from looking at the UI. It's not like anyone's going to misinterpret the intended use case of the application.
I don't get why the maintainers are trying to make this akin to Apple's walled garden where I have to remux my audio with a single black frame to even get it to save to my camera roll. I paid $10 to support NOT having this closed minded attitude 👎
Edit: The more I think about this, the more I realize how ridiculous of a statement "It doesn't fit into the vision of the app" is. The "vision of the app" is supposed to be a modern, libre media storage and organization tool. The app literally has machine learning models, state of the art functionality, user interface, even open source cartography built-in. FFmpeg is a core part of the app's functionality and transcoding which in theory, should be able to handle 99% of audio codecs, not to mention other handlers such as GPAC.
All of this and they're saying "audio" memories are out of the projects scope? That's not only ridiculous, but blasphemous to almost all users of the application, whom may I remind the developers, are not your average layman. It takes a degree of computer knowledge in order to set this app up, and the those people will more often than not have some sort of audio memory they want archived alongside their audio/visual memories.
This is the second time I've seen the developers shoot down a good idea, the former being MFA using Authenticator apps, however I can understand the reasoning a bit more for that proposal. Even worse to think that all they have to do is be open to the idea and the community will make the PR's for it. That's the entire point of this project.
All of the other replies are saying "only add support for m4a", etc.. While I respect their politeness, it's more than possible to implement this in a proper manner with support for all codecs. I find it utterly absurd this hasn't even been given a second look.
@alextran1502 commented on GitHub (Aug 7, 2025):
Oh man, I didn't know we set out to support only photos and videos would make such a big issue 😅.
How about voicing the feature you want in a bit less vocal and demanding? It helps to keep the team sane and happy and also make your idea easier to listen to 😉.
Our tag line is "self-hosted photo and video management solution", but anyway when we are in good shape of shape of supporting video and photo, we might take a peak at supporting audio as well
@Ahrimdon commented on GitHub (Aug 7, 2025):
@alextran1502
I hate being an asshole or the demanding type, especially to those who put in countless hours of hard work for the public's benefit with little return. I'm not typically that kind of guy on the internet or in real life. With that being said, sometimes it takes someone to speak up and say what the hell everyone is thinking and cut through the bullsh*t.
It worked, didn't it? You replied within 30 minutes when people have been trying to get team to at the very least look at this issue again for the last 6 months.
I hope the team takes a sincere look into this, even if it's not enabled by default. A small compromise while adding this feature is better than the app without the feature. Thank you for the response and taking this into consideration. Nothing personal was meant by anything I said, I simply want this app to be the best it can be.
@alextran1502 commented on GitHub (Aug 7, 2025):
@Ahrimdon Thanks, I also want to be honest with you that this is not in our roadmap in the near or long term. As time and resources allow, we might look into it.
Just a note, nothing is simple in programming, and in open-source, no is temporary and yes is forever. So we need to plan and gauge the expectation accordingly
@rastographics commented on GitHub (Sep 16, 2025):
Hi just want to chime in on this. Been using several instances of immich for a couple years, even at our non-profit for digital media library.
Immich has been a wonderful answer for cloud-based collaboration for creating videos with our in-house media, with a small volunteer team spread out across regions. Nothing can touch it!
In addition to the shared video and photo resources for creating content, I was looking into the possibility to use immich for our audio files as well...voice over recordings, our music, sound effects, etc.
Came across this issue and even though I understand it won't be on the roadmap soon, I wanted to mention this use case as a Digital Asset Manager is out there as well. I know that's not what immich set out to be...but congratulations @alextran1502, because in my opinion, you've made it into one of the best out there regardless!
@niieani commented on GitHub (Sep 22, 2025):
hey folks! would you accept a high quality PR contribution that adds support for audio files?
@zackpollard commented on GitHub (Sep 22, 2025):
Hey, I appreciate the willingness to contribute this feature, however currently we have decided not to include this feature in Immich. This may change in the future as the project progresses.
@0xf965 commented on GitHub (Oct 1, 2025):
Hey @niieani , thanks a lot for offering that contribution! 🙌
Since the core team decided not to include audio support for now, would you be open to sharing your fork with that feature? I’m sure quite a few of us would find it super useful to try it out even if it’s not in the main repo.
@niieani commented on GitHub (Oct 3, 2025):
Hey @0xf965 , I haven't actually built it yet, I was hoping to get the team's blessing first as forking means I'd have to maintain (keep my fork updated) which isn't something I'm too excited about 😔
Just hoping the team sees the value in the future for now. If I do decide to fork, I'll post it here. For now I might go with the workaround of wrapping my audio files in an .MP4 container, which should still make them playable in the browser and hopefully works with Immich, even without a video track. But this does mean I have to build a pipeline to process all my audio-only files, which is not ideal.
@earlsrock commented on GitHub (Oct 3, 2025):
Can confirm as I use it - audio track only MP4s work fine in Immich. There is no image thumbnail in the library though as it displays a black thumbnail. It will just display a black screen when played as well. Audio works fine though. I guess you could encode in a "static" image video to your MP4, but that would cause unnecessary bloat to the MP4 size. Just wanted to let you know it works.
Congrats to the team on hitting Stable!
@nkrabben commented on GitHub (Nov 4, 2025):
I have a lot of audio files that I'd love to be able to access alongside my images and videos. I've been experimenting along the same libes as above, although I've added waveforms to my mp4 rewraps via FFmpeg like this
ffmpeg -i inputfile -filter_complex "[0:a]showwaves=s=1280x1280:mode=line:colors=white,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy outputfileThat makes a video of the waveform, which blows up the file size and looks nicer. A single waveform of the entire file would also work and be much smaller.
Otherwise, it fits perfectly with how I use Immich, except for one thing, tagging voices. I can manually add some squares in the video for non-existent faces, but that's very hacky.
However, that's a problem with all videos. Right now, I have no clean way to tag an off-screen voice. In the future, some of this may be covered by time-based facial recognition and speech-to-text, but doing this well may need further development of features to tag unseen people to assets.