8000 GitHub - tantanGH/hmp3p: A simple high memory MP3 player for Human68k/X680x0 · GitHub
[go: up one dir, main page]

Skip to content
tantanGHPublic

About

A simple high memory MP3 player for Human68k/X680x0

Resources

Stars

3 stars

Watchers

1 watching

Forks

Latest commit

 

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

8000

HMP3P.X

A simple high memory MP3 player for Human68k/X680x0 + Mercury-UNIT


About This

Human68k ハイメモリ環境専用のMP3音楽プレーヤです。

320kbps(上限)のMP3データや、VBR(Variable Bit Rate)のMP3データを Mercury-UNITを使って 44.1kHz 16bit ステレオ PCM で再生可能です。アルバムアートワークおよびID3タグの表示に対応しています。

Mercury-UNITが無い場合は内蔵ADPCMでも再生できます。

実行ファイルは3つ同梱されています。

  • HMP3P.X ... 68000/68030/68040/68060 のすべてのMPUモードに対応
  • HMP3P030.X ... 68030専用
  • HMP3P060.X ... 68060専用

固定小数点演算しか行っていないため、FPUの有無や、FLOATドライバの種類によるパフォーマンスの違いはありません。

セレクタMP3SEL.Xと組み合わせての利用をおすすめします。

FLACデータの再生にはHFLAP.Xをご利用ください。


動作環境 (X68030実機 + 060turbo)

必ずコピーバックモードを使用してください。060turbo.sysに-cm1オプションを指定する必要があります。

MP3データファイルは直接ハイメモリに読み込むため、060turbo.sysに-ssオプションを指定する必要があります。

Mercury-UNITを使用する場合、現在の実装では44.1kHzフルレートでの再生はかなりギリギリです。もしバッファアンダーランが発生するようであれば、-b8など、バッファサイズを少し多めにとってみてください。

CONFIG.SYSにPROCESS=行の記述があると、Timer-D割り込みが使用されるため再生が間に合わなくなる場合があります。

060専用バイナリ HMP3P060.X を使用してください。

060専用バイナリは060turbo実機での安定再生のために最適化されています。000版/030版よりも初期バッファを多くとる設定になっています。


動作環境 (X68000実機 + PhantomX)

必ずライトバックモードを使用してください。

68030モードを使っている場合は 030専用バイナリ HMP3P030.X の利用を推奨します。

SCSIディスクから読み込む場合は TS16FILE.X を使用する必要があります。できるだけ WindrvXM/VDISK を使用してください。

逐次ディスク読み込みを積極的に行うため再生開始時間までの読み込み時間が短い、000版または030版バイナリの利用を推奨します。


動作環境 (エミュレータ)

XEiJ 68030/68060 でのみ確認しています。0.26.01.08以降でMercury-UNIT対応となりました。

MP3データファイルはHFSから読むことをお勧めします。

XEiJでPCM8PP.Xを使用する場合、常駐前に MKMU.R または MU4ON.X を実行する必要があります。


使い方

お使いの環境にあわせて適宜 HMP3P030.X または HMP3P060.X を HMP3P.X にリネームするなどしてください。

PCM8PP.X をあらかじめ常駐させておきます。内蔵ADPCMで再生する場合は PCM8A.X を使用してください。

    usage: hmp3p [options] <input-file.mp3>
    options:
         -l[n] ... loop count (none:endless, default:1)
         -v<n> ... volume (1-15, default:6)
         -q<n> ... mp3 quality (0:high, 1:normal, default:0)
         -t<n> ... album art display brightness (1-100, default:off)
         -b<n> ... buffer size [x 64KB] (3-32,default:4)
         -n    ... no progress bar
         -h    ... show help message

音割れを防ぐために、PCM8PP/PCM8Aの音量設定は少し小さめとなっています。

アルバムアートワークを表示させるには -t80 など、表示輝度パーセント値を指定して -t オプションを使ってください。 ベースラインJPEGとプログレッシブJPEGに対応しています。PNGには対応していません。

-q1 でハーフレート再生となり処理負担が減りますが、Mercury-UNIT V3.5以上が必須となります。

WindrvXM/VDISKドライブ以外のSCSIドライブ等からMP3を読み込む場合は TS16FILE.X を活用してください。060turboの場合は060turbo.sysに-ssオプションを指定してください。

