Hare - Haiku Audio Ripper Encoder
Hare in it's current state is not yet usable. There is work being done to correct this. Stay tuned.
Haiku Audio Ripper/Encoder.
License: MIT License
Hello, could you release versioned tarballs here on GitHub?
Creator: Scott McCreary
Need to add a note to Hare indicating that there's not yet encoding support in Haiku.
Add support for using oggenc, flac, lame, and/or gogo_no_coda.
Libcoverart is a library used for accessing the MusicBrainz Cover Art Archive
https://github.com/metabrainz/libcoverart
This could for example be used to fetch cover art for the CD that is being processed by Hare.
Example: /boot/home/MP3->"Apply"
Output directory is not created
Selecting Be encoder, or M3U creator working, but when selecting Ogg, Lame or GoGo encoder the application crashes. I do not believe this was the case last time I tested the application.
After encoding finished, the menu items should go back to active status. They do, but they are greyed out. Even though they are greyed out they still function.
First off, excellent progress on the layout improvements. Few more issues I'd like to see cleaned up.
When program first starts up, the text in the File Path view is cropped. Perhaps arrange the options into one list on the left hand side, break the "Name Pattern" and "File Path" into two text displays, put the FilePath above the NamePattern, this reduces the need for the File Path view to be taking up 50% of the overall window, allowing more space for the Details Editor view. Also the File Path and Name Pattern text views should be labeled. On first startup perhaps set the default width for "File Path and Name Pattern" view to 40%?
On the Details View, try to reduce the space between the entries, there's a lot of wasted space there. Keep in mind that the number of detail entries is likely to increase once we add support for more tags. This will eventually require a scrolling view. Figure there will be an entry for Album Art and more.
Some of the "BeEncoder" (ffmpeg) options are working somewhat (only on x86_gcc2h). I have encoded from wav to flac, raw, and AC-3. In each instance the output file is named *.wav.mp3, and when clicked, Haiku opens it with SoundRecorder instead of MediaPlayer. FileInfo in each case correctly identifies the container correctly (flac, raw, MP3). Opening with MediaPlayer produces mixed results. Raw plays fine. Flac and MP3 output noise. This app is "almost" working :)
I have several CD/DVD drives and lots of audio CD's, in case any dev wants to test further, or collaborate on getting this app working.
There is a recipe for libmusicbrainz in haikuports. Suport for this could be added to HARE.
https://musicbrainz.org/doc/libmusicbrainz
To delete and entry you need to highlight it, click on edit menu then click delete, or press alt-d. Alt-D is fine, perhaps just add a case for the delete key there as well.
Welcome to the Haiku shell.
~/HaikuArchives/Hare> build.sh
Starting Build of Hare
Building Hare Library
Error: Failed to find paths: No such file or directory
g++ -c src/libHare/ID3Tag.cpp -iquote./ -iquotesrc/libHare/ -O3 -o "objects_libhare/ID3Tag.o"
In file included from src/libHare/ID3Tag.cpp:4:0:
src/libHare/ID3Tag.h:7:21: fatal error: fileref.h: No such file or directory
compilation terminated.
/boot/system/develop/etc/makefile-engine:291: recipe for target 'objects_libhare/ID3Tag.o' failed
make: *** [objects_libhare/ID3Tag.o] Error 1
Building Encoders
make[1]: Entering directory '/boot/home/HaikuArchives/Hare/src/Encoders/BeEncoder'
Error: Failed to find paths: No such file or directory
g++ -c BeEncoder.cpp -iquote./ -iquote./ -iquote../../libHare -O3 -o "objects_encoder/BeEncoder.o"
In file included from ../../libHare/ID3Tags.h:7:0,
from BeEncoder.cpp:16:
../../libHare/ID3Tag.h:7:21: fatal error: fileref.h: No such file or directory
compilation terminated.
/boot/system/develop/etc/makefile-engine:291: recipe for target 'objects_encoder/BeEncoder.o' failed
make[1]: *** [objects_encoder/BeEncoder.o] Error 1
make[1]: Leaving directory '/boot/home/HaikuArchives/Hare/src/Encoders/BeEncoder'
Makefile_Encoders:8: recipe for target 'all' failed
make: *** [all] Error 2
Building Hare
cc -o "objects_hare/Hare" objects_hare/Application.o objects_hare/AppView.o objects_hare/AppWindow.o objects_hare/CheckMark.o objects_hare/EditorView.o objects_hare/EncoderListView.o objects_hare/FileNamePatternView.o objects_hare/RefRow.o objects_hare/Settings.o objects_hare/StatusBarFilter.o -g -Xlinker -soname=APP -Lobjects_hare/ -Lsrc/Hare/ -Lobjects_libhare -lstdc++ -lsupc++ -lhare -ltag -lbe -lgame -lmedia -ltracker -lcolumnlistview
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/5.4.0/../../../../x86_64-unknown-haiku/bin/ld: cannot find -lhare
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/5.4.0/../../../../x86_64-unknown-haiku/bin/ld: cannot find -ltag
collect2: error: ld returned 1 exit status
/boot/system/develop/etc/makefile-engine:246: recipe for target 'objects_hare/Hare' failed
make: *** [objects_hare/Hare] Error 1
Moving final executable and encoders into dist folder
cp: cannot stat 'objects_hare/Hare': No such file or directory
cp: cannot stat 'src/Encoders/BeEncoder/objects_encoder/BeEncoder': No such file or directory
cp: cannot stat 'src/Encoders/M3UCreator/objects_encoder/M3U-Creator': No such file or directory
cp: cannot stat 'src/Encoders/MP3GoGo/objects_encoder/MP3-GoGo': No such file or directory
cp: cannot stat 'src/Encoders/MP3Lame/objects_encoder/MP3-Lame': No such file or directory
cp: cannot stat 'src/Encoders/OGGEncoder/objects_encoder/OGG-Encoder': No such file or directory
The Build has Finished!
~/HaikuArchives/Hare>
Remove taglib from repo, use current released taglib library instead
Encoding is now working using lame and ogg, but is very slow. Need to figure out how to speed it up.
At this point it always goes back to a set size. It should recall how it was left when it was last run. That is, if the user resizes the windows and resizes and selects/unselects columnlistview columns, those settings should be reloaded.
If AC-3, flac or wav is selected, the encoded output file suffix is always mp3.
Same issue as Calendar had, an attempt to put a / in the filename will result in chaos. Substitute the division slash whenever a / is in the song title.
See HaikuArchives/Calendar#96
Creator: Scott McCreary
URL: http://dev.osdrawer.net/issues/292
I'm thinking maybe a rabbit with headphones on, but will consider other ideas, so if you have icon skill send me some samples.
CAUTION: comments not extracted from issues. See OsDrawer or the WaybackMachine for issue comments.
Like was done with ArmyKnife in HaikuArchives/ArmyKnife#66
File->Load CD->Audio CD
Content is not loaded into track list
Preferences should be expanded to include an option for selecting the output directory.
Remove the menu Columns and use the default menu present in the BColumnListView.
Welcome to the Haiku shell.
~/HaikuArchives/Hare> build.sh
Starting Build of Hare
Building Hare Library
mkdir -p objects_libhare; \
mkdepend -Isrc/libHare/ -p .cpp:objects_libhare/%n.o -m -f "objects_libhare/ID3Tags.d" src/libHare/ID3Tags.cpp
mkdir -p objects_libhare; \
mkdepend -Isrc/libHare/ -p .cpp:objects_libhare/%n.o -m -f "objects_libhare/ID3Tag.d" src/libHare/ID3Tag.cpp
mkdir -p objects_libhare; \
mkdepend -Isrc/libHare/ -p .cpp:objects_libhare/%n.o -m -f "objects_libhare/GenreList.d" src/libHare/GenreList.cpp
mkdir -p objects_libhare; \
mkdepend -Isrc/libHare/ -p .cpp:objects_libhare/%n.o -m -f "objects_libhare/AudioInfo.d" src/libHare/AudioInfo.cpp
mkdir -p objects_libhare; \
mkdepend -Isrc/libHare/ -p .cpp:objects_libhare/%n.o -m -f "objects_libhare/AudioAttributes.d" src/libHare/AudioAttributes.cpp
mkdir -p objects_libhare; \
mkdepend -Isrc/libHare/ -p .cpp:objects_libhare/%n.o -m -f "objects_libhare/AudioAttribute.d" src/libHare/AudioAttribute.cpp
mkdir -p objects_libhare; \
mkdepend -Isrc/libHare/ -p .cpp:objects_libhare/%n.o -m -f "objects_libhare/AEEncoder.d" src/libHare/AEEncoder.cpp
Error: Failed to find paths: No such file or directory
g++ -c src/libHare/AEEncoder.cpp -Isrc/libHare/ -I- -O3 -o "objects_libhare/AEEncoder.o"
Error: Failed to find paths: No such file or directory
g++ -c src/libHare/AudioAttribute.cpp -Isrc/libHare/ -I- -O3 -o "objects_libhare/AudioAttribute.o"
Error: Failed to find paths: No such file or directory
g++ -c src/libHare/AudioAttributes.cpp -Isrc/libHare/ -I- -O3 -o "objects_libhare/AudioAttributes.o"
Error: Failed to find paths: No such file or directory
g++ -c src/libHare/AudioInfo.cpp -Isrc/libHare/ -I- -O3 -o "objects_libhare/AudioInfo.o"
Error: Failed to find paths: No such file or directory
g++ -c src/libHare/GenreList.cpp -Isrc/libHare/ -I- -O3 -o "objects_libhare/GenreList.o"
Error: Failed to find paths: No such file or directory
g++ -c src/libHare/ID3Tag.cpp -Isrc/libHare/ -I- -O3 -o "objects_libhare/ID3Tag.o"
In file included from /boot/home/HaikuArchives/Hare/src/libHare/ID3Tag.cpp:4:
/boot/home/HaikuArchives/Hare/src/libHare/ID3Tag.h:7: fileref.h: No such file or directory
/boot/home/HaikuArchives/Hare/src/libHare/ID3Tag.h:8: tag.h: No such file or directory
/boot/system/develop/etc/makefile-engine:291: recipe for target 'objects_libhare/ID3Tag.o' failed
make: *** [objects_libhare/ID3Tag.o] Error 1
Building Encoders
make[1]: Entering directory '/boot/home/HaikuArchives/Hare/src/Encoders/BeEncoder'
mkdir -p objects_encoder; \
mkdepend -I./ -I../../libHare -p .cpp:objects_encoder/%n.o -m -f "objects_encoder/MediaMenuItem.d" MediaMenuItem.cpp
mkdir -p objects_encoder; \
mkdepend -I./ -I../../libHare -p .cpp:objects_encoder/%n.o -m -f "objects_encoder/BeEncoder.d" BeEncoder.cpp
Error: Failed to find paths: No such file or directory
g++ -c BeEncoder.cpp -I./ -I../../libHare -I- -O3 -o "objects_encoder/BeEncoder.o"
In file included from /boot/home/HaikuArchives/Hare/src/libHare/ID3Tags.h:7,
from /boot/home/HaikuArchives/Hare/src/Encoders/BeEncoder/BeEncoder.cpp:16:
/boot/home/HaikuArchives/Hare/src/libHare/ID3Tag.h:7: fileref.h: No such file or directory
/boot/home/HaikuArchives/Hare/src/libHare/ID3Tag.h:8: tag.h: No such file or directory
/boot/system/develop/etc/makefile-engine:291: recipe for target 'objects_encoder/BeEncoder.o' failed
make[1]: *** [objects_encoder/BeEncoder.o] Error 1
make[1]: Leaving directory '/boot/home/HaikuArchives/Hare/src/Encoders/BeEncoder'
Makefile_Encoders:8: recipe for target 'all' failed
make: *** [all] Error 2
Building Hare
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/StatusBarFilter.d" src/Hare/StatusBarFilter.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/Settings.d" src/Hare/Settings.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/RefRow.d" src/Hare/RefRow.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/FileNamePatternView.d" src/Hare/FileNamePatternView.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/EncoderListView.d" src/Hare/EncoderListView.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/EditorView.d" src/Hare/EditorView.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/CheckMark.d" src/Hare/CheckMark.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/AppWindow.d" src/Hare/AppWindow.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/AppView.d" src/Hare/AppView.cpp
mkdir -p objects_hare; \
mkdepend -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -p .cpp:objects_hare/%n.o -m -f "objects_hare/Application.d" src/Hare/Application.cpp
g++ -c src/Hare/Application.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/Application.o"
g++ -c src/Hare/AppView.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/AppView.o"
g++ -c src/Hare/AppWindow.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/AppWindow.o"
g++ -c src/Hare/CheckMark.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/CheckMark.o"
g++ -c src/Hare/EditorView.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/EditorView.o"
g++ -c src/Hare/EncoderListView.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/EncoderListView.o"
g++ -c src/Hare/FileNamePatternView.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/FileNamePatternView.o"
g++ -c src/Hare/RefRow.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/RefRow.o"
g++ -c src/Hare/Settings.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/Settings.o"
g++ -c src/Hare/StatusBarFilter.cpp -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g -o "objects_hare/StatusBarFilter.o"
cat src/Hare/Hare.rdef | cc -E -Iobjects_hare/ -Isrc/Hare/ -Isrc/libHare -I- -I/boot/system/develop/headers/private/interface -O0 -g - | grep -av '^#' | rc -I src/Hare/ -o "objects_hare/Hare.rsrc" -
cc -o "objects_hare/Hare" objects_hare/Application.o objects_hare/AppView.o objects_hare/AppWindow.o objects_hare/CheckMark.o objects_hare/EditorView.o objects_hare/EncoderListView.o objects_hare/FileNamePatternView.o objects_hare/RefRow.o objects_hare/Settings.o objects_hare/StatusBarFilter.o -g -Xlinker -soname=_APP_ -Lobjects_hare/ -Lsrc/Hare/ -Lobjects_libhare -lstdc++.r4 -lhare -ltag -lbe -lgame -lmedia -ltracker -lcolumnlistview
/packages/gcc-2.95.3_2017_07_20-1/.self/develop/tools/i586-pc-haiku/bin/ld: cannot find -lhare
collect2: ld returned 1 exit status
/boot/system/develop/etc/makefile-engine:246: recipe for target 'objects_hare/Hare' failed
make: *** [objects_hare/Hare] Error 1
Moving final executable and encoders into dist folder
cp: cannot stat 'objects_hare/Hare': No such file or directory
cp: cannot stat 'src/Encoders/BeEncoder/objects_encoder/BeEncoder': No such file or directory
cp: cannot stat 'src/Encoders/M3UCreator/objects_encoder/M3U-Creator': No such file or directory
cp: cannot stat 'src/Encoders/MP3GoGo/objects_encoder/MP3-GoGo': No such file or directory
cp: cannot stat 'src/Encoders/MP3Lame/objects_encoder/MP3-Lame': No such file or directory
cp: cannot stat 'src/Encoders/OGGEncoder/objects_encoder/OGG-Encoder': No such file or directory
The Build has Finished!
~/HaikuArchives/Hare>
Creator: Scott McCreary
URL: http://dev.osdrawer.net/issues/289
The main window seems to keep getting bigger every time you open it up, this needs to be fixed.
Also there's buttons that are sometimes overlapping that also need to be fixed.
CAUTION: comments not extracted from issues. See OsDrawer or the WaybackMachine for issue comments.
At least with lame, perhaps others, the progress bar goes from zero to 100 instantly at the start of encoding each song. It should progress in sync with the encoder's actual progress.
Remove libsanta from repo, a use the current version of the libsanta library instead.
Even better would be to remove the need for libsanta and update to use layout management instead.
GOGO seems to be an issue with GOGO itself. Opened issue at Haikuports: haikuports/haikuports#6328
Oggenc fails if input file is on a read-only volume, which is the case with audio CDs. So need to find out if there is a way to get around this, either by copying the track to a temp directory and encoding it from there, or perhaps an option to allow encoding from a read-only volume.
In either case, the encode failing shouldn't crash Hare. The error conditions need to be handled properly
Need to update the About box info, it's still pointing to osdrawer and has an email address in it. Can just point it to HaikuArchives/Hare instead
Encode just selected files, unless none are selected, then encode all.
Currently Hare is always trying to encode all files even if only one or a few are selected.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.