-
Annoyance: Slow Navigation
03/24/2022 at 22:54 • 0 commentsAfter using this thing for a while, I've enjoyed it but discovered another annoyance today. I put more music on another SD card that I had used in the Zoom and it remembered the track it left off on, even after replacing all files. Instead of starting the fresh SD card off at track 1, it started at 192 or so. This isn't a huge problem, but it did bring to light the fact that it takes a very long time to skip many tracks. There is no quick jumping to the beginning or end of the track list, as far as I am aware. I've decided to just let it play through the tracks for a while as I don't feel like skipping around. It can be painfully slow.
Just wanted to post this update before I forgot about it.
-
Proper Playback Achieved
03/15/2022 at 02:19 • 0 commentsThe first test of the Zoom F1 as a music player was brief and frustrating. With many songs failing to play with an "Invalid File!" error, and others had multiple minutes of silence following the track. This was infuriating as I was trying to work and do things link weld upside down in the dark. Taking off heavy gloves to try and skip the track was a massive interruption. With the latest updates to my Zoom_Converter script, I have solved these massive issues. For full details, see the previous log. I have listened to almost 300 songs on the device without a single issue or interruption. This is the exact experience I was looking for from my audio player. With some Amazon Basics rechargeable AAA batteries and an extra SD card, I can have an endless stream of audio wherever I go. Having an SD card that can be swapped quickly is very helpful. I keep different playlists on different cards, and just take them with me. I got tired of music the other day and swapped out the card for one with some fun interviews and podcasts on it. This was more pleasant to me than switching apps and playlists on my phone, as I do not like getting my phone out during the work day. The removable batteries are more pleasant than I thought they would be as well. It's so nice to be able to just take 30 seconds to have a fresh set of batteries installed. So far, I've been getting nearly a full day of playback from a pair off 800mah batteries. I work 10 hour days, so this is good. I usually have to swap out once towards the end of the day, but I do also listen to music in the morning, on the drive to work, and on the way back. Many days the Zoom is playing for well over 12 hours a day.
At this point in time, I still recommend the Zoom F1 as an audio player if you can live with the weird file names, converting files, and no bluetooth support. It makes perfect sense for a professional environment or user, as far as I can tell. The average user may not find the lack of luxury features worth the reliability and simplicity, but I certainly do.
-
Zoom_Converter.sh Updates
03/07/2022 at 20:28 • 0 commentsThe crude Linux shell script for preparing audio files for the Zoom F1 has been updated to include automatic file source declaration, and the destination is now a simple variable that can be set once at the start of the program. It has also been renamed to Zoom_Converter.sh. Instructions for use have been included in the comments within the script file. The required "/" in the destination has been added to the code, so the user no longer needs to add it to the destination variable, and can copy and paste the address from the file manager window.
Current workflow is as follows:
1) Download script.
2) Place script in folder of files to be converted.
3) Open script with text editor of choice and fill out the "destination" variable. Save changes
4) Navigate to folder containing script and audio files within the terminal.
5) Run the following command: sh Zoom_Converter.sh Alternatively, some users may need to run the following alternative command: bash Zoom_Converter.sh
The script will attempt to convert all supported audio files into 256kbps mp3 files. They will be placed in the directory specified in the "destination" variable defined in the script.
I am fairly new to shell scripting and needed a fair bit of help with this one from the internet. It does work, and has allowed me to fairly easily put music onto a very well made device that would otherwise sit unused for the vast majority of its life. Any suggestions for the code would be appreciated.
-
More Lessons Learned
03/07/2022 at 15:05 • 0 commentsI woke up this morning and wanted my music, so I changed the rechargeable AAA batteries in my Zoom F1 and got it playing on my portable soundbar. All was great until it encounter another "invalid File" and stopped playback. The point of using this device for music playback is uninterrupted playback. It's quite jarring to have a song end and unlimited silence follow. Especially when working on something that cannot be set aside, such as a weld in progress.
I've taken note of 2 offending files and found a pattern in them: 320kbps mp3 files. The original script to convert the audio files for the Zoom was set up to skip mp3 files as I was unaware of this limitation. I confirmed that the offending file works when taken down to 192kbps, but I want the highest that it will support. I suspect it will handle 256kbps just fine, as I compared a known working file and seem to remember seeing that bitrate. I've rewritten much of the original script to not only convert all mp3 files to 256kbps mp3, but also to change the file extension to MP3, with capitals, as ffmpeg would not "edit a file in place" when trying to specify the same file name. This works for me as I can tell the files apart quickly, and sort by converted and unconverted. I also specified a different output folder for the script so that I can keep the files separate.
Currently, I am writing simple instructions inside the Zoom_Converter.sh program to make it a little easier to figure out. It already has a "source" variable, and I will add in a "destination" variable when I get a chance. The end goal is to have a simple GUI program that will run on any system, and just automatically prepare any audio files for use on the Zoom F1. This would include shuffling the files if desired, converting them, then batch renaming and exporting to the specified SD card. Another feature I'd like to add is an auto shuffle feature where you can just have it re-order and rename the files to change up the music playlist. I will likely write this program in Python, using tkinter for the GUI as I am already familiar with both, and they are fairly standard. I may compile some executables for various systems if I can decide on a good system for that and get it working. I understand that many people who already own this device may not be programmers, or even use Linux. The goal is to turn one of the best pieces of compact audio gear into a suitable music player in its free time. Ultimately, I want to hack the firmware and write custom firmware for it to turn it into a full featured recorder and player. I do not have anywhere near the skill for that at this time, so I must work within the limitations of a stock device.
Another limitation I've found is the speed at which the device skips files. It is very slow to skip through files, meaning it takes quite a while to get to the song you want. This is a minor complaint as I just let it play all day long as I work.
A more serious issue I've run into is the fact that ffmpeg is only using a single core to do the conversion. This isn't a serious issue for most people, but I work from a Raspberry Pi 400 these days, and it can be painfully slow at times, especially with 3 CPU cores sitting nearly idle. I could look into making a multi-threaded program, but it isn't that simple. I suspect that the core issue is that fffmpeg can only work on one file at a time, so I would need to open a new instance for each CPU core, and specify a file for that instance. I haven't thought of this before, but I suspect I could add it later down the road when I implement this is program in Python. I'm sure there is an accepted best approach to this, but I like to try to figure it out myself first and see how close I get to the "right" answer. My first thought is to have the program count the number of physical CPU cores, subtract 1, then use that as the number of instances to run. I'd leave 1 or 2 cores unused as to not bog down the entire system. The user could also specify the number of cores to use. I think the easiest way to divide the workload would be to just have an instance grab the next available file from the list, then mark it "in progress" then "done" somehow to have it taken out of the queue. My other thought was to divide the total number of files by the number of available cores, but this could leave idle instances when one finishes a batch of small files faster than the others. picking from one pile seems to be the more efficient method.At this time, the process is far easier than it was, having updated the script and put the shell commands into the comments of the file. I also standardized the process and am skipping a few extra steps by exporting the files directly to the SD card instead of an intermediate folder. I found that Krename has a "random" sort feature when adding files, that solves one of my biggest problems. I wasn't sure how to shuffle the files at first. I was going to write a program to do it until I discovered this feature.
Overall, I am very happy with the Zoom F1 as an mp3 player, and will continue to streamline the process and see what it's capable of. I will upload the new and improved script soon, in case anyone cares to use it. It's a general audio converter, so has uses outside of what I am doing here.
-
Additional Problems
01/16/2022 at 02:57 • 0 commentsafter spending two full ten hour days with the F1 at work, I have a few more things to report. First is that it does make an excellent basic audio player. The sound quality is far superior to my smartphone, and the physical buttons make skipping around far easier. I miss having the media control button on my headphones actually work, but I can live with the Zoom buttons. The belt clip is a huge pain to get clipped on, but it definitely isn't going anywhere.
I want to put a screen protector on it as I'm often grinding and welding, or just bumping into things. This thing wasn't cheap, and I still need it for audio production, so it's worthwhile to protect it. For now, I'll cover the screen in really nice clear packaging tape. I used the same tape to hold together my shattered smartphone screen, and it's been excellent so far, all things considered. I have magnetic charging cable adapter plugged into it at all times, which does a great job of protecting the micro USB port. The headphone jack is protected by the headphones plugged into it. The mic input jack is left exposed, but I keep the Zoom clipped to my belt and under my shirt at all times. I may just cut the end off a cheap old 3.5mm aux cable and leave it plugged in. I found a nice little adventuresome that has an mp3 player case I want. It's a waterproof tough box with a waterproof headphone jack passing through the case, padding inside, and a belt clip. This would be ideal when I go sit in the hot tub at the gym to do my thinking and recovery. I've also got a decent piece of nice bison leather left from my leather working business, and all my basic tools. I may actually make a custom protective case for it and offer it up for sale. It's such a niche device that I might end up being one of the only people making cases for it. I've also got experience using it and making various cases and sheaths for things. Could be fun.
Battery life is pretty darn good. I've gotten a full day off a set of standard AAA alkaline batteries. More, if I remember correctly. I don't like disposable things in general, so I'll be buying professional rechargeable batteries for it soon. NiMH are old school, but are proven durable and reliable. The new lithium AAA batteries seem to be pretty good these days, but I've never seen a set from a reputable brand or used in a professional setting. This is a professional piece of audio gear, after all, and I need it to be as reliable as possible when it comes time to record audio. I can't have a weird battery fry it or cause other issues.
There are two major issues I've found, but haven't had time to work on yet. I've not used it in a while due to lack of batteries and refusing to buy disposable. There are tracks that will not play and come up with "invalid file" and some that will play through the entire track, but have multiple minutes of silence at the end of the track. I suspect this has something to do with my batch conversion process. I need to make note of the offending tracks, and will do so now that I've added a pencil and water proof notebook to my every day carry. The Zoom will be another very lucky item to get added to my EDC once I have good batteries. In order to figure out which tracks are the problem, I have to get them off the SD card and take a look at the files. I'll compare them to known good files and just look for differences. In order to match the converted file to the source file, I'll need the original set of files, in the order they were processed. Luckily I kept every set of files in their own folder, in the same order through each step of processing. I'll write a Python script to grab all the file names in a certain order, then put them into a spreadsheet so I can compare and search for files. A database would be ideal for this, but I have no experience with database management and don't feel like learning it right now. Once I know what is wrong with the files, I'll look into possible solutions and update my process as needed.
I contacted Zoom support to ask about the 500 file limitation. No surprises here, but they don't know anything about it on a technical level. Basically they're either lazy, uninformed, or hiding something. Useless, like most tech support. At first they basically just said that it can only recognize 500 files at a time, when I had asked them WHY it could only handle 500. Took me 2 responses to get their final answer of "we have no idea." To Zoom's credit, they did actually respond, which is better than many consumer companies ice worked with in the past. Still a massive disappointment. Ice gotten to the point where I feel the Zoom F1 hardware is about as good as can get for a basic media player, and it's just limited by the software at this point. If I ever get good at reverse engineering, I'd love to hack the firmware and write custom firmware for it. I'd add shuffle, standard track names, audiobook mode, podcast features, sleep timers, playlists, and all the basic features you'd expect from a portable media player. That's likely a far off dream unless I get some serious help. One can dream...
For the time being, I'll be adding some protection to the device, getting proper rechargeable batteries for it, and just using it as a no nonsense media player.
-
Batch File Conversion and Renaming
01/01/2022 at 19:05 • 0 commentsTo get this working right away, I took an album of mp3 files and simply renamed them using Krename. This got the proof of concept working right away and I've been listening to it and working on a better way to prepare files for the Zoom. This involves two steps. The first is to convert the file to an MP3 format, if it isn't already. I have wav, wma, and flac files among the various mp3 files. I started by just making a folder with all the songs I wanted on the the device. I then searched all files using "*.*", which showed all files. I selected all and copied them into another folder. Then I removed all files that weren't audio files. This left me with just the audio files in a folder. I used a Linux script to search for wma, wav and flac files with ffmpeg, and convert them to 320Kbps mp3 files. I'll share the script code here and in the "Files" section of the main project page. I may start a GitHub page for it and refine it as I go. This is running in a terminal window now. I'm using an overclocked Raspberry Pi 400 running Pop!_OS, but this would go much faster on a more powerful machine.
The next step, after file conversion, is to batch rename the files into a format the Zoom can handle. It looks like this: ZOOM0001.MP3. I will use Krename to batch rename these, add the numbers automatically, and change the extension to uppercase.
After that is done, it's a simple matter of copying the converted and renamed files to the SD card and putting it into the Zoom to enjoy my music.
This process is not very pretty, but it does work. The script currently only finds files in the directory it is located and needs to be started from a terminal window using the "bash" command. It is working just fine and I have gotten working audio files out of it already. It also dumps the converted files into the source directory. This isn't a huge problem as I can just search for ".MP3", select all, and copy those to the SD card, ignoring all invalid files.
If testing goes well and I decide to stick with the Zoom F1 as my main media player, I will refine the software and make it far more user friendly. I know of someone who has a Zoom F1 and might really enjoy this project. He runs a business collecting interesting sounds from all over the world. I'll write the code and documentation with him in mind, and ask if he would like to test it out for me and report back. If not, I'll still end up with a nicely polished program that soles a real problem for me and anyone else who might be interested.
Here is the initial code. Crude, but effective:
#!/bin/bash source = /home/dustin/Music/Zoom_All_Sorted for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k \ "${f/%wav/mp3}"; done for f in *.wma; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k \ "${f/%wma/mp3}"; done for f in *.flac; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k \ "${f/%flac/mp3}"; done
I would like to rewrite the entire thing in Python and make it cross platform compatible. I only use Linux, but I know many people use various other operating systems. This is a fairly simple program, but I want to add a few advanced features, such as being able to shuffle the playlist. This would require randomly reordering the files, then renaming them. This should be fairly simple, but very useful to change up a playlist. I'd like to make a program that manages entire audio libraries for the Zoom, but this might take a while. I made this as fast as possible so I can get this working and ready for work on Monday.
The program just finished running and converted 113 files for me. Doing this by hand would have been a nightmare. I tried using VLC to batch convert the files. It ran, but left empty files. This method using ffmpeg seems to have worked just fine.
Renaming the files now and testing. There are 1,518 files to rename here. Krename would not add them all when using the open dialog box, but worked when dragging and dropping the files in. Odd, but it is running now. I'm copying the files to a new directory as they are renamed, instead of renaming the source files. This is to allow me to modify the original playlist by adding or removing songs, then just batch renaming them again and overwriting the SD card. Otherwise, I'd have no idea of the file names, outside of the Zoom names.
File rename operation completed successfully. Waiting on almost 15GB of audio files to copy to the SD card for testing. I'm not sure how it will handle so many files. If all goes well it will recognize them all and play. If so, I will skip backwards to the last file to make sure it can handle the 4 digit file names. Surprisingly, the Pi 400 laptop has not crashed once, even under load and after many file operations. It's very unreliable these days. I suspect it's the SSD being old and sucking down massive amounts of power from the USB port. I also have an electric heater that dims the lights. I saw the ow voltage symbol earlier. I plan to get a super tiny 1TB USB 3 SSD to boot from in the future. Until then I have to hope t doesn't lock up while working. Still waiting on the files to copy. SD cards are among my least favorite storage media these days.
After adding 1,518 audio files, I found that it will only see 500 at a time by default. It creates "FOLDER01" automatically, and this is where I put the files. I tried creating other folders like "FOLDER02" and adding other files to those, but it will not see them. I'm not sure if this device actually supports multiple folders like the Zoom H5 does. This is an annoying limitation, but I could live with it if needed. I'll just have to choose my songs more carefully. Another option is to combine all tracks into one gigantic 15GB audio file and drop that on there. This would take away the ability to skip individual tracks, which I really enjoy. I wouldn't be surprised if I was the only person to try this and discover this limitation. I'll do some research on file limitations, and contact Zoom if I can't ind anything. I'm curios as to what they'd say about this little project. Even with the 500 file limitation, I am enjoying using it as an audio player so far.
Google isn't turning up anything remotely useful, outside of the user manual, which won't load because the internet where I'm at is entirely useful. I can't even open a web page. I'll work on this later and just enjoy the rest of my day off.
-
Exploring Features
01/01/2022 at 16:43 • 0 commentsI haven't spent much time with this as a music player yet, but I do like it so far. The simple, reliable nature, physical buttons, and fine volume control are refreshing in a world of giant touchscreens and many distractions.
I've found that it will simply play files in numerical order, looping once it reaches the end. Many SD cards could be loaded with various albums, playlists, artists, audiobook series, and podcasts. There is partial resume function that I've found so far. It will remember what track you were on, but not what location within that track. There is an option to pause and mark a track during playback, but I am not sure how to see the mark on the device. This might not be available here. The skip buttons can be held down to seek through a track, and it does go faster the longer you hold it. Audiobooks are viable on this device as long as you remember where you left off. Even multi track audiobooks would work well here. I combine all tracks of an audiobook into a single file, so this would work very well for me. I just need to remember the track name of the book I am on and where I left off. Easy enough.
There is a playback mode selection of "Play All", "Repeat One" and "Repeat All." I keep it on "Repeat All." Maybe I can somehow modify the firmware or convince Zoom to add a shuffle feature. That seems like a long shot.
I believe this device has gapless playback, which is a feature I really like and is incredibly hard to find as a default feature anywhere these days. My old Zune and Zune HD had gapless playback. There are a few albums in my collection that rely on it for proper listening. I was amazed at how hard it was to get gapless playback when I started looking in 2018 or so. I now have a device that seems to support it by default. I will have to check later and report back. Even if it doesn't I often merge tracks together that don't have a gap between them.
The display has contrast control and a backlight timer that goes as low as 30 seconds, and can be turned on and off manually.
The physical hold switch is excellent to avoid accidental button presses. This a required feature for a proper audio recorder where you can't afford button presses during recording. It's a very nice feature to have on a portable audio player with so many physical buttons.
Physically, it's a very bulky device, and not pocket friendly. I enjoy this as it doesn't feel like it will just slip out of my hands. It's not too heavy, but does not feel cheap ether. It has metal bars coming off the back that let it mount to a tripod shock mount, and a belt could be run through them to mount it to one's waist. I have the belt clip for it as well. It's hard to clip on, but stays put quite well. It has a nice locking battery cover and a rubber cover for the SD card. The large expansion port on the top has a very nice hard cover that snaps on securely and blends in to the point it wouldn't likely be noticed. A variety of professional microphones can be attached to the top, such as the shotgun microphone I have for it. The 3.5mm audio input and output jacks have male threads on the outside for screwing cables to the device. I use this with my lapel microphone for extra security.
In my line of work, this device is good, but not ideal. I weld and grind often. Magnetic dust is always flying through the air, and red hot metal often flies around and drips. I burned the screen on my phone while welding, then dropped it and shattered the screen trying to clean it. This was quite frustrating and led me down this path. The headphone jack will be protected when headphones are plugged in, I have a magnetic USB cable end plugged into the USB port that will keep it safe, and I can order 3.5mm protective plugs later. I will clip this onto my belt, as far from the welding and grinding as possible. I may put a screen protector on it and either find a case or make a leather one for it. I don't think I have enough leather in stock, but that would be a fun project. I currently have it clipped to my underwear as I work on this, make coffee, and go about my day. I actually just clipped it on and forgot about it. This is a sign of proper design in my opinion. When it can get out of the way and blend into the background, it is doing it's job exceptionally well.
I need to do some testing on battery life, but that will come soon. It has options for alkaline, NiMH, and lithium batteries, which is a great feature. It won't report low battery when you put in fresh rechargeable batteries like many devices would. This is a very well thought out professional device. The difference between professional and consumer equipment is very apparent here, and I find the simple professional features far more satisfying than the endless features of the consumer options. I do miss having lyrics, but I don't need them at work, which is where I will be using this.
I don't have much else to say at this point as I've explored the entire menu system and outlined the basic features, but I will explore file names, file types, confirm gapless playback, and report back later. I was just able to reach down, turn off the hold switch, and skip tracks without much thought. That makes me very happy. No need to look at the screen at all. I consider this an excellent, though basic portable audio player that I'm proud to own and happy to use. I recommend this to anyone looking for a simple audio playback device, and especially those who could actually use a professional audio recorder. I would not recommend the larger Zoom players as portable audio players as they're very large, expensive, and just massive overkill. The Zoom F1 will make a decent player for the right person.