再生中はバッファにデータが展開されるたびに > が表示されます。最後まで展開が終わると | が表示されます。もし再生データの方が進みが速くバッファを消費してしまった場合は * が表示されます。バッファアンダーランが発生した場合はメッセージが表示され、再生が一時停止します。-n オプションをつけるとプログレス表示を行いません。


MP3データ入手方法

Amazonのダウンロード販売を利用するのが一番手軽です。あるいはPC上でCDリッピングしたデータを何らかのエンコーダソフトを使って作成することもできます。

例: Apple Music を使い、CDから apple lossless 形式 (.m4a) でリッピングしたデータを ffmpeg を使ってタグ情報を含めて固定320kbpsで変換

    ffmpeg hogehoge.m4a -ab 320k -id3v2_version 3 hogehoge.mp3

例: 既存のMP3ファイルのアートワーク画像を差し替える

    ffmpeg -i hoge.mp3 -i hoge.jpg -map 0:a -map 1:v -c copy -disposition:1 attached_pic -id3v2_version 3 hoge_art.mp3

ライセンス

本ソフトはMP3データのデコードに libmad ライブラリ(GPLライセンス)を使用しているためGPLとなります。

ソースコードは https://github.com/tantanGH/hmp3p-src/ に置いてあります。


History

  • 1.1.0 (2026/06/16) ... 逐次読み込み処理の改善
  • 0.9.8 (2026/06/08) ... 030バイナリは68030専用とした。初期バッファリング中にSHIFTで抜けるとメモリリークしていたのを修正
  • 0.9.7 (2026/05/31) ... ハイメモリドライバの存在チェック修正
  • 0.9.6 (2026/05/04) ... アルバムアートワークの表示高速化。プログレッシブJPEG対応。逐次ディスク読み込み対応。一部コマンドラインオプション廃止。
  • 0.9.4 (2026/04/25) ... バッファの切れ目でブツノイズが入ることがあったのを修正。ID3 v2.2タグ表示に対応した。
  • 0.9.3 (2026/04/18) ... 再生開始時の処理改善
  • 0.9.2 (2026/04/04) ... TS16DRVp.X 環境で正常に動作しなくなっていたのを修正
  • 0.9.1 (2026/04/04) ... リピート再生時の不具合修正
  • 0.9.0 (2026/04/03) ... ビルド環境をelf2x68kに変更。アルバムアートワークが画面全体に収まるようにした。ハイメモリ消費を少し減らした。
  • 0.8.1 (2026/03/14) ... 68060版はデフォルトバッファサイズを5にした(68000/68030版は4のまま)
  • 0.8.0 (2026/03/13) ... 少し高速化し68060版は44.1kHzVBRデータのMercuryUNITで再生が060turbo実機でギリギリになった
  • 0.7.0 (2026/03/11) ... 少し高速化し68060版は44.1kHzVBRデータの内蔵ADPCM再生が060turbo実機で可能になった
  • 0.6.0 (2026/03/08) ... 680x0汎用バイナリ/68030以上専用バイナリ/68060専用バイナリの3つを同梱
  • 0.3.0 (2025/09/15) ... 000/030共通バイナリHMP3P.Xと030専用バイナリHMP3P030.Xの二つを同梱
  • 0.2.7 (2024/03/15) ... アボート時にPCM8Aの再生が停止できていなかったのを修正
  • 0.2.6 (2024/03/08) ... チェーンテーブルの最後のメモリブロックの開放に失敗することがあったのを修正
  • 0.2.5 (2024/03/03) ... デフォルトのバッファ数を6から4に変更。プログレスバー非表示オプション追加
  • 0.2.4 (2024/03/02) ... アルバムアートワーク表示に対応した
  • 0.2.3 (2024/03/01) ... PCM8PPの代わりにPCM8Aを使うことで内蔵ADPCMでの再生に対応した
  • 0.2.2 (2024/03/01) ... 16MB超のMP3ファイルの読み込みが正しくできていなかったのを修正
  • 0.2.1 (2024/02/29) ... 48.0kHzのデータ再生に対応した
  • 0.2.0 (2024/02/29) ... 初版

About

A simple high memory MP3 player for Human68k/X680x0

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

0