Merge branch 'main' of https://github.com/ciderapp/Cider
This commit is contained in:
commit
c9363e338c
18 changed files with 1095 additions and 216 deletions
584
src/i18n/pt_PT.json
Normal file
584
src/i18n/pt_PT.json
Normal file
|
@ -0,0 +1,584 @@
|
||||||
|
{
|
||||||
|
"i18n.languageName": "Português (Portugal)",
|
||||||
|
"i18n.languageNameEnglish": "Portuguese (Portugal)",
|
||||||
|
"i18n.category": "main",
|
||||||
|
"i18n.authors": "@pgalhardo",
|
||||||
|
"app.name": "Cider",
|
||||||
|
"date.format": "${m} ${d}, ${y}",
|
||||||
|
"dialog.cancel": "Cancelar",
|
||||||
|
"dialog.ok": "OK",
|
||||||
|
"notification.updatingLibrarySongs": "A atualizar biblioteca de músicas...",
|
||||||
|
"notification.updatingLibraryAlbums": "A atualizar biblioteca de álbuns...",
|
||||||
|
"notification.updatingLibraryArtists": "A atualizar biblioteca de artistas...",
|
||||||
|
"term.variables": "Variáveis",
|
||||||
|
"term.appleInc": "Apple Inc.",
|
||||||
|
"term.appleMusic": "Apple Music",
|
||||||
|
"term.applePodcasts": "Apple Podcasts",
|
||||||
|
"term.itunes": "iTunes",
|
||||||
|
"term.github": "GitHub",
|
||||||
|
"term.discord": "Discord",
|
||||||
|
"term.learnMore": "Saiba mais",
|
||||||
|
"term.accountSettings": "Definições da conta",
|
||||||
|
"term.logout": "Terminar sessão",
|
||||||
|
"term.login": "Iniciar sessão",
|
||||||
|
"term.quickNav": "Navegação rápida",
|
||||||
|
"term.cast": "Transmitir",
|
||||||
|
"term.about": "Sobre",
|
||||||
|
"term.privateSession": "Sessão privada",
|
||||||
|
"term.disablePrivateSession": "Desativar sessão privada",
|
||||||
|
"term.queue": "Fila",
|
||||||
|
"term.autoplay": "Reprodução automática",
|
||||||
|
"term.lyrics": "Letra",
|
||||||
|
"term.miniplayer": "Mini-leitor",
|
||||||
|
"term.history": "Histórico",
|
||||||
|
"term.search": "Pesquisa",
|
||||||
|
"term.library": "Biblioteca",
|
||||||
|
"term.listenNow": "Ouvir agora",
|
||||||
|
"term.browse": "Explorar",
|
||||||
|
"term.radio": "Rádio",
|
||||||
|
"term.recentlyAdded": "Adições recentes",
|
||||||
|
"term.songs": "Músicas",
|
||||||
|
"term.albums": "Álbuns",
|
||||||
|
"term.artists": "Intérpretes",
|
||||||
|
"term.podcasts": "Podcasts",
|
||||||
|
"term.playlists": "Listas de reprodução",
|
||||||
|
"term.charts": "Gráficos",
|
||||||
|
"term.playlist": "Lista de reprodução",
|
||||||
|
"term.newPlaylist": "Nova lista de reprodução",
|
||||||
|
"term.newPlaylistFolder": "Nova pasta de listas de reprodução",
|
||||||
|
"term.createNewPlaylist": "Criar nova lista de reprodução",
|
||||||
|
"term.createNewPlaylistFolder": "Criar nova pasta de listas de reprodução",
|
||||||
|
"term.deletePlaylist": "Tem a certeza de que pretende apagar esta lista de reprodução?",
|
||||||
|
"term.navigateBack": "Retroceder uma página",
|
||||||
|
"term.navigateForward": "Avançar uma página",
|
||||||
|
"term.play": "Reproduzir",
|
||||||
|
"term.pause": "Pausa",
|
||||||
|
"term.stop": "Parar",
|
||||||
|
"term.previous": "Anterior",
|
||||||
|
"term.next": "Seguinte",
|
||||||
|
"term.shuffle": "Modo aleatório",
|
||||||
|
"term.enableShuffle": "Ativar modo aleatório",
|
||||||
|
"term.disableShuffle": "Desativar modo aleatório",
|
||||||
|
"term.repeat": "Repetir",
|
||||||
|
"term.enableRepeatOne": "Ativar repetir uma",
|
||||||
|
"term.disableRepeatOne": "Desativar repetir uma",
|
||||||
|
"term.disableRepeat": "Não repetir",
|
||||||
|
"term.volume": "Volume",
|
||||||
|
"term.mute": "Mudo",
|
||||||
|
"term.unmute": "Com som",
|
||||||
|
"term.share": "Partilhar",
|
||||||
|
"term.share.success": "Copiado para a área de transferência",
|
||||||
|
"term.settings": "Definições",
|
||||||
|
"term.seeAll": "Ver tudo",
|
||||||
|
"term.sortBy": "Ordenar por",
|
||||||
|
"term.sortBy.album": "Álbum",
|
||||||
|
"term.sortBy.artist": "Intérprete",
|
||||||
|
"term.sortBy.name": "Nome",
|
||||||
|
"term.sortBy.genre": "Género",
|
||||||
|
"term.sortBy.releaseDate": "Data de lançamento",
|
||||||
|
"term.sortBy.duration": "Duração",
|
||||||
|
"term.sortBy.dateAdded": "Data de adição",
|
||||||
|
"term.sortOrder": "A-Z",
|
||||||
|
"term.sortOrder.ascending": "Ascendente",
|
||||||
|
"term.sortOrder.descending": "Descendente",
|
||||||
|
"term.viewAs": "Ver como",
|
||||||
|
"term.viewAs.coverArt": "Grafismos",
|
||||||
|
"term.viewAs.list": "Lista",
|
||||||
|
"term.dynamic": "Dinâmico",
|
||||||
|
"term.size": "Tamanho",
|
||||||
|
"term.size.normal": "Normal",
|
||||||
|
"term.size.compact": "Compacto",
|
||||||
|
"term.enable": "Ativar",
|
||||||
|
"term.disable": "Desativar",
|
||||||
|
"term.enabled": "Ativado",
|
||||||
|
"term.disabled": "Desativado",
|
||||||
|
"term.connect": "Ligar",
|
||||||
|
"term.connecting": "A ligar",
|
||||||
|
"term.disconnect": "Desligar",
|
||||||
|
"term.authed": "Autenticado",
|
||||||
|
"term.confirm": "Confirmar?",
|
||||||
|
"term.more": "Mais",
|
||||||
|
"term.less": "Menos",
|
||||||
|
"term.showMore": "Mostrar mais",
|
||||||
|
"term.showLess": "Mostrar menos",
|
||||||
|
"term.topSongs": "Músicas populares",
|
||||||
|
"term.latestReleases": "Últimos lançamentos",
|
||||||
|
"term.time.added": "Adicionado",
|
||||||
|
"term.time.released": "Lançado",
|
||||||
|
"term.time.updated": "Atualizado",
|
||||||
|
"term.time.days": "dias",
|
||||||
|
"term.time.day": {
|
||||||
|
"one": "dia",
|
||||||
|
"other": "dias"
|
||||||
|
},
|
||||||
|
"term.time.hours": "horas",
|
||||||
|
"term.time.hour": {
|
||||||
|
"one": "hora",
|
||||||
|
"other": "horas"
|
||||||
|
},
|
||||||
|
"term.time.minutes": "minutos",
|
||||||
|
"term.time.minute": {
|
||||||
|
"one": "minuto",
|
||||||
|
"other": "minutos"
|
||||||
|
},
|
||||||
|
"term.time.seconds": "segundos",
|
||||||
|
"term.time.second": {
|
||||||
|
"one": "segundo",
|
||||||
|
"other": "segundos"
|
||||||
|
},
|
||||||
|
"term.fullscreenView": "Vista de ecrã inteiro",
|
||||||
|
"term.defaultView": "Vista normal",
|
||||||
|
"term.audioSettings": "Definições de áudio",
|
||||||
|
"term.audioControls": "Controlos de volume",
|
||||||
|
"term.clearAll": "Limpar tudo",
|
||||||
|
"term.recentStations": "Estações recentes",
|
||||||
|
"term.personalStations": "Estações pessoais",
|
||||||
|
"term.amLive": "Apple Music Live",
|
||||||
|
"term.language": "Idioma",
|
||||||
|
"term.funLanguages": "Divertido",
|
||||||
|
"term.noLyrics": "A carregar... / Letra não encontrada. / Instrumental.",
|
||||||
|
"term.copyright": "Copyright",
|
||||||
|
"term.rightsReserved": "Todos os direitos reservados.",
|
||||||
|
"term.sponsor": "Patrocine este projecto",
|
||||||
|
"term.ciderTeam": "Equipa do Cider",
|
||||||
|
"term.developer": "Programador",
|
||||||
|
"term.socialTeam": "Equipa social",
|
||||||
|
"term.socials": "Redes sociais",
|
||||||
|
"term.contributors": "Contribuidores",
|
||||||
|
"term.equalizer": "Equalizador",
|
||||||
|
"term.reset": "Repor",
|
||||||
|
"term.tracks": "músicas",
|
||||||
|
"term.track": {
|
||||||
|
"one": "música",
|
||||||
|
"other": "músicas"
|
||||||
|
},
|
||||||
|
"term.videos": "Vídeos",
|
||||||
|
"term.menu": "Menu",
|
||||||
|
"term.check": "Verificar",
|
||||||
|
"term.aboutArtist": "Sobre {{artistName}}",
|
||||||
|
"term.topResult": "Melhor resultado",
|
||||||
|
"term.sharedPlaylists": "Listas de reprodução partilhadas",
|
||||||
|
"term.people": "Pessoas",
|
||||||
|
"term.newpreset.name": "Nome da nova predefinição do EQ",
|
||||||
|
"term.addedpreset": "Predefinição adicionada",
|
||||||
|
"term.deletepreset.warn": "Tem a certeza de que pretende apagar esta predefinição?",
|
||||||
|
"term.deletedpreset": "Predefinição eliminada",
|
||||||
|
"term.defaultPresets": "Predefinições por omissão",
|
||||||
|
"term.userPresets": "Predefinições do utilizador",
|
||||||
|
"term.requestError": "Ocorreu um problema ao processar o pedido.",
|
||||||
|
"term.song.link.generate": "A obter o URL de partilha song.link...",
|
||||||
|
"term.musicVideos": "Videoclipes",
|
||||||
|
"term.stations": "Estações",
|
||||||
|
"term.curators": "Curadores",
|
||||||
|
"term.appleCurators": "Curadores da Apple",
|
||||||
|
"term.radioShows": "Programas de rádio",
|
||||||
|
"term.recordLabels": "Gravadoras",
|
||||||
|
"term.videoExtras": "Vídeos extra",
|
||||||
|
"term.top": "Top",
|
||||||
|
"term.version": "Versão",
|
||||||
|
"term.noVideos": "Não foram encontrados vídeos.",
|
||||||
|
"term.plugin": "Plug-in",
|
||||||
|
"term.pluginMenu": "Menu de plug-ins",
|
||||||
|
"term.pluginMenu.none": "Sem plug-ins interactivos",
|
||||||
|
"term.replay": "Repetir",
|
||||||
|
"term.uniqueAlbums": "Álbuns únicos",
|
||||||
|
"term.uniqueArtists": "Intérpretes únicos",
|
||||||
|
"term.uniqueSongs": "Músicas únicas",
|
||||||
|
"term.topArtists": "Intérpretes populares",
|
||||||
|
"term.listenedTo": "Reproduzido:",
|
||||||
|
"term.times": "vezes",
|
||||||
|
"term.topAlbums": "Álbuns populares",
|
||||||
|
"term.plays": "Reproduções",
|
||||||
|
"term.topGenres": "Géneros populares",
|
||||||
|
"term.confirmLogout": "Tem a certeza de que pretende terminar sessão?",
|
||||||
|
"term.creditDesignedBy": "Concebido por ${authorUsername}",
|
||||||
|
"term.discNumber": "Disco ${discNumber}",
|
||||||
|
"home.title": "Início",
|
||||||
|
"home.recentlyPlayed": "Reproduzido recentemente",
|
||||||
|
"home.recentlyAdded": "Adicionado recentemente",
|
||||||
|
"home.artistsFeed": "Feed dos seus artistas",
|
||||||
|
"home.artistsFeed.noArtist": "Siga alguns artistas para ver os seus últimos lançamentos",
|
||||||
|
"home.madeForYou": "Feito para si",
|
||||||
|
"home.friendsListeningTo": "O que os seus amigos estão a ouvir",
|
||||||
|
"home.followedArtists": "Artistas seguidos",
|
||||||
|
"error.appleMusicSubRequired": "A Apple Music requer uma subscrição.",
|
||||||
|
"error.connectionError": "Ocorreu um problema ao estabelecer ligação à Apple Music.",
|
||||||
|
"error.noResults": "Sem resultados.",
|
||||||
|
"error.noResults.description": "Tente uma nova pesquisa.",
|
||||||
|
"podcast.followOnCider": "Siga no Cider",
|
||||||
|
"podcast.followedOnCider": "A seguir no Cider",
|
||||||
|
"podcast.subscribeOnItunes": "Subscreva no iTunes",
|
||||||
|
"podcast.subscribedOnItunes": "Subscrito no iTunes",
|
||||||
|
"podcast.itunesStore": "iTunes Store",
|
||||||
|
"podcast.episodes": "Episódios",
|
||||||
|
"podcast.playEpisode": "Reproduzir episódio",
|
||||||
|
"podcast.website": "Website do Podcast",
|
||||||
|
"action.hideLibrary": "Ocultar biblioteca",
|
||||||
|
"action.showLibrary": "Mostrar biblioteca",
|
||||||
|
"action.cut": "Cortar",
|
||||||
|
"action.paste": "Colar",
|
||||||
|
"action.selectAll": "Seleccionar tudo",
|
||||||
|
"action.delete": "Apagar",
|
||||||
|
"action.edit": "Editar",
|
||||||
|
"action.done": "Concluído",
|
||||||
|
"action.editTracklist": "Editar lista de reprodução",
|
||||||
|
"action.addToLibrary": "Adicionar à biblioteca",
|
||||||
|
"action.addToLibrary.success": "Adicionado à biblioteca",
|
||||||
|
"action.addToLibrary.error": "Erro ao adicionar à biblioteca",
|
||||||
|
"action.removeFromLibrary": "Remover da biblioteca",
|
||||||
|
"action.removeFromLibrary.success": "Removido da biblioteca",
|
||||||
|
"action.addToQueue": "Adicionar à fila",
|
||||||
|
"action.addToQueue.success": "Adicionado à fila",
|
||||||
|
"action.addToQueue.error": "Erro ao adicionar à fila",
|
||||||
|
"action.removeFromQueue": "Remover da fila",
|
||||||
|
"action.removeFromQueue.success": "Removido da fila",
|
||||||
|
"action.removeFromQueue.error": "Erro ao remover da fila",
|
||||||
|
"action.createPlaylist": "Criar uma nova lista de reprodução",
|
||||||
|
"action.addToPlaylist": "Adicionar à lista de reprodução",
|
||||||
|
"action.removeFromPlaylist": "Removar da lista de reprodução",
|
||||||
|
"action.addToFavorites": "Adicionar aos favoritos",
|
||||||
|
"action.follow": "Seguir",
|
||||||
|
"action.follow.success": "Seguido",
|
||||||
|
"action.follow.error": "Erro ao seguir",
|
||||||
|
"action.unfollow": "Não seguir",
|
||||||
|
"action.unfollow.success": "Não seguido",
|
||||||
|
"action.unfollow.error": "Erro ao deixar de seguir",
|
||||||
|
"action.playNext": "Reproduzir a seguir",
|
||||||
|
"action.playLater": "Reproduzir mais tarde",
|
||||||
|
"action.startRadio": "Criar estação",
|
||||||
|
"action.goToArtist": "Ir para intérprete",
|
||||||
|
"action.goToAlbum": "Ir para álbum",
|
||||||
|
"action.showInPlaylist": "Mostrar na lista de reprodução",
|
||||||
|
"action.showInAppleMusic": "Mostrar na Apple Music",
|
||||||
|
"action.moveToTop": "Mover para fora da pasta",
|
||||||
|
"action.share": "Partilhar",
|
||||||
|
"action.rename": "Renomear",
|
||||||
|
"action.love": "Gostar",
|
||||||
|
"action.unlove": "Desfazer gostar",
|
||||||
|
"action.dislike": "Não gostar",
|
||||||
|
"action.undoDislike": "Desfazer não gostar",
|
||||||
|
"action.showWebRemoteQR": "Web Remote",
|
||||||
|
"action.playTracksNext": "Reproduzir ${app.selectedMediaItems.length} músicas a seguir",
|
||||||
|
"action.playTracksLater": "Reproduzir ${app.selectedMediaItems.length} músicas mais tarde",
|
||||||
|
"action.removeTracks": "Remover ${self.selectedItems.length} músicas da fila",
|
||||||
|
"action.import": "Importar",
|
||||||
|
"action.export": "Exportar",
|
||||||
|
"action.showAlbum": "Mostrar álbum completo",
|
||||||
|
"action.tray.minimize": "Minimizar para a bandeja",
|
||||||
|
"action.tray.quit": "Fechar",
|
||||||
|
"action.tray.show": "Mostrar o Cider",
|
||||||
|
"action.tray.playpause": "Reproduzir/Pausa",
|
||||||
|
"action.tray.next": "Seguinte",
|
||||||
|
"action.tray.previous": "Anterior",
|
||||||
|
"action.tray.listento": "Ouvir:",
|
||||||
|
"action.update": "Atualizar",
|
||||||
|
"action.install": "Instalar",
|
||||||
|
"action.copy": "Copiar",
|
||||||
|
"action.newpreset": "Nova predefinição...",
|
||||||
|
"action.deletepreset": "Eliminar predefinição",
|
||||||
|
"action.open": "Abrir",
|
||||||
|
"action.close": "Fechar",
|
||||||
|
"action.relaunch.confirm": "Pretende reiniciar o Cider?",
|
||||||
|
"action.cast.chromecast": "Chromecast",
|
||||||
|
"action.cast.todevices": "Transmitir para dispositivos",
|
||||||
|
"action.cast.stop": "Parar a transmissão para todos os dispositivos",
|
||||||
|
"action.cast.airplay": "AirPlay",
|
||||||
|
"action.cast.airplay.underdevelopment": "AirPlay ainda está em desenvolvimento",
|
||||||
|
"action.cast.scan": "Procurar",
|
||||||
|
"action.cast.scanning": "A procurar...",
|
||||||
|
"action.createNew": "Criar nova...",
|
||||||
|
"action.openArtworkInBrowser": "Abrir grafismo no navegador",
|
||||||
|
"action.scrollToTop": "Voltar ao topo",
|
||||||
|
"menubar.options.about": "Sobre",
|
||||||
|
"menubar.options.settings": "Definições",
|
||||||
|
"menubar.options.quit": "Fechar o Cider",
|
||||||
|
"menubar.options.view": "Ver",
|
||||||
|
"menubar.options.reload": "Atualizar",
|
||||||
|
"menubar.options.forcereload": "Forçar atualização",
|
||||||
|
"menubar.options.toggledevtools": "Alternar ferramentas do programador",
|
||||||
|
"menubar.options.window": "Janela",
|
||||||
|
"menubar.options.minimize": "Minimizar",
|
||||||
|
"menubar.options.toggleprivate": "Alternar sessão privada",
|
||||||
|
"menubar.options.webremote": "Web Remote",
|
||||||
|
"menubar.options.audio": "Definições de áudio",
|
||||||
|
"menubar.options.plugins": "Menu de plug-ins",
|
||||||
|
"menubar.options.controls": "Controlos",
|
||||||
|
"menubar.options.next": "Seguinte",
|
||||||
|
"menubar.options.playpause": "Reproduzir/Pausa",
|
||||||
|
"menubar.options.previous": "Anterior",
|
||||||
|
"menubar.options.volumeup": "Aumentar o volume",
|
||||||
|
"menubar.options.volumedown": "Diminuir o volume",
|
||||||
|
"menubar.options.browse": "Explorar",
|
||||||
|
"menubar.options.artists": "Intérpretes",
|
||||||
|
"menubar.options.search": "Pesquisa",
|
||||||
|
"menubar.options.albums": "Álbuns",
|
||||||
|
"menubar.options.cast": "Transmitir para dispositivos",
|
||||||
|
"menubar.options.account": "Conta",
|
||||||
|
"menubar.options.accountsettings": "Definições da conta",
|
||||||
|
"menubar.options.signout": "Terminar sessão",
|
||||||
|
"menubar.options.support": "Suporte",
|
||||||
|
"menubar.options.discord": "Discord",
|
||||||
|
"menubar.options.github": "GitHub Wiki",
|
||||||
|
"menubar.options.report": "Reportar um...",
|
||||||
|
"menubar.options.bug": "Problema",
|
||||||
|
"menubar.options.feature": "Pedido de funcionalidade",
|
||||||
|
"menubar.options.trans": "Pedido de tradução",
|
||||||
|
"menubar.options.license": "Ver licença",
|
||||||
|
"menubar.options.conf": "Abrir ficheiro de configuração no editor",
|
||||||
|
"menubar.options.listennow": "Ouvir agora",
|
||||||
|
"menubar.options.recentlyAdded": "Adições recentes",
|
||||||
|
"menubar.options.songs": "Músicas",
|
||||||
|
"settings.header.general": "Geral",
|
||||||
|
"settings.header.general.description": "Ajustar as definições gerais do Cider.",
|
||||||
|
"settings.option.general.language": "Idioma",
|
||||||
|
"settings.option.general.resumebehavior": "Comportamento de retoma",
|
||||||
|
"settings.option.general.resumebehavior.description": "Define a forma como o Cider irá retomar a sua sessão quando regressar à aplicação.",
|
||||||
|
"settings.option.general.resumebehavior.locally": "Localmente",
|
||||||
|
"settings.option.general.resumebehavior.locally.description": "O Cider irá retomar a sua última sessão nesta máquina.",
|
||||||
|
"settings.option.general.resumebehavior.history": "Histórico",
|
||||||
|
"settings.option.general.resumebehavior.history.description": "O Cider irá colocar na fila a última música do seu histórico da Apple Music, através de todos os seus dispositivos.",
|
||||||
|
"settings.option.general.resumetabs": "Abrir separador no arranque",
|
||||||
|
"settings.option.general.resumetabs.description": "Pode escolher que separador quer abrir quando abre o Cider.",
|
||||||
|
"settings.option.general.resumetabs.dynamic": "Dinâmico",
|
||||||
|
"settings.option.general.resumetabs.dynamic.description": "O Cider abrirá o separador que utilizou pela última vez.",
|
||||||
|
"settings.option.general.language.main": "Idiomas",
|
||||||
|
"settings.option.general.language.fun": "Idiomas divertidos",
|
||||||
|
"settings.option.general.language.unsorted": "Indiferenciado",
|
||||||
|
"settings.option.general.customizeSidebar": "Personalizar os itens da barra lateral",
|
||||||
|
"settings.option.general.customizeSidebar.customize": "Personalizar",
|
||||||
|
"settings.option.general.keybindings": "Atalhos do teclado",
|
||||||
|
"settings.option.general.keybindings.pressCombination": "Prima uma combinação de duas teclas para atualizar o atalho.",
|
||||||
|
"settings.option.general.keybindings.pressEscape": "Prima a tecla Escape para voltar atrás.",
|
||||||
|
"settings.notyf.general.keybindings.update.success": "Atalho atualizado com sucesso",
|
||||||
|
"settings.prompt.general.keybindings.update.success": "Atalho atualizado com sucesso. Prima OK para reiniciar o Cider",
|
||||||
|
"settings.option.general.keybindings.open": "Abrir",
|
||||||
|
"settings.option.general.themeUpdateNotification": "Verificação automática de atualizações de temas",
|
||||||
|
"settings.option.general.showLovedTracksInline": "Mostrar músicas que gosta \"inline\"",
|
||||||
|
"settings.description.search": "Pesquisa",
|
||||||
|
"settings.description.albums": "Álbuns da biblioteca",
|
||||||
|
"settings.description.artists": "Intérpretes da biblioteca",
|
||||||
|
"settings.description.browse": "Explorar",
|
||||||
|
"settings.description.private": "Alternar sessão privada",
|
||||||
|
"settings.description.remote": "Web Remote",
|
||||||
|
"settings.description.audio": "Definições de áudio",
|
||||||
|
"settings.description.plugins": "Menu de plug-ins",
|
||||||
|
"settings.description.cast": "Transmitir para dispositivos",
|
||||||
|
"settings.description.settings": "Definições",
|
||||||
|
"settings.description.developer": "Ferramentas do programador",
|
||||||
|
"settings.description.listnow": "Ouvir agora",
|
||||||
|
"settings.description.recentAdd": "Adições recentes",
|
||||||
|
"settings.description.songs": "Músicas",
|
||||||
|
"settings.notyf.updateCider.update-not-available": "Nenhuma atualização disponível",
|
||||||
|
"settings.notyf.updateCider.update-downloaded": "A atualização foi descarregada, reinicie para aplicar",
|
||||||
|
"settings.notyf.updateCider.update-timeout": "O pedido de atualização estou o tempo limite",
|
||||||
|
"settings.header.audio": "Áudio",
|
||||||
|
"settings.header.audio.description": "Ajustar as definições de áudio para o Cider.",
|
||||||
|
"settings.option.audio.volumeStep": "Nível de incremento de volume",
|
||||||
|
"settings.option.audio.advanced": "Controlo avançado de volume",
|
||||||
|
"settings.option.audio.maxVolume": "Volume máximo",
|
||||||
|
"settings.option.audio.changePlaybackRate": "Alterar velocidade de reprodução",
|
||||||
|
"settings.option.audio.playbackRate": "Velocidade de reprodução",
|
||||||
|
"settings.option.audio.playbackRate.change": "Alterar",
|
||||||
|
"settings.option.audio.quality": "Qualidade do áudio",
|
||||||
|
"settings.header.audio.quality.hireslossless": "Alta resolução sem perdas",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "até 24-bit/192 kHz",
|
||||||
|
"settings.header.audio.quality.lossless": "Sem perdas",
|
||||||
|
"settings.header.audio.quality.lossless.description": "até 24-bit/48 kHz",
|
||||||
|
"settings.header.audio.quality.high": "Alta",
|
||||||
|
"settings.header.audio.quality.high.description": "256 kbps",
|
||||||
|
"settings.header.audio.quality.standard": "Padrão",
|
||||||
|
"settings.header.audio.quality.standard.description": "64 kbps",
|
||||||
|
"settings.option.audio.seamlessTransition": "Transição gradual do áudio",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality": "Ativar funcionalidades avançadas",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.description": "Ativar o AudioContext dá acesso a funcionalidades alargadas como Normalização de Áudio, Equalizadores e Visualizadores - contudo, isto pode causar dificuldades em alguns sistemas.",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.lowcores": "O Cider pensa que o seu PC não é capaz de lidar com estas funcionalidades. Tem a certeza de que pretende continuar?",
|
||||||
|
"settings.option.audio.audioLab": "Cider Audio Lab",
|
||||||
|
"settings.option.audio.audioLab.description": "Efeitos de áudio desenvolvidos internamente para o Cider.",
|
||||||
|
"settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California",
|
||||||
|
"settings.warn.audioLab.withoutAF": "AudioContext (funcionalidade avançada) é necessário para suportar o Cider Audio Lab.",
|
||||||
|
"settings.warn.enableAdvancedFunctionality": "AudioContext (funcionalidade avançada) é necessário para suportar esta funcionalidade.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calor Analógico",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula o calor analógico inspirado no Korg Nutube 6P1",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensidade do calor analógico",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Altera a intensidade do processamento do módulo de calor analógico.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Suave",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Quente",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Cria uma atmosfera musical diferente inspirada nas mais modernas aparelhagens.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Modo do Cider Atmosphere Realizer™️",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Altera o modo de funcionamento do módulo Atmosphere Realizer.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Hōjicha Cheese Foam Tea",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Genmaicha Tapioca Milk Tea",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Rock Salt Cheese Foam Tea",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Uji Matcha Milk Tea",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jasmine Macchiato",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Hokkaido Milk Tea",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500": "Moonlight Softcake",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Brown Sugar Creme Brûlée Milk",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Cuddle Warmth",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Melhora a qualidade de áudio percecionada do áudio codificado em AAC, utilizando um algoritmo de tempo real que tira partido tanto dos modelos psicoacústicos da audição humana como das características de codificação do AAC.",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "O CAP não é compatível com a espacialização. Por favor, desative a espacialização para continuar.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Intensidade do CAP",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Muda a intensidade do processamento feito ao áudio (a agressividade pode produzir resultados indesejáveis).",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Padrão",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.adaptive": "Adaptativo",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "Antigo",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressivo",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalização de áudio",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume de pico das músicas para criar uma experiência de audição mais uniforme (não funciona em músicas carregadas pelo utilizador).",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gerido pelo Audio Lab",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Espacialização ajustada pelo Cider",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efeito de espacialização pré-ajustado, desactiva as configurações personalizáveis de espacialização de áudio.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Perfil de espacialização do Cider",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Altera o perfil de ajuste da espacialização.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Padrão",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Palco",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separação",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Mínimo",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiófilo",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "Difundido",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "Encore",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "Encore expandido",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "A espacialização não é compatível com o CAP. Por favor, desative o CAP para continuar.",
|
||||||
|
"settings.option.audio.dbspl.display": "Mostrar dB SPL",
|
||||||
|
"settings.option.audio.dbspl.description": "(Apenas para utilizadores avançados) Mostrar dB SPL em vez de dBFS no controlo de volume.",
|
||||||
|
"settings.option.audio.dbfs.calibration": "Calibração de 0 dBFS",
|
||||||
|
"settings.option.audio.dbfs.description": "Introduza o pico de SPL com ponderação Z quando o Cider está a 0 dBFS.",
|
||||||
|
"settings.header.visual": "Aparência",
|
||||||
|
"settings.header.visual.description": "Ajustar as definições visuais do Cider.",
|
||||||
|
"settings.option.visual.windowStyle": "Estilo da janela",
|
||||||
|
"settings.option.visual.windowBackgroundStyle": "Estilo do fundo da janela",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.none": "Nenhum",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.artwork": "Grafismo",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.image": "Imagem",
|
||||||
|
"settings.option.visual.animatedArtwork": "Grafismo animado",
|
||||||
|
"settings.header.visual.animatedArtwork.always": "Sempre",
|
||||||
|
"settings.header.visual.animatedArtwork.limited": "Limitado a páginas e entradas especiais",
|
||||||
|
"settings.header.visual.animatedArtwork.disable": "Desativar em todo o lado",
|
||||||
|
"settings.option.visual.animatedArtworkQuality": "Qualidade dos grafismos animados",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.low": "Baixa",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.medium": "Média",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.high": "Alta",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.veryHigh": "Muito alta",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.extreme": "Extrema",
|
||||||
|
"settings.option.visual.animatedWindowBackground": "Fundo da janela animado",
|
||||||
|
"settings.option.visual.hardwareAcceleration": "Aceleração de hardware",
|
||||||
|
"settings.option.visual.hardwareAcceleration.description": "Requer reinício",
|
||||||
|
"settings.header.visual.hardwareAcceleration.default": "Padrão",
|
||||||
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
"settings.option.visual.uiscale": "Escala da UI",
|
||||||
|
"settings.header.visual.theme": "Tema",
|
||||||
|
"settings.option.visual.theme.github.download": "Instalar a partir de um URL do GitHub",
|
||||||
|
"settings.option.visual.theme.github.openfolder": "Abrir pasta de temas",
|
||||||
|
"settings.option.visual.theme.github.explore": "Explorar temas do GitHub",
|
||||||
|
"settings.header.visual.theme.github.page": "Temas do GitHub",
|
||||||
|
"settings.option.visual.theme.github.install.confirm": "Tem a certeza de que pretende instalar {{ repo }}?",
|
||||||
|
"settings.prompt.visual.theme.github.URL": "Introduza o URL do tema que pretende instalar",
|
||||||
|
"settings.prompt.visual.theme.uninstallTheme": "Tem a certeza de que pretende desinstalar {{ theme }}?",
|
||||||
|
"settings.option.visual.theme.checkForUpdates": "Procurar por atualizações",
|
||||||
|
"settings.option.visual.theme.manageStyles": "Gerir estilos",
|
||||||
|
"settings.option.visual.theme.uninstall": "Desinstalar",
|
||||||
|
"settings.option.visual.theme.viewInfo": "Ver informação",
|
||||||
|
"settings.option.visual.theme.github.available": "Disponível",
|
||||||
|
"settings.option.visual.theme.github.applied": "Aplicado",
|
||||||
|
"settings.notyf.visual.theme.install.success": "Tema instalado com sucesso",
|
||||||
|
"settings.notyf.visual.theme.install.error": "A instalação do tema falhou",
|
||||||
|
"settings.header.visual.plugin": "Plug-in",
|
||||||
|
"settings.option.visual.plugin.github.download": "Instalar a partir de um URL do GitHub",
|
||||||
|
"settings.option.visual.plugin.github.explore": "Explorar plug-ins do GitHub",
|
||||||
|
"settings.header.visual.plugin.github.page": "Plug-ins do GitHub",
|
||||||
|
"settings.option.visual.plugin.github.install.confirm": "Tem a certeza de que pretende instalar {{ repo }}?",
|
||||||
|
"settings.prompt.visual.plugin.github.URL": "Introduza o URL do plug-in que pretende instalar",
|
||||||
|
"settings.prompt.visual.plugin.github.success": "Plug-in instalado com sucesso. Pressione OK para reiniciar o Cider",
|
||||||
|
"settings.notyf.visual.plugin.install.success": "Plug-in instalado com sucesso",
|
||||||
|
"settings.notyf.visual.plugin.install.error": "A instalação do plug-in falhou",
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "Escuro",
|
||||||
|
"settings.option.visual.showPersonalInfo": "Mostrar informação pessoal",
|
||||||
|
"settings.header.window": "Janela",
|
||||||
|
"settings.header.window.description": "Ajustar as definições da janela para o Cider.",
|
||||||
|
"settings.option.window.openOnStartup": "Abrir o Cider no arranque",
|
||||||
|
"settings.option.window.openOnStartup.hidden": "Abrir escondido",
|
||||||
|
"settings.option.window.useNativeTitleBar": "Usar barra de título nativa",
|
||||||
|
"settings.option.window.windowControlStyle": "Estilo de controlo da janela",
|
||||||
|
"settings.option.window.windowControlStyle.right": "Direita",
|
||||||
|
"settings.option.window.windowControlStyle.left": "Esquerda",
|
||||||
|
"settings.header.lyrics": "Letras",
|
||||||
|
"settings.header.lyrics.description": "Ajustar as definições de letras para o Cider.",
|
||||||
|
"settings.option.lyrics.enableMusixmatch": "Ativar letras do Musixmatch",
|
||||||
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Ativar o modo Karaoke (apenas para o Musixmatch)",
|
||||||
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Língua preferida para traduções do Musixmatch",
|
||||||
|
"settings.option.lyrics.enableYoutubeLyrics": "Ativar letras do Youtube para videoclipes",
|
||||||
|
"settings.option.lyrics.enableQQLyrics": "Ativar letras do QQ",
|
||||||
|
"settings.header.connectivity": "Conectividade",
|
||||||
|
"settings.header.connectivity.description": "Ajustar as definições de conectividade para o Cider.",
|
||||||
|
"settings.option.connectivity.playbackNotifications": "Notificações de reprodução",
|
||||||
|
"settings.option.connectivity.discordRPC": "Discord Rich Presence",
|
||||||
|
"settings.option.connectivity.discordRPC.clientName": "Nome do cliente",
|
||||||
|
"settings.option.connectivity.discordRPC.clearOnPause": "Limpar o Discord Rich Presence ao colocar em pausa",
|
||||||
|
"settings.option.connectivity.discordRPC.hideButtons": "Esconder botões no Discord Rich Presence",
|
||||||
|
"settings.option.connectivity.discordRPC.hideTimestamp": "Esconder timestamp no Discord Rich Presence",
|
||||||
|
"settings.option.connectivity.discordRPC.detailsFormat": "Formato dos detalhes",
|
||||||
|
"settings.option.connectivity.discordRPC.stateFormat": "Formato do estado",
|
||||||
|
"settings.option.connectivity.discordRPC.reload": "Reiniciar o DiscordRPC",
|
||||||
|
"settings.option.connectivity.discordRPC.reconnectedToUser": "DiscordRPC ligação restabelecida ao utilizador: {{user}} ({{userid}})",
|
||||||
|
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm atraso do scrobble (%)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Ativar Last.fm Now Playing",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remover artistas do título da música (Last.fm)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar música em loop (Last.fm)",
|
||||||
|
"settings.header.debug": "Debug",
|
||||||
|
"settings.option.debug.copy_log": "Copiar logs para a área de transferência",
|
||||||
|
"settings.option.debug.openAppData": "Abrir pasta do Cider",
|
||||||
|
"settings.header.experimental": "Experimental",
|
||||||
|
"settings.header.experimental.description": "Ajustar as definições experimentais para o Cider.",
|
||||||
|
"settings.option.experimental.reinstallwidevine": "Reinstalar WidevineCDM",
|
||||||
|
"settings.option.experimental.reinstallwidevine.confirm": "Tem a certeza de que pretende reinstalar o Widevine?",
|
||||||
|
"settings.option.experimental.unknownPlugin": "Fontes desconhecidas",
|
||||||
|
"settings.option.experimental.unknownPlugin.description": "Permitir a instalação de plug-ins de outros repositórios que não o repositório de plug-ins do Cider",
|
||||||
|
"settings.option.experimental.compactUI": "UI compacta",
|
||||||
|
"settings.option.window.close_button_hide": "Botão fechar oculta a aplicação",
|
||||||
|
"settings.option.experimental.inline_playlists": "Listas de reprodução e álbuns \"inline\"",
|
||||||
|
"settings.option.advanced.playlistTrackMapping": "Mapeamento de músicas de listas de reprodução",
|
||||||
|
"settings.option.advanced.playlistTrackMapping.description": "Ativa uma análise profunda das listas de reprodução para determinar que músicas estão em que listas de reprodução. O tempo de construção da cache das listas de reprodução pode aumentar significativamente.",
|
||||||
|
"settings.option.visual.transparent": "Moldura transparente",
|
||||||
|
"settings.option.visual.transparent.description": "Necessita de suporte do tema, requer reinício",
|
||||||
|
"settings.header.advanced": "Avançado",
|
||||||
|
"settings.header.connect": "Sincronização",
|
||||||
|
"settings.option.connect.link_account": "Ativar a sincronização com o Cider Connect",
|
||||||
|
"settings.option.connect.link_account.description": "Ligar a sua conta Discord ao Cider Connect permite-lhe armazenar dados de utilizador incluindo definições, EQ's, e eventualmente mais uma vez terminado (trabalho em curso).",
|
||||||
|
"spatial.notTurnedOn": "A espacialização de áudio está desativada. Para utilizar, por favor, ative-a primeiro.",
|
||||||
|
"spatial.spatialProperties": "Propriedades espaciais",
|
||||||
|
"spatial.width": "Largura",
|
||||||
|
"spatial.height": "Altura",
|
||||||
|
"spatial.depth": "Profundidade",
|
||||||
|
"spatial.gain": "Ganho",
|
||||||
|
"spatial.roomMaterials": "Materiais da sala",
|
||||||
|
"spatial.roomDimensions": "Dimensões da sala",
|
||||||
|
"spatial.roomPositions": "Posições na sala",
|
||||||
|
"spatial.setDimensions": "Definir dimensões",
|
||||||
|
"spatial.setPositions": "Definir posições",
|
||||||
|
"spatial.up": "Acima",
|
||||||
|
"spatial.front": "Frente",
|
||||||
|
"spatial.left": "Esquerda",
|
||||||
|
"spatial.right": "Direita",
|
||||||
|
"spatial.back": "Atrás",
|
||||||
|
"spatial.down": "Em baixo",
|
||||||
|
"spatial.listener": "Ouvinte",
|
||||||
|
"spatial.audioSource": "Fonte de áudio",
|
||||||
|
"settings.header.unfinished": "Inacabado",
|
||||||
|
"remote.web.title": "Cider Remote",
|
||||||
|
"remote.web.description": "Digitalize o código QR para emparelhar o seu telemóvel com esta instância do Cider",
|
||||||
|
"share.platform.twitter.tweet": "Ouça {{song}} na Apple Music.\n\n{{url}}\n\n#AppleMusic #Cider",
|
||||||
|
"share.platform.twitter": "Twitter",
|
||||||
|
"share.platform.facebook": "Facebook",
|
||||||
|
"share.platform.reddit": "Reddit",
|
||||||
|
"share.platform.telegram": "Telegram",
|
||||||
|
"share.platform.whatsapp": "WhatsApp",
|
||||||
|
"share.platform.messenger": "Messenger",
|
||||||
|
"share.platform.email": "Email",
|
||||||
|
"share.platform.songLink": "Copiar com song.link",
|
||||||
|
"share.platform.clipboard": "Copiar ligação",
|
||||||
|
"about.thanks": "Um grande obrigado à equipa da Cider Collective e a todos os nossos contribuidores."
|
||||||
|
}
|
|
@ -4,14 +4,13 @@ const CiderAudio = {
|
||||||
audioNodes: {
|
audioNodes: {
|
||||||
gainNode: null,
|
gainNode: null,
|
||||||
spatialNode: null,
|
spatialNode: null,
|
||||||
spatialInput: null,
|
|
||||||
audioBands: null,
|
audioBands: null,
|
||||||
vibrantbassNode: null,
|
vibrantbassNode: null,
|
||||||
llpw: null,
|
llpw: null,
|
||||||
recorderNode: null,
|
recorderNode: null,
|
||||||
intelliGainComp: null,
|
intelliGainComp: null,
|
||||||
atmosphereRealizer1: null,
|
|
||||||
atmosphereRealizer2: null,
|
atmosphereRealizer2: null,
|
||||||
|
atmosphereRealizer1: null,
|
||||||
},
|
},
|
||||||
ccON: false,
|
ccON: false,
|
||||||
mediaRecorder: null,
|
mediaRecorder: null,
|
||||||
|
@ -30,19 +29,17 @@ const CiderAudio = {
|
||||||
},
|
},
|
||||||
off: function () {
|
off: function () {
|
||||||
try {
|
try {
|
||||||
CiderAudio.hierarchical_unloading();
|
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes = {
|
CiderAudio.audioNodes = {
|
||||||
gainNode: null,
|
gainNode: null,
|
||||||
spatialNode: null,
|
spatialNode: null,
|
||||||
spatialInput: null,
|
|
||||||
audioBands: null,
|
audioBands: null,
|
||||||
vibrantbassNode: null,
|
vibrantbassNode: null,
|
||||||
llpw: null,
|
llpw: null,
|
||||||
recorderNode: null,
|
recorderNode: null,
|
||||||
intelliGainComp: null,
|
intelliGainComp: null,
|
||||||
atmosphereRealizer1: null,
|
|
||||||
atmosphereRealizer2: null,
|
atmosphereRealizer2: null,
|
||||||
|
atmosphereRealizer1: null,
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
CiderAudio.source.connect(CiderAudio.context.destination);
|
CiderAudio.source.connect(CiderAudio.context.destination);
|
||||||
|
@ -62,9 +59,6 @@ const CiderAudio = {
|
||||||
if (app.cfg.audio.normalization) {
|
if (app.cfg.audio.normalization) {
|
||||||
CiderAudio.normalizerOn()
|
CiderAudio.normalizerOn()
|
||||||
}
|
}
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial) {
|
|
||||||
CiderAudio.spatialOn()
|
|
||||||
}
|
|
||||||
CiderAudio.hierarchical_loading();
|
CiderAudio.hierarchical_loading();
|
||||||
},
|
},
|
||||||
normalizerOn: function () {
|
normalizerOn: function () {
|
||||||
|
@ -93,55 +87,91 @@ const CiderAudio = {
|
||||||
},
|
},
|
||||||
spatialProfiles: [
|
spatialProfiles: [
|
||||||
{
|
{
|
||||||
"id": "72_420maikiwi",
|
"id": "maikiwi",
|
||||||
"file": './cideraudio/impulses/CiderSpatial_v72.420_Maikiwi.wav',
|
"file": './cideraudio/impulses/CiderSpatial_Maikiwi.wav',
|
||||||
"name": "Maikiwi",
|
"name": "Maikiwi",
|
||||||
"description": "",
|
"description": "",
|
||||||
"gainComp": "1.3381352151540196",
|
"gainComp": "1.044"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "maikiwiplus",
|
||||||
|
"file": './cideraudio/impulses/CiderSpatial_MaikiwiPlus.wav',
|
||||||
|
"name": "Maikiwi+",
|
||||||
|
"description": "",
|
||||||
|
"gainComp": "1.044"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "71_420maikiwi",
|
"id": "71_420maikiwi",
|
||||||
"file": './cideraudio/impulses/CiderSpatial_v71.420_Maikiwi.wav',
|
"file": './cideraudio/impulses/CiderSpatial_v71.420_Maikiwi.wav',
|
||||||
"name": "Soundstage",
|
"name": "Soundstage",
|
||||||
"description": "",
|
"description": "",
|
||||||
"gainComp": "1.3963683610559376",
|
"gainComp": "1.3963683610559376"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "70_422maikiwi",
|
"id": "70_422maikiwi",
|
||||||
"file": './cideraudio/impulses/CiderSpatial_v70.422_Maikiwi.wav',
|
"file": './cideraudio/impulses/CiderSpatial_v70.422_Maikiwi.wav',
|
||||||
"name": "Separation",
|
"name": "Separation",
|
||||||
"description": "",
|
"description": "",
|
||||||
"gainComp": "1.30767553892022",
|
"gainComp": "1.30767553892022"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "standard",
|
"id": "standard",
|
||||||
"file": './cideraudio/impulses/CiderSpatial_v69_Standard.wav',
|
"file": './cideraudio/impulses/CiderSpatial_Natural.wav',
|
||||||
"name": "Minimal",
|
"name": "Minimal",
|
||||||
"description": "",
|
"description": "",
|
||||||
"gainComp": "1.2647363474711515",
|
"gainComp": "1.044"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "standardplus",
|
||||||
|
"file": './cideraudio/impulses/CiderSpatial_Natural+.wav',
|
||||||
|
"name": "Minimal+",
|
||||||
|
"description": "",
|
||||||
|
"gainComp": "1.044"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "diffused",
|
||||||
|
"file": './cideraudio/impulses/CiderSpatial_Diffuse.wav',
|
||||||
|
"name": "Diffused",
|
||||||
|
"description": "",
|
||||||
|
"gainComp": "1.044"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "BPLK",
|
||||||
|
"file": './cideraudio/impulses/CiderSpatial_BPLK.wav',
|
||||||
|
"name": "BPLK",
|
||||||
|
"description": "",
|
||||||
|
"gainComp": "1.044"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "HW2K",
|
||||||
|
"file": './cideraudio/impulses/CiderSpatial_HW2K.wav',
|
||||||
|
"name": "HW2K",
|
||||||
|
"description": "",
|
||||||
|
"gainComp": "1.044"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "live",
|
||||||
|
"file": './cideraudio/impulses/CiderSpatial_LIVE_2.wav',
|
||||||
|
"name": "live",
|
||||||
|
"description": "",
|
||||||
|
"gainComp": "1.2647363474711515"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
atmosphereRealizerProfiles: [
|
atmosphereRealizerProfiles: [
|
||||||
{
|
{
|
||||||
"id": "NATURAL_STANDARD",
|
"id": "NATURAL_STANDARD",
|
||||||
"file": './cideraudio/impulses/AtmosphereRealizer_NaturalStandard.wav',
|
"file": './cideraudio/impulses/AtmosphereRealizer_NaturalStandard.wav',
|
||||||
"name": "Natural (Standard)",
|
"name": "ほうじ茶チーズクリーマティー",
|
||||||
"description": "",
|
"description": "",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "NATURAL_PLUS",
|
"id": "NATURAL_PLUS",
|
||||||
"file": './cideraudio/impulses/AtmosphereRealizer_Natural+.wav',
|
"file": './cideraudio/impulses/AtmosphereRealizer_Natural+.wav',
|
||||||
"name": "Natural (Plus)",
|
"name": "玄米茶タピオカミルクティー",
|
||||||
"description": "",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "CRYPTO",
|
|
||||||
"file": './cideraudio/impulses/AtmosphereRealizer_Cryptofyre.wav',
|
|
||||||
"name": "Cryptofyre",
|
|
||||||
"description": "",
|
"description": "",
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
spatialOn: function () {
|
spatial_ninf: function () {
|
||||||
CiderAudio.audioNodes.spatialNode = null;
|
CiderAudio.audioNodes.spatialNode = null;
|
||||||
CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver();
|
CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver();
|
||||||
CiderAudio.audioNodes.spatialNode.normalize = false;
|
CiderAudio.audioNodes.spatialNode.normalize = false;
|
||||||
|
@ -157,18 +187,28 @@ const CiderAudio = {
|
||||||
let bufferedImpulse = await impulseData.arrayBuffer();
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Always destination
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination)
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
intelliGainComp_h0_0: function () {
|
spatialOff: function () {
|
||||||
|
CiderAudio.hierarchical_loading();
|
||||||
|
},
|
||||||
|
intelliGainComp_n0_0: function () {
|
||||||
let filters = []; const precisionHz = 12;
|
let filters = []; const precisionHz = 12;
|
||||||
|
// Biquad calculation
|
||||||
if (CiderAudio.audioNodes.audioBands !== null) { filters = filters.concat(CiderAudio.audioNodes.audioBands) }
|
if (CiderAudio.audioNodes.audioBands !== null) { filters = filters.concat(CiderAudio.audioNodes.audioBands) }
|
||||||
if (CiderAudio.audioNodes.vibrantbassNode !== null) { filters = filters.concat(CiderAudio.audioNodes.vibrantbassNode) }
|
if (CiderAudio.audioNodes.vibrantbassNode !== null) { filters = filters.concat(CiderAudio.audioNodes.vibrantbassNode) }
|
||||||
if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length > 1) { filters = filters.concat(CiderAudio.audioNodes.llpw); }
|
if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length > 2) { filters = filters.concat(CiderAudio.audioNodes.llpw); }
|
||||||
|
|
||||||
if (!filters || filters.length === 0) {
|
if (!filters || filters.length === 0) {
|
||||||
let filterlessGain = 1;
|
let filterlessGain = 1;
|
||||||
if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length == 1) { filterlessGain = filterlessGain * 1.109174815262401 }
|
// Impulse Calculation
|
||||||
if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { filterlessGain = filterlessGain * 1.096478196143185 }
|
if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length <= 2) { filterlessGain = filterlessGain * 1.109174815262401 }
|
||||||
if (app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true) { filterlessGain = filterlessGain * 1.096478196143185 }
|
if (app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true) { filterlessGain = filterlessGain * 1.096478196143185 }
|
||||||
|
if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { filterlessGain = filterlessGain * 1.096478196143185 }
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial == true) {
|
if (app.cfg.audio.maikiwiAudio.spatial == true) {
|
||||||
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
|
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
|
||||||
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
|
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
|
||||||
|
@ -213,9 +253,11 @@ const CiderAudio = {
|
||||||
if (gain > maxGain)
|
if (gain > maxGain)
|
||||||
maxGain = gain;
|
maxGain = gain;
|
||||||
}
|
}
|
||||||
if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length == 1) { maxGain = maxGain * 1.109174815262401 }
|
|
||||||
if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { maxGain = maxGain * 1.096478196143185 }
|
// Impulse Calculation
|
||||||
|
if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length <= 2) { maxGain = maxGain * 1.109174815262401 }
|
||||||
if (app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true) { maxGain = maxGain * 1.096478196143185 }
|
if (app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true) { maxGain = maxGain * 1.096478196143185 }
|
||||||
|
if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { maxGain = maxGain * 1.096478196143185 }
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial == true) {
|
if (app.cfg.audio.maikiwiAudio.spatial == true) {
|
||||||
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
|
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
|
||||||
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
|
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
|
||||||
|
@ -263,7 +305,7 @@ const CiderAudio = {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this._bufferSize = 2048;
|
this._bufferSize = 1024;
|
||||||
this._buffers = null;
|
this._buffers = null;
|
||||||
this._initBuffer();
|
this._initBuffer();
|
||||||
}
|
}
|
||||||
|
@ -289,7 +331,6 @@ const CiderAudio = {
|
||||||
if (this._isBufferFull()) {
|
if (this._isBufferFull()) {
|
||||||
this._flush();
|
this._flush();
|
||||||
}
|
}
|
||||||
try{
|
|
||||||
let dataLength = audioRawData[0].length;
|
let dataLength = audioRawData[0].length;
|
||||||
for (let idx=0; idx<dataLength; idx++) {
|
for (let idx=0; idx<dataLength; idx++) {
|
||||||
for (let channel=0; channel < numberOfChannels; channel++) {
|
for (let channel=0; channel < numberOfChannels; channel++) {
|
||||||
|
@ -297,8 +338,6 @@ const CiderAudio = {
|
||||||
this._buffers[channel][this._bytesWritten] = value;
|
this._buffers[channel][this._bytesWritten] = value;
|
||||||
}
|
}
|
||||||
this._bytesWritten += 1;
|
this._bytesWritten += 1;
|
||||||
}} catch (e){
|
|
||||||
// console.log(e)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,7 +412,7 @@ const CiderAudio = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(1, CiderAudio.context.currentTime);
|
CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(1, CiderAudio.context.currentTime);
|
||||||
CiderAudio.audioNodes.intelliGainComp.connect(CiderAudio.audioNodes.recorderNode);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.recorderNode);
|
||||||
|
|
||||||
});
|
});
|
||||||
clearInterval(searchInt);
|
clearInterval(searchInt);
|
||||||
|
@ -395,7 +434,7 @@ const CiderAudio = {
|
||||||
// CiderAudio.ccON = false;
|
// CiderAudio.ccON = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
atmosphereRealizer2_h2_4: function (status, hierarchy) {
|
atmosphereRealizer2_n5: function (status, destination) {
|
||||||
if (status === true) {
|
if (status === true) {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer2 = CiderAudio.context.createConvolver();
|
CiderAudio.audioNodes.atmosphereRealizer2 = CiderAudio.context.createConvolver();
|
||||||
CiderAudio.audioNodes.atmosphereRealizer2.normalize = false;
|
CiderAudio.audioNodes.atmosphereRealizer2.normalize = false;
|
||||||
|
@ -411,36 +450,50 @@ const CiderAudio = {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer2.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
CiderAudio.audioNodes.atmosphereRealizer2.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (hierarchy) {
|
switch (destination) {
|
||||||
case 'h2_3':
|
case "spatial":
|
||||||
|
try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> Spatial");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case "n5":
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> atmosphereRealizer2");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n4':
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> atmosphereRealizer1");
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h2_2':
|
case 'n3':
|
||||||
try {
|
|
||||||
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.llpw[0]);
|
|
||||||
} catch (e) { }
|
|
||||||
break;
|
|
||||||
case 'h2_1':
|
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> vibrantbassNode");
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h1':
|
case 'n2':
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.audioBands[0]);
|
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> audioBands");
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h0':
|
case 'n1':
|
||||||
try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.context.destination); } catch (e) { }
|
try {
|
||||||
|
CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> destination");} catch (e) { }
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
atmosphereRealizer1_h2_3: function (status, hierarchy) {
|
atmosphereRealizer1_n4: function (status, destination) {
|
||||||
if (status === true) {
|
if (status === true) {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer1 = CiderAudio.context.createConvolver();
|
CiderAudio.audioNodes.atmosphereRealizer1 = CiderAudio.context.createConvolver();
|
||||||
CiderAudio.audioNodes.atmosphereRealizer1.normalize = false;
|
CiderAudio.audioNodes.atmosphereRealizer1.normalize = false;
|
||||||
|
@ -456,31 +509,50 @@ const CiderAudio = {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer1.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
CiderAudio.audioNodes.atmosphereRealizer1.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (hierarchy) {
|
switch (destination) {
|
||||||
case 'h2_2':
|
case "spatial":
|
||||||
|
try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> Spatial");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case "n5":
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.llpw[0]);
|
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> atmosphereRealizer2");
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h2_1':
|
case 'n4':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> atmosphereRealizer1");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n3':
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> vibrantbassNode");
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h1':
|
case 'n2':
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.audioBands[0]);
|
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> audioBands");
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h0':
|
case 'n1':
|
||||||
try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.context.destination); } catch (e) { }
|
try {
|
||||||
|
CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> destination");} catch (e) { }
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
llpw_h2_2: function (status, hierarchy) {
|
llpw_n1: function (status, destination) {
|
||||||
if (status === true) {
|
if (status === true) {
|
||||||
let c_LLPW_Q = [1.250, 0.131, 10, 2.5, 2.293, 0.110, 14.14, 1.552, 28.28, 7.071, 2.847, 5, 0.625, 7.071, 3.856, 3.856, 20, 28.28, 20, 14.14, 2.102, 6.698, 3.536, 10];
|
let c_LLPW_Q = [1.250, 0.131, 10, 2.5, 2.293, 0.110, 14.14, 1.552, 28.28, 7.071, 2.847, 5, 0.625, 7.071, 3.856, 3.856, 20, 28.28, 20, 14.14, 2.102, 6.698, 3.536, 10];
|
||||||
let c_LLPW_GAIN = [-0.11, 0.27, -0.8, 0.57, 1.84, -0.38, 0.47, -1.56, 0.83, 1.58, -1.79, -0.45, 0.48, 1.22, -1.58, -1.59, -2.03, 2.56, -2.2, -2.48, 4.75, 10.5, 1.43, 3.76];
|
let c_LLPW_GAIN = [-0.11, 0.27, -0.8, 0.57, 1.84, -0.38, 0.47, -1.56, 0.83, 1.58, -1.79, -0.45, 0.48, 1.22, -1.58, -1.59, -2.03, 2.56, -2.2, -2.48, 4.75, 10.5, 1.43, 3.76];
|
||||||
|
@ -492,6 +564,91 @@ const CiderAudio = {
|
||||||
|
|
||||||
switch (app.cfg.audio.maikiwiAudio.ciderPPE_value) {
|
switch (app.cfg.audio.maikiwiAudio.ciderPPE_value) {
|
||||||
case "MAIKIWI":
|
case "MAIKIWI":
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch (localStorage.getItem("playingBitrate")) {
|
||||||
|
case "64":
|
||||||
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
||||||
|
CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
|
fetch('./cideraudio/impulses/CAP_64.wav').then(async (impulseData) => {
|
||||||
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
|
});
|
||||||
|
console.debug("[Cider][Audio] CAP Adaptive - 64kbps");
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "256":
|
||||||
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
|
CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; // Post Gain Compensation
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]);
|
||||||
|
fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => {
|
||||||
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
|
});
|
||||||
|
console.debug("[Cider][Audio] CAP Adaptive - 256kbps_2_48k");
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
|
CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; // Post Gain Compensation
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]);
|
||||||
|
fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => {
|
||||||
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
|
});
|
||||||
|
console.debug("[Cider][Audio] CAP Adaptive - CONFIG FALLBACK - 256kbps_2_48k");
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
|
CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37;
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]);
|
||||||
|
fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => {
|
||||||
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
|
});
|
||||||
|
console.debug("[Cider][Audio] CAP Adaptive - (Error Fallback) 256kbps");
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (destination) {
|
||||||
|
case "spatial":
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case "n5":
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n4':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'n3':
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n2':
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n1':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "MAIKIWI_LEGACY":
|
||||||
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
||||||
CiderAudio.audioNodes.llpw[0].normalize = false;
|
CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => {
|
fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => {
|
||||||
|
@ -499,22 +656,42 @@ const CiderAudio = {
|
||||||
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (hierarchy) {
|
switch (destination) {
|
||||||
case 'h2_1':
|
case "spatial":
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h1':
|
case "n5":
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
|
||||||
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h0':
|
case 'n4':
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n1':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n3':
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n2':
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.debug("[Cider][Audio] CAP - Maikiwi Signature Mode");
|
console.debug("[Cider][Audio] CAP - Maikiwi Signature Mode");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "NATURAL":
|
case "NATURAL":
|
||||||
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
||||||
CiderAudio.audioNodes.llpw[0].normalize = false;
|
CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
|
@ -523,15 +700,37 @@ const CiderAudio = {
|
||||||
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (hierarchy) {
|
switch (destination) {
|
||||||
case 'h2_1':
|
case "spatial":
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h1':
|
case "n5":
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
|
||||||
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 'h0':
|
case 'n4':
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n1':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n3':
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n2':
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -539,34 +738,105 @@ const CiderAudio = {
|
||||||
console.debug("[Cider][Audio] CAP - Natural Mode");
|
console.debug("[Cider][Audio] CAP - Natural Mode");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "LEGACY":
|
||||||
|
for (let i = 0; i < LLPW_FREQUENCIES.length; i++) {
|
||||||
|
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
|
||||||
|
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
|
||||||
|
CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i];
|
||||||
|
CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i];
|
||||||
|
CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i];
|
||||||
|
}
|
||||||
|
for (let i = 1; i < LLPW_FREQUENCIES.length; i ++) {
|
||||||
|
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (destination) {
|
||||||
|
case "spatial":
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case "n5":
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n4':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n1':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n3':
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n2':
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
console.debug("[Cider][Audio] CAP - Legacy Mode");
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
CiderAudio.audioNodes.llpw[0].normalize = false;
|
CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.57;
|
||||||
fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => {
|
CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]);
|
||||||
|
fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => {
|
||||||
let bufferedImpulse = await impulseData.arrayBuffer();
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (hierarchy) {
|
|
||||||
case 'h2_1':
|
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
|
|
||||||
break;
|
|
||||||
case 'h1':
|
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
|
||||||
break;
|
|
||||||
case 'h0':
|
|
||||||
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
app.cfg.audio.maikiwiAudio.ciderPPE_value = "MAIKIWI";
|
app.cfg.audio.maikiwiAudio.ciderPPE_value = "MAIKIWI";
|
||||||
console.debug("[Cider][Audio] CAP - MaikiwiSignature Mode (Defaulted from broki config)");
|
|
||||||
|
switch (destination) {
|
||||||
|
case "spatial":
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case "n5":
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n4':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n1':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n3':
|
||||||
|
try { CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n2':
|
||||||
|
try { CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
console.debug("[Cider][Audio] CAP - Maikiwi Adaptive Mode (Defaulted from broki config)");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
vibrantbass_h2_1: function (status, hierarchy) {
|
vibrantbass_n3: function (status, destination) {
|
||||||
if (status === true) {
|
if (status === true) {
|
||||||
let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies;
|
let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies;
|
||||||
let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain;
|
let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain;
|
||||||
|
@ -585,144 +855,143 @@ const CiderAudio = {
|
||||||
CiderAudio.audioNodes.vibrantbassNode[i - 1].connect(CiderAudio.audioNodes.vibrantbassNode[i]);
|
CiderAudio.audioNodes.vibrantbassNode[i - 1].connect(CiderAudio.audioNodes.vibrantbassNode[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (hierarchy) {
|
switch (destination) {
|
||||||
case 'h0':
|
case "spatial":
|
||||||
try {
|
try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] vibrantbass_n3 -> Spatial");} catch (e) { }
|
||||||
CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination);
|
|
||||||
} catch (e) { }
|
|
||||||
break;
|
|
||||||
case 'h1':
|
|
||||||
try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "n5":
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] vibrantbass_n3 -> atmosphereRealizer2");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n4':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] vibrantbass_n3 -> atmosphereRealizer1");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n3':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] vibrantbass_n3 -> vibrantbassNode");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n2':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
console.debug("[Cider][Audio] vibrantbass_n3 -> audioBands");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n1':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] vibrantbass_n3 -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] vibrantbass_n3 -> destination");} catch (e) { }
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
hierarchical_unloading: function () {
|
hierarchical_unloading: function () {
|
||||||
try { CiderAudio.audioNodes.spatialNode.output.disconnect(); } catch (e) { }
|
try { CiderAudio.audioNodes.spatialNode.disconnect(); CiderAudio.audioNodes.spatialNode = null} catch (e) { }
|
||||||
try { CiderAudio.audioNodes.spatialNode.disconnect(); } catch (e) { }
|
|
||||||
try { CiderAudio.audioNodes.gainNode.disconnect(); } catch (e) { }
|
try { CiderAudio.audioNodes.gainNode.disconnect(); } catch (e) { }
|
||||||
try { CiderAudio.audioNodes.atmosphereRealizer1.disconnect(); CiderAudio.audioNodes.atmosphereRealizer1 = null } catch (e) { }
|
|
||||||
try { CiderAudio.audioNodes.atmosphereRealizer2.disconnect(); CiderAudio.audioNodes.atmosphereRealizer2 = null } catch (e) { }
|
try { CiderAudio.audioNodes.atmosphereRealizer2.disconnect(); CiderAudio.audioNodes.atmosphereRealizer2 = null } catch (e) { }
|
||||||
|
try { CiderAudio.audioNodes.atmosphereRealizer1.disconnect(); CiderAudio.audioNodes.atmosphereRealizer1 = null } catch (e) { }
|
||||||
try { for (var i of CiderAudio.audioNodes.llpw) { i.disconnect(); } CiderAudio.audioNodes.llpw = null } catch (e) { }
|
try { for (var i of CiderAudio.audioNodes.llpw) { i.disconnect(); } CiderAudio.audioNodes.llpw = null } catch (e) { }
|
||||||
try { for (var i of CiderAudio.audioNodes.vibrantbassNode) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null } catch (e) { }
|
try { for (var i of CiderAudio.audioNodes.vibrantbassNode) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null } catch (e) { }
|
||||||
try { for (var i of CiderAudio.audioNodes.audioBands) { i.disconnect(); } CiderAudio.audioNodes.audioBands = null } catch (e) { }
|
try { for (var i of CiderAudio.audioNodes.audioBands) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null} catch (e) { };
|
||||||
|
console.debug("[Cider][Audio] Finished hierarchical unloading")
|
||||||
console.debug("[Cider][Audio] Finished hierarchical unloading");
|
|
||||||
|
|
||||||
},
|
},
|
||||||
config_mapping: function () {
|
hierarchical_loading: function () {
|
||||||
return new Promise(resolve => {
|
const configMap = new Map([
|
||||||
const map = new Map([
|
['spatial', app.cfg.audio.maikiwiAudio.spatial === true],
|
||||||
['h1', Math.max(...app.cfg.audio.equalizer.gain) != 0],
|
['n5', app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true],
|
||||||
['h2_1', app.cfg.audio.equalizer.vibrantBass != 0],
|
['n4', app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true],
|
||||||
['h2_2', app.cfg.audio.maikiwiAudio.ciderPPE === true],
|
['n3', app.cfg.audio.equalizer.vibrantBass != 0],
|
||||||
['h2_3', app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true],
|
['n2', Math.max(...app.cfg.audio.equalizer.gain) != 0],
|
||||||
['h2_4', app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true],
|
['n1', app.cfg.audio.maikiwiAudio.ciderPPE === true]
|
||||||
['spatial', app.cfg.audio.maikiwiAudio.spatial === true]
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
resolve(map);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
hierarchical_loading: async function () {
|
|
||||||
const configMap = await CiderAudio.config_mapping();
|
|
||||||
CiderAudio.hierarchical_unloading();
|
CiderAudio.hierarchical_unloading();
|
||||||
|
let lastNode = 'n0';
|
||||||
let nextTier = 0, lastNode = 'h0';
|
|
||||||
for (let [tier, value] of configMap.entries()) {
|
for (let [tier, value] of configMap.entries()) {
|
||||||
if (value === true) {
|
if (value === true) {
|
||||||
switch (tier) {
|
switch (tier) {
|
||||||
case 'h1':
|
|
||||||
CiderAudio.equalizer(true, lastNode);
|
|
||||||
lastNode = 'h1';
|
|
||||||
break;
|
|
||||||
case 'h2_1':
|
|
||||||
CiderAudio.vibrantbass_h2_1(true, lastNode);
|
|
||||||
lastNode = 'h2_1';
|
|
||||||
break;
|
|
||||||
case 'h2_2':
|
|
||||||
app.cfg.audio.normalization = true;
|
|
||||||
CiderAudio.llpw_h2_2(true, lastNode);
|
|
||||||
lastNode = 'h2_2';
|
|
||||||
break;
|
|
||||||
case 'h2_3':
|
|
||||||
app.cfg.audio.normalization = true;
|
|
||||||
CiderAudio.atmosphereRealizer1_h2_3(true, lastNode);
|
|
||||||
lastNode = 'h2_3';
|
|
||||||
break;
|
|
||||||
case 'h2_4':
|
|
||||||
app.cfg.audio.normalization = true;
|
|
||||||
CiderAudio.atmosphereRealizer2_h2_4(true, lastNode);
|
|
||||||
lastNode = 'h2_4';
|
|
||||||
break;
|
|
||||||
case 'spatial':
|
case 'spatial':
|
||||||
app.cfg.audio.normalization = true
|
CiderAudio.spatial_ninf();
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
lastNode = 'spatial';
|
||||||
|
break;
|
||||||
|
case 'n5':
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.atmosphereRealizer2_n5(true, lastNode);
|
||||||
|
lastNode = 'n5';
|
||||||
|
break;
|
||||||
|
case 'n4':
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.atmosphereRealizer1_n4(true, lastNode);
|
||||||
|
lastNode = 'n4';
|
||||||
|
break;
|
||||||
|
case 'n3':
|
||||||
|
CiderAudio.vibrantbass_n3(true, lastNode);
|
||||||
|
lastNode = 'n3';
|
||||||
|
break;
|
||||||
|
case 'n2':
|
||||||
|
CiderAudio.equalizer(true, lastNode);
|
||||||
|
lastNode = 'n2';
|
||||||
|
break;
|
||||||
|
case 'n1':
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.llpw_n1(true, lastNode);
|
||||||
|
lastNode = 'n1';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (lastNode) {
|
switch (lastNode) {
|
||||||
case 'h2_4':
|
case 'spatial':
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
console.debug("[Cider][Audio] gainNode -> Spatial");
|
||||||
}
|
break;
|
||||||
else {
|
case 'n5':
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
}
|
console.debug("[Cider][Audio] gainNode -> atmosphereRealizer2");
|
||||||
break;
|
break;
|
||||||
case 'h2_3':
|
case 'n4':
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
|
||||||
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
}
|
console.debug("[Cider][Audio] gainNode -> atmosphereRealizer1");
|
||||||
break;
|
break;
|
||||||
case 'h2_2':
|
case 'n3':
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
|
||||||
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'h2_1':
|
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
|
||||||
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
}
|
console.debug("[Cider][Audio] gainNode -> vibrantbass");
|
||||||
break;
|
break;
|
||||||
case 'h1':
|
case 'n2':
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
|
||||||
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
}
|
console.debug("[Cider][Audio] gainNode -> audioBands");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'h0':
|
case 'n1':
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination)
|
console.debug("[Cider][Audio] gainNode -> llpw");
|
||||||
}
|
break;
|
||||||
else {
|
case 'n0':
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
|
||||||
}
|
console.debug("[Cider][Audio] gainNode -> destination");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.debug('[Cider][Audio]\n' + [...configMap.entries()] + '\n lastNode: ' + lastNode);
|
console.debug('[Cider][Audio]\n' + [...configMap.entries()] + '\n lastNode: ' + lastNode);
|
||||||
|
|
||||||
CiderAudio.intelliGainComp_h0_0();
|
CiderAudio.intelliGainComp_n0_0();
|
||||||
console.debug("[Cider][Audio] Finished hierarchical loading");
|
console.debug("[Cider][Audio] Finished hierarchical loading");
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
equalizer: function (status, hierarchy) { // h1_1
|
equalizer: function (status, destination) { // n2_1
|
||||||
if (status === true) {
|
if (status === true) {
|
||||||
let BANDS = app.cfg.audio.equalizer.frequencies;
|
let BANDS = app.cfg.audio.equalizer.frequencies;
|
||||||
let GAIN = app.cfg.audio.equalizer.gain;
|
let GAIN = app.cfg.audio.equalizer.gain;
|
||||||
|
@ -741,12 +1010,44 @@ const CiderAudio = {
|
||||||
CiderAudio.audioNodes.audioBands[i - 1].connect(CiderAudio.audioNodes.audioBands[i]);
|
CiderAudio.audioNodes.audioBands[i - 1].connect(CiderAudio.audioNodes.audioBands[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (hierarchy) {
|
switch (destination) {
|
||||||
case 'h0':
|
case 'spatial':
|
||||||
|
CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
console.debug("[Cider][Audio] Equalizer -> Spatial");
|
||||||
|
break;
|
||||||
|
case "n5":
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination);
|
CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.atmosphereRealizer2);
|
||||||
|
console.debug("[Cider][Audio] Equalizer -> atmosphereRealizer2");
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
|
case 'n4':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.atmosphereRealizer1);
|
||||||
|
console.debug("[Cider][Audio] Equalizer -> atmosphereRealizer1");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n3':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug("[Cider][Audio] Equalizer -> vibrantbassNode");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n2':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
console.debug("[Cider][Audio] Equalizer -> audioBands");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n1':
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug("[Cider][Audio] Equalizer -> llpw");
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 'n0':
|
||||||
|
try { CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] Equalizer -> destination");} catch (e) { }
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
BIN
src/renderer/audio/impulses/CAP_256_FINAL_48k.wav
Normal file
BIN
src/renderer/audio/impulses/CAP_256_FINAL_48k.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CAP_64.wav
Normal file
BIN
src/renderer/audio/impulses/CAP_64.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_BPLK.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_BPLK.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_Diffuse.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_Diffuse.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_HW2K.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_HW2K.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_LIVE.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_LIVE.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_LIVE_2.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_LIVE_2.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_Maikiwi.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_Maikiwi.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_MaikiwiPlus.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_MaikiwiPlus.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_Natural+.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_Natural+.wav
Normal file
Binary file not shown.
BIN
src/renderer/audio/impulses/CiderSpatial_Natural.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_Natural.wav
Normal file
Binary file not shown.
Binary file not shown.
|
@ -6,7 +6,7 @@
|
||||||
<h3>{{ recom.attributes.title ? recom.attributes.title.stringForDisplay : " "}}</h3>
|
<h3>{{ recom.attributes.title ? recom.attributes.title.stringForDisplay : " "}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto flex-center" v-if="recom.relationships.contents.data.length >= 10">
|
<div class="col-auto flex-center" v-if="recom.relationships.contents.data.length >= 10">
|
||||||
<button class="cd-btn-seeall" @click="app.showCollection(recom.relationships.contents, recom.attributes.title ? recom.attributes.title.stringForDisplay : '', 'listen_now')" >{{app.getLz('term.seeAll')}}</button>
|
<button class="cd-btn-seeall" @click="showCollection(recom)" >{{app.getLz('term.seeAll')}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="recom.attributes.display.kind == 'MusicCoverShelf'">
|
<template v-if="recom.attributes.display.kind == 'MusicCoverShelf'">
|
||||||
|
@ -39,6 +39,10 @@
|
||||||
visibilityChanged: function (isVisible, entry) {
|
visibilityChanged: function (isVisible, entry) {
|
||||||
// this.isVisible = isVisible
|
// this.isVisible = isVisible
|
||||||
},
|
},
|
||||||
|
showCollection: function (recom) {
|
||||||
|
console.debug(recom)
|
||||||
|
app.showCollection(recom.relationships.contents, recom.attributes.title ? recom.attributes.title.stringForDisplay : '', 'listen_now')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
|
@ -35,10 +35,12 @@
|
||||||
<select class="md-select" style="width:180px;"
|
<select class="md-select" style="width:180px;"
|
||||||
v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value"
|
v-model="app.cfg.audio.maikiwiAudio.ciderPPE_value"
|
||||||
v-on:change="CiderAudio.hierarchical_loading()">
|
v-on:change="CiderAudio.hierarchical_loading()">
|
||||||
<option value="MAIKIWI">Maikiwi</option>
|
<option value="MAIKIWI">Maikiwi ({{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.adaptive')}})</option>
|
||||||
|
<option value="MAIKIWI_LEGACY">Maikiwi ({{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy')}})</option>
|
||||||
<option value="NATURAL">
|
<option value="NATURAL">
|
||||||
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}}
|
||||||
</option>
|
</option>
|
||||||
|
<option value="LEGACY">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy')}}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -100,7 +102,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.spatial"
|
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.spatial"
|
||||||
v-on:change="toggleMaikiwiSpatial" switch/>
|
v-on:change="CiderAudio.hierarchical_loading();" switch/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line"
|
<div class="md-option-line"
|
||||||
|
@ -113,7 +115,7 @@
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<select class="md-select" style="width:180px;"
|
<select class="md-select" style="width:180px;"
|
||||||
v-model="$root.cfg.audio.maikiwiAudio.spatialProfile"
|
v-model="$root.cfg.audio.maikiwiAudio.spatialProfile"
|
||||||
v-on:change="toggleMaikiwiSpatial">
|
v-on:change="CiderAudio.hierarchical_loading();">
|
||||||
<option v-for="profile in spprofiles" :value="profile.id">{{ getProfileLz("CTS", profile.name) }}</option>
|
<option v-for="profile in spprofiles" :value="profile.id">{{ getProfileLz("CTS", profile.name) }}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -183,6 +185,10 @@
|
||||||
return "Maikiwi+";
|
return "Maikiwi+";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "Minimal+":
|
||||||
|
return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal') + "+";
|
||||||
|
break;
|
||||||
|
|
||||||
case "live":
|
case "live":
|
||||||
return "LIVE";
|
return "LIVE";
|
||||||
break;
|
break;
|
||||||
|
@ -197,21 +203,7 @@
|
||||||
default:
|
default:
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
},
|
|
||||||
toggleMaikiwiSpatial: function () {
|
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
|
||||||
CiderAudio.spatialOn()
|
|
||||||
CiderAudio.hierarchical_loading();
|
|
||||||
//let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) - 14) / 20));
|
|
||||||
//app.mk.volume = normalized
|
|
||||||
// -13dBFS Target
|
|
||||||
} else {
|
|
||||||
//let normalized = Math.pow(10, (((Math.log10(app.mk.volume) * 20) + 14) / 20));
|
|
||||||
//app.mk.volume = normalized
|
|
||||||
CiderAudio.spatialOn()
|
|
||||||
CiderAudio.hierarchical_loading();
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
|
@ -1405,7 +1405,6 @@
|
||||||
CiderAudio.normalizerOn()
|
CiderAudio.normalizerOn()
|
||||||
}
|
}
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
CiderAudio.spatialOn()
|
|
||||||
CiderAudio.hierarchical_loading();
|
CiderAudio.hierarchical_loading();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1416,7 +1415,6 @@
|
||||||
CiderAudio.normalizerOn()
|
CiderAudio.normalizerOn()
|
||||||
}
|
}
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
CiderAudio.spatialOn()
|
|
||||||
CiderAudio.hierarchical_loading();
|
CiderAudio.hierarchical_loading();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue