EASYH10(1)

πŸ’– EASYH10 πŸ’–

okay so bestie, welcome to easyh10 β€” it's a User Command, it lives in section 1 of the manual, and it is literally the tool that manages your iRiver H10 MP3 player. no cap. let's get into it πŸŽ€


✨ NAME ✨

EasyH10 β€” manage the iRiver H10 MP3 player 🫢


🌸 SYNOPSIS 🌸

easyh10 [ options ] [ location ]

πŸ¦‹ DESCRIPTION πŸ¦‹

so EasyH10 is a command-line utility that generates a media database and a playlist for an iRiver H10 digital audio player. iconic behavior, honestly.

here's the vibe check tho: you have to do the prep work first, bestie. transferring your MP3/WMA/WAV files into the music directories, and creating M3U/M3U8/PLS playlist files under the music directories or the playlist directory β€” all of that must be done manually in advance. EasyH10 is not your personal assistant for that part, sorry πŸ’….

then EasyH10 swoops in and constructs a media database from the music files, and converts the playlist files into PLP/PLA playlist files β€” which are the ones the H10 player actually recognizes. slay.

Database construction generates a set of database files in the database directory, and it gets the media information (e.g., title name, artist name, album name, genre name, track number, etc.) from all MP3/WMA/WAV files found in the music directories. it's giving thorough.

