[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/poetaster/harbour-audiocut.git</param>
<param name="branch">main</param>
- <param name="revision">1.4.1</param>
+ <param name="revision">1.4.2</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Added |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/.github/workflows/main.yml
^
|
@@ -0,0 +1,68 @@
+name: Build RPMs
+
+on:
+ push:
+ tags:
+ - '*'
+ branches:
+ - main
+ workflow_dispatch:
+
+env:
+ OS_VERSION: 4.4.0.68
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ name: Build App
+ strategy:
+ matrix:
+ arch: ['armv7hl']
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Prepare
+ run: docker pull coderus/sailfishos-platform-sdk:$OS_VERSION && mkdir output
+
+ - name: Build ${{ matrix.arch }}
+ run: docker run --rm --privileged -v $PWD:/share coderus/sailfishos-platform-sdk:$OS_VERSION /bin/bash -c "
+ mkdir -p build ;
+ cd build ;
+ cp -r /share/* . ;
+ mb2 -t SailfishOS-$OS_VERSION-${{ matrix.arch }} build ;
+ sudo cp -r RPMS/*.rpm /share/output"
+
+ - name: Upload RPM (${{ matrix.arch }})
+ uses: actions/upload-artifact@v2
+ with:
+ name: rpm-${{ matrix.arch }}
+ path: output
+ release:
+ name: Release
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Download armv7hl
+ uses: actions/download-artifact@v2
+ with:
+ name: rpm-armv7hl
+ continue-on-error: true
+ - name: Extract Version Name
+ id: extract_name
+ uses: actions/github-script@v4
+ with:
+ result-encoding: string
+ script: |
+ return context.payload.ref.replace(/refs\/tags\//, '');
+ - name: Create a Release
+ uses: softprops/action-gh-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ name: ${{ steps.extract_name.outputs.result }}
+ draft: false
+ prerelease: false
+ body: This release was autogenerated.
+ files: '*.rpm'
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/harbour-audiocut.pro
^
|
@@ -18,9 +18,10 @@
qml/cover/CoverPage.qml \
qml/pages/About.qml \
qml/pages/FirstPage.qml \
+ qml/pages/Flanger.qml \
qml/pages/SavePage.qml \
- rpm/harbour-audiocut.changes.in \
- rpm/harbour-audiocut.changes.run.in \
+ rpm/harbour-audiocut.changes \
+ rpm/harbour-audiocut.changes.run \
rpm/harbour-audiocut.spec \
translations/*.ts \
harbour-audiocut.desktop
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/qml/harbour-audiocut.qml
^
|
@@ -1,5 +1,9 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
+import Sailfish.Pickers 1.0 // File-Loader
+import QtMultimedia 5.0 // Audio Support
+import io.thp.pyotherside 1.4
+
import "pages"
ApplicationWindow
@@ -7,4 +11,5 @@
initialPage: Component { FirstPage { } }
cover: Qt.resolvedUrl("cover/CoverPage.qml")
allowedOrientations: defaultAllowedOrientations
+
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/qml/pages/About.qml
^
|
@@ -54,7 +54,7 @@
font.pixelSize: Theme.fontSizeExtraSmall
color: Theme.secondaryColor
text: qsTr("Copyright © 2020 Tobias Planitzer") + "\n "
- + qsTr(" © 2021-22 Mark Washeim")
+ + qsTr(" © 2021-23 Mark Washeim")
}
Item {
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/qml/pages/FirstPage.qml
^
|
@@ -1,4 +1,4 @@
-import QtQuick 2.0
+import QtQuick 2.0
import Sailfish.Silica 1.0
import Sailfish.Pickers 1.0 // File-Loader
import QtMultimedia 5.0 // Audio Support
@@ -9,6 +9,12 @@
allowedOrientations: Orientation.Portrait //All
property bool debug : true
// file variables
+
+ property string inputPathPy : decodeURIComponent( "/" + idAudioPlayer.source.toString().replace(/^(file:\/{3})|(qrc:\/{2})|(http:\/{2})/,"") )
+ property string saveAudioFolderPath
+ property string symbolSourceFolder : "/usr" + "/share" + "/harbour-audiocut" + "/qml" + "/symbols/"
+ property string lastTmpAudio2delete
+ property string lastTmpImage2delete
property string origAudioFilePath
property string origAudioFileName
property string origAudioFolderPath
@@ -18,11 +24,6 @@
property string tempAudioFolderPath: StandardPaths.home + '/.cache/de.poetaster/harbour-audiocut'
property string tempAudioType : "wav"
property string outputPathPy
- property string inputPathPy : decodeURIComponent( "/" + idAudioPlayer.source.toString().replace(/^(file:\/{3})|(qrc:\/{2})|(http:\/{2})/,"") )
- property string saveAudioFolderPath
- property string symbolSourceFolder : "/usr" + "/share" + "/harbour-audiocut" + "/qml" + "/symbols/"
- property string lastTmpAudio2delete
- property string lastTmpImage2delete
// UI variables
property bool warningNoPydub : false
@@ -39,7 +40,6 @@
property var hideMarkersPaste : (buttonCopyPaste.down && idComboBoxToolsCopyPaste.currentIndex != 0 ) ? true : false
property var markersDiffExists : ( (toPosMillisecond - fromPosMillisecond) > 0 ) ? true : false
-
// audio variables
// careful: QML multimedia calculates audio duration different than Python and changes during playback -> correction factor for playback
property var millisecondsPerPixelPython : 0
@@ -54,15 +54,10 @@
property var fromPosMillisecond : Math.round(fromPosPixel * millisecondsPerPixelPython)
property var toPosMillisecond : Math.round(toPosPixel * millisecondsPerPixelPython)
-
Component.onCompleted: {
if(debug) console.debug(tempAudioFolderPath)
py.getHomePath()
}
-
-
-
-
Timer {
id: idTimerPlay
running: false
@@ -135,6 +130,9 @@
id: remorse
}
+
+ // global python
+
Python {
id: py
Component.onCompleted: {
@@ -384,9 +382,18 @@
var filterOrder = 1 // ...4
call("audiox.highPassFilter", [ inputPathPy, outputPathPy, tempAudioType, filterFrequency, filterOrder ])
}
-
-
-
+ // https://ffmpeg.org/ffmpeg-filters.html#flanger
+ function flangerEffect() {
+ preparePathAndUndo()
+ var speed = flanger.speed // 0.1 - 10 Hz
+ var delay = flanger.delay // 0-30
+ var depth = flanger.depth // 0 - 10
+ var phase = flanger.phase // 0 - 100
+ var regen = 5 // -95 - 95
+ //shape // sinusoidal / triangular
+ // width // 0-100 71 default
+ call("audiox.flangerEffect", [ inputPathPy, outputPathPy, tempAudioType, speed, depth, phase, delay, regen ])
+ }
onError: {
// when an exception is raised, this error handler will be called
@@ -398,10 +405,6 @@
}
} // end python
-
-
-
-
// To enable PullDownMenu, place our content in a SilicaFlickable
SilicaFlickable {
anchors.fill: parent
@@ -1340,7 +1343,7 @@
anchors.rightMargin: Theme.paddingLarge
ComboBox {
id: idComboBoxToolsEffects
- width: parent.width / 5 * 4
+ width: parent.width / 5 * 4 // 6?
menu: ContextMenu {
MenuItem {
text: qsTr("denoise")
@@ -1362,6 +1365,10 @@
text: qsTr("high-pass filter")
font.pixelSize: Theme.fontSizeExtraSmall
}
+ MenuItem {
+ text: qsTr("flanger")
+ font.pixelSize: Theme.fontSizeExtraSmall
+ }
}
}
IconButton {
@@ -1386,6 +1393,9 @@
if (idComboBoxToolsEffects.currentIndex === 4) {
py.highPassFilter()
}
+ if (idComboBoxToolsEffects.currentIndex === 5) {
+ py.flangerEffect()
+ }
}
}
}
@@ -1490,6 +1500,16 @@
top: 20000
}
}
+ Flanger {
+ id: flanger
+ enabled: ( finishedLoading === true && showTools === true )
+ visible: ( buttonEffects.down && idComboBoxToolsEffects.currentIndex === 5 )
+ anchors.top: idSubmenuEffects.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: Theme.paddingLarge
+ anchors.rightMargin: Theme.paddingLarge
+ }
Row {
|
[-]
[+]
|
Added |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/qml/pages/Flanger.qml
^
|
@@ -0,0 +1,110 @@
+import QtQuick 2.0
+import Sailfish.Silica 1.0
+import Sailfish.Pickers 1.0 // File-Loader
+import QtMultimedia 5.0 // Audio Support
+import io.thp.pyotherside 1.4
+
+Item {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: Theme.paddingLarge
+ anchors.rightMargin: Theme.paddingLarge
+
+ property var speed: 0.5 // 0.1 - 10 Hz
+ property var depth: 2 // 0 - 10
+ property var phase: 25 // 0 - 100
+ property var delay: 10 // 0 - 30
+ property var regen: 5 // -95 - 95
+
+ Slider {
+ id: idFlangerSpeed
+ enabled: true // ( finishedLoading === true && showTools === true )
+ //visible: ( buttonEffects.down && idComboBoxToolsEffects.currentIndex === 1 )
+ width: parent.width
+ height: 1.1 * Theme.itemSizeMedium
+ value: 0.9
+ smooth: true
+ stepSize: .1
+ minimumValue: 0.1
+ maximumValue: 10.0
+ Label {
+ text: parent.value + qsTr(" flanger speed")
+ font.pixelSize: Theme.fontSizeExtraSmall
+ anchors {
+ bottom: parent.bottom
+ bottomMargin: Theme.paddingSmall
+ horizontalCenter: parent.horizontalCenter
+ }
+ }
+ onReleased: { speed = value }
+ }
+
+ Slider {
+ id: idFlangerDelay
+ enabled: true //( finishedLoading === true && showTools === true )
+ //visible: ( buttonEffects.down && idComboBoxToolsEffects.currentIndex === 1 )
+ width: parent.width
+ height: 1.1 * Theme.itemSizeMedium
+ anchors.top: idFlangerSpeed.bottom
+ value: 5
+ smooth: true
+ stepSize: 1
+ minimumValue: 0
+ maximumValue: 30
+ Label {
+ text: parent.value + qsTr(" flanger delay")
+ font.pixelSize: Theme.fontSizeExtraSmall
+ anchors {
+ bottom: parent.bottom
+ bottomMargin: Theme.paddingSmall
+ horizontalCenter: parent.horizontalCenter
+ }
+ }
+ onReleased: { delay = value }
+ }
+ Slider {
+ id: idFlangerPhase
+ enabled: true //( finishedLoading === true && showTools === true )
+ //visible: ( buttonEffects.down && idComboBoxToolsEffects.currentIndex === 1 )
+ width: parent.width
+ height: 1.1 * Theme.itemSizeMedium
+ anchors.top: idFlangerDelay.bottom
+ value: 25
+ smooth: true
+ stepSize: 1
+ minimumValue: 0
+ maximumValue: 100
+ Label {
+ text: parent.value + qsTr(" flanger phase")
+ font.pixelSize: Theme.fontSizeExtraSmall
+ anchors {
+ bottom: parent.bottom
+ bottomMargin: Theme.paddingSmall
+ horizontalCenter: parent.horizontalCenter
+ }
+ }
+ onReleased: { phase = value }
+ }
+ Slider {
+ id: idFlangerDepth
+ enabled: true //( finishedLoading === true && showTools === true )
+ width: parent.width
+ height: 1.1 * Theme.itemSizeMedium
+ anchors.top: idFlangerPhase.bottom
+ value: 2
+ smooth: true
+ stepSize: 1
+ minimumValue: 0
+ maximumValue: 10
+ Label {
+ text: parent.value + qsTr(" flanger depth")
+ font.pixelSize: Theme.fontSizeExtraSmall
+ anchors {
+ bottom: parent.bottom
+ bottomMargin: Theme.paddingSmall
+ horizontalCenter: parent.horizontalCenter
+ }
+ }
+ onReleased: { depth = value }
+ }
+}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/qml/py/audiox.py
^
|
@@ -307,6 +307,11 @@
subprocess.run([ "/usr/bin/ffmpeg", "-y", "-i", "/"+inputPathPy, "-af", "aecho=" + str(in_gain) + ":" + str(out_gain) + ":" + str(delays) + ":" + str(decays), "/"+outputPathPy, "-hide_banner" ])
pyotherside.send('loadTempAudio', outputPathPy )
+#call("audiox.flangerEffect", [ inputPathPy, outputPathPy, tempAudioType, speed, depth, phase, delay, regen ])
+def flangerEffect ( inputPathPy, outputPathPy, tempAudioType, speed, depth, phase, delay, regen ):
+ subprocess.run([ "/usr/bin/ffmpeg", "-y", "-i", "/"+inputPathPy, "-af", "flanger=speed=" + str(speed) + ":depth=" + str(depth) + ":phase=" + str(phase) + ":delay=" + str(delay) + ":regen=" + str(regen), "/"+outputPathPy, "-hide_banner" ])
+ pyotherside.send('loadTempAudio', outputPathPy )
+
# Replace the pydub version which is flake
def slowDown ( inputPathPy, outputPathPy, tempAudioType, tempo ):
subprocess.run([ "/usr/bin/ffmpeg", "-y", "-i", "/"+inputPathPy, "-af", "atempo=" + str(tempo), "/"+outputPathPy, "-hide_banner" ])
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/translations/harbour-audiocut-de.ts
^
|
@@ -194,48 +194,71 @@
<source>Audioworks</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>flanger</source>
+ <translation type="unfinished">flanger</translation>
+ </message>
+</context>
+<context>
+ <name>Flanger</name>
+ <message>
+ <source> flanger speed</source>
+ <translation type="unfinished">flanger Geschwindigkeit</translation>
+ </message>
+ <message>
+ <source> flanger delay</source>
+ <translation type="unfinished">flanger Verzögerung</translation>
+ </message>
+ <message>
+ <source> flanger phase</source>
+ <translation type="unfinished">flanger Phase</translation>
+ </message>
+ <message>
+ <source> flanger depth</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SavePage</name>
<message>
<source>Save as</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Speichern unter</translation>
</message>
<message>
<source>overwrite...</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">überschreiben</translation>
</message>
<message>
<source>Original Folder</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Ursprünglicher Ordner</translation>
</message>
<message>
<source>Path</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Pfade</translation>
</message>
<message>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Größe</translation>
</message>
<message>
<source>Artist</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Künstler</translation>
</message>
<message>
<source>Title</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Titel</translation>
</message>
<message>
<source>Album</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Album</translation>
</message>
<message>
<source>Year</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Jahr</translation>
</message>
<message>
<source>Track#</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Track#</translation>
</message>
<message>
<source>Source file</source>
@@ -247,7 +270,7 @@
</message>
<message>
<source>LAME encoder for mp3 is not yet installed.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">LAME Enkodierer, mp3, nicht installiert.</translation>
</message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/translations/harbour-audiocut-sv.ts
^
|
@@ -194,6 +194,29 @@
<source>Audioworks</source>
<translation>Audioworks</translation>
</message>
+ <message>
+ <source>flanger</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Flanger</name>
+ <message>
+ <source> flanger speed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger delay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger phase</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger depth</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SavePage</name>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/translations/harbour-audiocut-zh_CN.ts
^
|
@@ -194,6 +194,29 @@
<source>Audioworks</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>flanger</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Flanger</name>
+ <message>
+ <source> flanger speed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger delay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger phase</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger depth</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SavePage</name>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-audiocut-1.4.2.tar.bz2/translations/harbour-audiocut.ts
^
|
@@ -194,6 +194,29 @@
<source>Audioworks</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>flanger</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Flanger</name>
+ <message>
+ <source> flanger speed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger delay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger phase</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> flanger depth</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SavePage</name>
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-audiocut.changes.in
^
|
@@ -1,18 +0,0 @@
-# Rename this file as harbour-audiocut.changes to include changelog
-# entries in your RPM file.
-#
-# Add new changelog entries following the format below.
-# Add newest entries to the top of the list.
-# Separate entries from eachother with a blank line.
-#
-# Alternatively, if your changelog is automatically generated (e.g. with
-# the git-change-log command provided with Sailfish OS SDK), create a
-# harbour-audiocut.changes.run script to let mb2 run the required commands for you.
-
-# * date Author's Name <author's email> version-release
-# - Summary of changes
-
-* Sun Apr 13 2014 Jack Tar <jack.tar@example.com> 0.0.1-1
-- Scrubbed the deck
-- Hoisted the sails
-
|
[-]
[+]
|
Added |
_service:tar_git:harbour-audiocut.changes.run
^
|
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Rename this file as harbour-audiocut.changes.run to let mb2 automatically
+# generate changelog from well formatted Git commit messages and tag
+# annotations.
+
+git-change-log
+
+# Here are some basic examples how to change from the default behavior. Run
+# git-change-log --help inside the Sailfish OS SDK chroot or build engine to
+# learn all the options git-change-log accepts.
+
+# Use a subset of tags
+#git-change-log --tags refs/tags/my-prefix/*
+
+# Group entries by minor revision, suppress headlines for patch-level revisions
+#git-change-log --dense '/[0-9]+.[0-9+$'
+
+# Trim very old changes
+#git-change-log --since 2014-04-01
+#echo '[ Some changelog entries trimmed for brevity ]'
+
+# Use the subjects (first lines) of tag annotations when no entry would be
+# included for a revision otherwise
+#git-change-log --auto-add-annotations
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-audiocut.changes.run.in
^
|
@@ -1,25 +0,0 @@
-#!/bin/bash
-#
-# Rename this file as harbour-audiocut.changes.run to let mb2 automatically
-# generate changelog from well formatted Git commit messages and tag
-# annotations.
-
-git-change-log
-
-# Here are some basic examples how to change from the default behavior. Run
-# git-change-log --help inside the Sailfish OS SDK chroot or build engine to
-# learn all the options git-change-log accepts.
-
-# Use a subset of tags
-#git-change-log --tags refs/tags/my-prefix/*
-
-# Group entries by minor revision, suppress headlines for patch-level revisions
-#git-change-log --dense '/[0-9]+.[0-9+$'
-
-# Trim very old changes
-#git-change-log --since 2014-04-01
-#echo '[ Some changelog entries trimmed for brevity ]'
-
-# Use the subjects (first lines) of tag annotations when no entry would be
-# included for a revision otherwise
-#git-change-log --auto-add-annotations
|