among the database-related options, the update mode (that's the -U option) reads an existing media database, compares it with the current content of the music directories, inserts entries for music files that have been added or updated since the previous processing, and erases entries for music files that have been removed. so it's like a lil glow-up for your db ✨

EasyH10 can also force music tracks to be played in an order that a user specified with the -o option. main character energy: you pick the order. and the way it obtains the information of a music file is configurable too β€” see the -z option. iykyk.


Playlist conversion targets all M3U/M3U8/PLS playlist files located in the playlist directory (that's with the -P option) and/or the music directories (that's with the -M option).

for each target, it finds the music files referred by the playlist and writes out an iRiver-specific playlist file into the playlist directory, with the same file name. the converted playlist files will have a .plp extension for UMS players or .pla for MTP players. so you always know what you're looking at πŸ’–

the behavior when EasyH10 could not find a music file referred by a playlist can be specified with options -g, -f, and -k. three whole options for one lil problem, she's thorough.

🚨 bestie listen: do not put two or more playlist files sharing the same file name, okay? just don't. otherwise your converted playlist files will collide and it's gonna be a whole mess. avoid. periodt.

location specifies the path to the root directory where an H10 player is mounted as an external HDD.

three important directories β€” the database directory, the music directory, and the playlist directory β€” are determined automatically as relative paths from the root directory. as for these directories, go read the descriptions for options -d, -m, and -r, which configure the default values. they've got you 🫢

a model template must be specified for EasyH10 to identify the model of the iRiver H10 player to be managed. like, mandatory mandatory.

EasyH10 assumes a default template (easyh10.model) to be placed in the current directory, the root directory of the player, the easyh10/model directory from the player root directory, etc. and as for the complete list of directories for the default template, refer to the description of option -t, which specifies a model template manually. go look, it's all there 🌈


to be continued, bestie… more sections incoming πŸ’œ

✨ OPTIONS ✨

Okay bestie, this is the big one β€” every single flag, no skips, we're going the whole way πŸ’…


πŸ—„οΈ Database construction options:

  • -C, --construct β€” Throw out whatever database you've got and build a brand new one from the music files chillin' under the music directory. EasyH10 goes and enumerates all the MP3/WMA/WAV files in the music directories, pulls the media information (think title name, artist name, album name, genre name, track number, bitrate, sample rate, etc. β€” the whole lil info haul) out of the files it found, and generates a fresh set of database files in the database directory. Full glow-up, no leftovers πŸ’–
  • -U, --update β€” Update a media database from music files under the music directory. EasyH10 only grabs media info from the files that got updated or added since the last time the database was constructed. Lowkey the efficient queen πŸ‘‘
  • -o, --order=TYPE β€” Pick the playback and displaying order in the MUSIC mode. Heads up though: choosing an order except for default inserts a space just before the track titles. That space is a special character that controls the playback order, and you might not even notice it because the player uses a proportional font by default. Sneaky little gremlin of a space πŸ™ˆ
    • d, default β€” Leave it to the player to arrange tracks in a default order determined by the firmware. EasyH10 will not make any attempt to change the playback order. It'll be the same as what iriver plus and Windows Media Player 10 create. And if your H10 player is running on UMS 2.04 firmware, the playback order will be a numerical order of track numbers. No notes, it just vibes πŸ’«
    • t, tracktitle β€” Force an alphabetical order of track titles. Genuinely useful if you slapped the track number at the head of each track name (like "01 song name"). Sorting queen behavior πŸ‘‘
    • f, filename β€” Force an alphabetical order of file names. This one's for you if you put the track number at the head of each file name (like "01_songname.mp3"). Obsessed πŸŽ€
    • n, tracknumber β€” Force a numerical order of track numbers. The track number has to be associated with each music file for this to work, bestie. This is the most recommended option if you want to listen to your music as if you were listening to a CD. It arranges tracks in numerical order of track numbers even when you enter all-tracks-by-an-artist navigation. The way it just works πŸ˜­πŸ’–
    • c, complete β€” Force a random order (shuffle) in any and all cases. Your iRiver H10 player will literally turn into a shuffle-only player. Main character chaos energy πŸ”₯
    • a, album β€” Force a random order when playing music tracks in an album, and numerical order of track numbers when entering all-tracks-by-an-artist or all-tracks-with-a-genre navigation.
    • l, all β€” Force a random order when playing all titles, and numerical order of track numbers when playing music tracks in an album.
  • -z, --source=METHOD β€” Specify a method for obtaining media information. This option got introduced for the girlies who wanna make use of their directory layout instead of tag information. EasyH10 ships nine templates for specifying the source that the music info gets obtained from. Nine! Pick your fighter πŸ¦‹
    • m β€” Tag information in music files (DEFAULT). This is the recommended option if the tag is written into the music files properly. The safe, sensible, iconic choice πŸ’…
    • [g]p β€” Parse path names to obtain (genres and) artists. This template assumes that the directories in the music directory represent artist names. The other fields (i.e., album name, genre name, track title, and track number) get extracted from the tag.
    • [g]pa β€” Parse path names to obtain (genres,) artists, albums. This template assumes directories in the music directory represent artist names, and directory names from the artist directories represent album names. A path letter '/' in the album directories gets replaced with a space. Other fields come from the tag. She's thorough 🌸
    • [g]pa[n]t β€” Parse path names to obtain (genres,) artists, and albums; parse file names to obtain (numbers and) titles. This template assumes the file names represent track titles, on top of what the [g]pa template does. Specifying n assumes that two letters at the head of file names represent track numbers. It skips space and '_' letters followed by the two digits to extract the track titles. So precise, so iconic ⭐

🎧 Playlist conversion options:

  • -P, --playlist β€” Convert playlist files in the playlist directory. Setting this option converts M3U/M3U8/PLS files located in the playlist directory and writes respective PLA/PLP playlist files. Fresh playlist files, just for you πŸ’–
  • -M, --music β€” Convert playlist files in the music directories. Setting this option converts M3U/M3U8/PLS files located under the music directories (including sub-directories!) and writes the respective PLA/PLP files to the playlist directory.
  • -r, --reconvert β€” Overwrite the existing PLP/PLA playlist files to force the conversion. No fear, just overwrite πŸ”₯
  • -g, --guess-missing β€” Guess path names of missing music files in a playlist. Setting this option makes EasyH10 try to correct the location of the music files a playlist refers to, by trying possible combinations of the path to the music folder and the path to the music file that the playlist refers to. Detective mode activated πŸ•΅οΈβ™€οΈ
  • -f, --find-missing β€” Find path names of missing music files in a playlist. Setting this option tries to correct the location of a music file a playlist refers to by searching for that music file in the music directories that have the same file name. And if it finds two or more music files with the target file name, EasyH10 selects the one whose path name is the most similar to the original. Clever girl 🧚
  • -k, --skip-missing β€” Skip missing music files in a playlist. Setting this option tells EasyH10 to continue the playlist conversion using only the music files that are actually found in the H10 player. Just so you know, the default behavior for a missing music file is to cancel the conversion for the playlist. So this one is the forgiving route 🫢
  • -x, --regex-playlist β€” Enable Regular Expression Playlist (REP). A Regular Expression Playlist (REP) is a kind of smart playlist based on path/file names. EasyH10 generates a playlist with music files that are supported by the H10 player and match the condition(s) described in the *.rep file. If a music collection has the folder structure with (genre,) artist, and album names, EasyH10 can automatically create a playlist with all tracks in the player, by a specific artist, or by a more complicated condition. Big brain playlist energy 🧠✨
  • -l, --auto-shuffle β€” Shuffle music files in [(name).sfl*.(ext)] playlists. If a playlist filename contains the ".sfl" substring just before an extension (like hoge.sfl.m3u, fuga.sfl.pls, all.sfl.rep), EasyH10 automatically randomizes the order of the music tracks that playlist refers to. In other words, EasyH10 users can create a random playlist just by naming it with the "(name).sfl.(extension)" pattern. Name it and it slays πŸ’…

πŸ“» Tuner preset options:

  • -I, --import-tuner=FN β€” Import a tuner preset from a file. Heads up bestie: EasyH10 will discard the existing preset in the player if you don't pass the -a (--merge-tuner) option. So merge or lose it, your call πŸ’€
  • -E, --export-tuner=FN β€” Export the current tuner preset to a file. Same deal, different direction: EasyH10 will discard the existing preset in the local file if you don't pass the -a (--merge-tuner) option.
  • -a, --merge-tuner β€” Merge the current tuner preset with a file. The peacekeeper of the tuner world πŸ•ŠοΈ

πŸ‘‘ H10 Player model options:

  • -t, --model=MODEL β€” Specify a model template. EasyH10 uses this file to identify an iRiver H10 model. By default, model template files get copied into ${PREFIX}/share/easyh10/model by the installer. You may specify one of these template files. And if no model template is specified, EasyH10 finds a default template (easyh10.model) in the following directory/order: the current directory; ${H10ROOT}/easyh10/model; ${H10ROOT}/model; and ${H10ROOT}. So feel free to copy a template file to any of these locations and EasyH10 will read it automatically. Convenient much? 😌
  • --gen-model=MODEL,FW_MIN_VERSION,FW_MAX_VERSION β€” Create a model template from an existing database. > ⚠️ This option is only for EasyH10 developers. Do not use this option. Not for us, bestie, hands off πŸ™ˆ
  • -X, --install-model β€” Install the model template specified by the -t option into the player. This makes a copy of the template file as ${H10ROOT}/easyh10.model. Move-in day 🏠✨

πŸ“ H10 location options:

  • -s, --systempath=SYSTEM β€” Specify the path to the system files. This option overwrites the default value ${H10ROOT}/System.
  • -d, --dbpath=DATABASE β€” Specify the path to the database. This option overwrites the default value ${H10ROOT}/System/DATA.
  • -m, --musicpath=MUSIC β€” Specify the path to the music files. This option overwrites the default value ${H10ROOT}/Media/Music for UMS players, or ${H10ROOT}/Music for MTP players.
  • -p, --playlistpath=PLAYLIST β€” Specify the path to the playlist files. This option overwrites the default value ${H10ROOT}/Media/Playlist for UMS players, or ${H10ROOT}/Playlists for MTP players.

🌈 Language-specific options:

  • -e, --encoding=SE β€” Specify a character encoding used by the operating system. EasyH10 converts path/file names from the specified encoding into UCS-2 using iconv. The default value is determined by an automatic detection of the system character-encoding. She just knows 🌸
  • -w, --tagencoding=TE β€” Specify a character encoding for parsing non-unicode tags. EasyH10 converts non-unicode tags embedded in ID3v1, ID3v2, and Riff WAVE into UCS- using iconv. The default value is ISO-8859-1.
  • -b, --bidi β€” Store the field values in the database so the player can display Hebrew strings correctly (experimental). Ooh, experimental, we love a risk-taker πŸ§ͺπŸ’œ

πŸŽ€ Miscellaneous options:

  • -D, --dump β€” Output a database dump in plain text format. Peek behind the curtain πŸ‘€
  • -V, --version β€” Show the version number and exit.
  • -h, --help β€” Show this help message and exit.
  • -v, --verbose β€” Verbose mode. She talks a lot. Periodt πŸ’…

πŸ’‘ NOTE πŸ’‘

Okay bestie, listen up, this is the glow-up tip of the century: you should copy a firmware model template to the root of the device so you don't have to keep typing out the firmware every single time you run the tool. Like, imagine doing that every time?? exhausting. not the vibe. πŸ™ˆ

The example below is for the International version of the 5 GB player ✨

cp /usr/share/easyh10/model/H10Intl_5GB_FW2.04-2.05.model /mnt/usbdisk/easyh10.model

And depending on how you installed this thing (every install is a little different, iykyk), the .model files might be chillin' in:

  • /usr/share/easyh10/
  • /usr/local/share/easyh10/
  • or /usr/local/share/easyh10/model/

So peek in all three if it's giving "file not found" energy. πŸ¦‹


🌈 EXAMPLE 🌈

Okay so here's what it actually looks like in the wild, bestie. Real commands, real slay: πŸ’…

easyh10 -C -on /mnt/usbdisk

This one rebuilds a media database with track-number ordering for the H10 player mounted on /mnt/usbdisk. Clean. Simple. Iconic. ✨

easyh10 -U -ol -PMrf /mnt/usbdisk

And this one updates a media database with all-shuffle ordering πŸŽ€. It also reconverts playlist files in /mnt/usbdisk/Media/Music and /mnt/usbdisk/Media/Playlist/* into their respective PLP playlist files. She's doing a LOT and she's doing it flawlessly, periodt. πŸ‘‘


πŸ‘‘ AUTHORS πŸ‘‘

Shoutout to the legends who made this happen 🫢 (they ate, no crumbs):

Program author:

  • Nyaochi (nyaochi at users dot sourceforge dot net) πŸ’–

Manpage author:

  • Benjamin Seidenberg (astronut at dlgeek dot net) πŸ¦‹
  • Nyaochi (nyaochi at users dot sourceforge dot net) πŸ’–

Tag yourselves, you two deserve it. 🌸


πŸ” SEE ALSO πŸ”

Wanna go deeper?? Of course you do, you're a main character. πŸ˜­πŸ’œ

Visit EasyH10's web page at http://easyh10.sourceforge.net for more information. Go get that lore, bestie. 🌈⭐


And that's the whole page, babes β€” this manual is EasyH10 [CUI] 1.2, stamped October 2005, and yes she's vintage but she is still serving. Go forth, mount your player, and slay your media database. Love u, bye πŸ’–πŸŽ€πŸ¦‹