Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect results when using https://github.com/sfz/tests/ #5

Open
kmturley opened this issue Jan 12, 2022 · 8 comments
Open

Incorrect results when using https://github.com/sfz/tests/ #5

kmturley opened this issue Jan 12, 2022 · 8 comments

Comments

@kmturley
Copy link
Contributor

Thanks for creating this great tool. I downloaded https://github.com/sfz/tests/ and was using it to test your tool:

git clone https://github.com/sfz/tests.git
cd ./tests
sfzlint "./sfz1 basic tests/01 - Amp LFO/01 - amp lfo freq.sfz" --spec-version=v1
sfz1 basic tests/01 - Amp LFO/01 - amp lfo freq.sfz:8:30:E opcode spec v2 is not one of {'v1'}
sfz1 basic tests/01 - Amp LFO/01 - amp lfo freq.sfz:8:46:E opcode spec v2 is not one of {'v1'}
sfz1 basic tests/01 - Amp LFO/01 - amp lfo freq.sfz:8:60:E opcode spec v2 is not one of {'v1'}

But when checking the opcodes on line 8 they are all valid v1 codes:

sample=..\..\samples\440.wav loopstart=12629 loopend=56728 loopmode=loop_continuous

https://github.com/sfz/tests/blob/master/sfz1%20basic%20tests/01%20-%20Amp%20LFO/01%20-%20amp%20lfo%20freq.sfz

Likewise if I check a v2 file:

sfzlint "./sfz2 basic tests/00 - syntax/00 - syntax introduction.sfz" --spec-version=v2
sfz2 basic tests/00 - syntax/00 - syntax introduction.sfz:27:2:W header spec v1 not in {'v2'} (region)
sfz2 basic tests/00 - syntax/00 - syntax introduction.sfz:27:10:E opcode spec v1 is not one of {'v2'}

line 27 has valid v2 codes:

<region> sample=..\..\samples\440.wav

Looks like a bug?

@redtide
Copy link
Contributor

redtide commented Jan 12, 2022

Note that those loop* opcodes were specified as aliases, might be some problem with alias handling?
region and sample are v1, it's the test file in the (technically speaking) wrong place, in practice v1 opcodes are also part of v2, just not the other way round.

@jisaacstone
Copy link
Owner

the above test passes with the latest version, but there are some failures.

Will take a deeper look later, but for now

  • lokey and hikey should accept note names as well as numbers
  • not sure what -1 is supposed to indicate?
  • range failures I will leave in, as the ranges come from the syntax.yml and are not maintained by this tool
  • 06 - filter eg one octave test.sfz gives a value of 1w for fileg_hold. I don't know what the w means
sfz1 basic tests/01 - Amp LFO/03 - amp lfo depth.sfz:9:28:W 12 not in range -10 to 10 (amplfo_depth)
sfz1 basic tests/01 - Amp LFO/07 - amp lfo fade.sfz:9:59:W 12 not in range -10 to 10 (amplfo_depth)
sfz1 basic tests/03 - Filter LFO/02 - filter lfo freq cc1 and after.sfz:9:28:W 2400 not in range -1200 to 1200 (fillfo_depth)
sfz1 basic tests/03 - Filter LFO/03 - filter lfo depth.sfz:9:28:W 2100 not in range -1200 to 1200 (fillfo_depth)
sfz1 basic tests/05 - Filter EG/06 - filter eg one octave test.sfz:9:44:W cannot compare 1w with 0, 100 (fileg_hold)
sfz1 basic tests/05 - Filter EG/13 - filter eg vel2release.sfz:8:106:W duplicate opcode
sfz1 basic tests/Unsorted/amp eg on release trigger.sfz:12:8:W file not found "sfz1 basic tests/Unsorted/110.wav" (sample)
sfz1 basic tests/Unsorted/amp velo tracking.sfz:15:25:W 10 not in range -144 to 6 (volume)
sfz1 basic tests/Unsorted/exclusive regions cut one.sfz:10:25:W file not found "sfz1 basic tests/Unsorted/110.wav" (sample)
sfz1 basic tests/Unsorted/exclusive regions cut one.sfz:14:27:W file not found "sfz1 basic tests/Unsorted/440.wav" (sample)
sfz1 basic tests/Unsorted/exclusive regions cut one.sfz:19:27:W file not found "sfz1 basic tests/Unsorted/440.wav" (sample)
sfz1 basic tests/Unsorted/exclusive regions uni.sfz:9:25:W file not found "sfz1 basic tests/Unsorted/110.wav" (sample)
sfz1 basic tests/Unsorted/exclusive regions uni.sfz:13:27:W file not found "sfz1 basic tests/Unsorted/440.wav" (sample)
sfz1 basic tests/Unsorted/filter 1p hpf.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter 1p lpf.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter 2p bpf.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter 2p brf.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter 2p hpf.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter 2p lpf.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter dynamic cutoff cc1 and channel after hpf_1p.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter dynamic cutoff cc1 and channel after hpf_2p.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter dynamic cutoff cc1 and channel after lpf_1p .sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter dynamic cutoff cc1 and channel after lpf_2p.sfz:3:24:W 12000 not in range -9600 to 9600 (cutoff_ccN)
sfz1 basic tests/Unsorted/filter keytrack negative.sfz:8:63:W 12 not in range -144 to 6 (volume)
sfz1 basic tests/Unsorted/filter keytrack negative.sfz:9:31:W -100 not in range 0 to 1200 (fil_keytrack)
sfz1 basic tests/Unsorted/note delay.sfz:8:8:W file not found "sfz1 basic tests/Unsorted/440.wav" (sample)
sfz1 basic tests/Unsorted/offmode mode fast.sfz:10:9:W unknown opcode (offmode)
sfz1 basic tests/Unsorted/offmode mode normal.sfz:10:9:W unknown opcode (offmode)
sfz1 basic tests/Unsorted/on cc.sfz:10:7:W -1 not in range 0 to 127 (lokey)
sfz1 basic tests/Unsorted/on cc.sfz:10:16:W -1 not in range 0 to 127 (hikey)
sfz1 basic tests/Unsorted/on cc.sfz:15:7:W -1 not in range 0 to 127 (lokey)
sfz1 basic tests/Unsorted/on cc.sfz:15:16:W -1 not in range 0 to 127 (hikey)
sfz1 basic tests/Unsorted/on cc.sfz:20:7:W -1 not in range 0 to 127 (lokey)
sfz1 basic tests/Unsorted/on cc.sfz:20:16:W -1 not in range 0 to 127 (hikey)
sfz1 basic tests/Unsorted/on cc.sfz:25:7:W -1 not in range 0 to 127 (lokey)
sfz1 basic tests/Unsorted/on cc.sfz:25:16:W -1 not in range 0 to 127 (hikey)
sfz1 basic tests/Unsorted/release trigger.sfz:13:46:W unknown opcode (rtdecay)
sfz2 basic tests/00 - syntax/04 - syntax group.sfz:34:16:W cannot compare c4 with 0, 127 (lokey)
sfz2 basic tests/00 - syntax/04 - syntax group.sfz:35:16:W cannot compare d4 with 0, 127 (lokey)
sfz2 basic tests/00 - syntax/04 - syntax group.sfz:36:16:W cannot compare e4 with 0, 127 (lokey)
sfz2 basic tests/00 - syntax/04 - syntax group.sfz:40:16:W cannot compare c5 with 0, 127 (lokey)
sfz2 basic tests/00 - syntax/04 - syntax group.sfz:52:16:W cannot compare c4 with 0, 127 (lokey)
sfz2 basic tests/00 - syntax/04 - syntax group.sfz:53:16:W cannot compare d4 with 0, 127 (lokey)
sfz2 basic tests/00 - syntax/04 - syntax group.sfz:54:16:W cannot compare e4 with 0, 127 (lokey)
sfz2 basic tests/00 - syntax/04 - syntax group.sfz:58:16:W cannot compare c5 with 0, 127 (lokey)
sfz2 basic tests/00 - syntax/09 - unknown opcode.sfz:15:1:W unknown opcode (engine_color)
sfz2 basic tests/00 - syntax/09 - unknown opcode.sfz:15:22:W unknown opcode (engine_tone)
sfz2 basic tests/00 - syntax/10 - unknown opcode fx.sfz:17:1:W unknown opcode (delay_hyperbolization)
sfz2 basic tests/00 - syntax/11 - unknown opcode curve.sfz:15:24:E Unexpected token Token('REST_OF_LINE', '332=1') at line 15, column 24.
sfz2 basic tests/01 - delay, offset/02 - region delay on velocity.sfz:20:23:W -2 not in range 0 to 100 (delay_onccN)
sfz2 basic tests/02 - input controls/09 - region select on sw if last.sfz:21:50:W cannot compare c3 with 0, 127 (sw_last)
sfz2 basic tests/02 - input controls/10 - region select - sw default.sfz:18:50:W cannot compare c3 with 0, 127 (sw_last)
sfz2 basic tests/02 - input controls/16 - region trigger on cc.sfz:16:15:W -1 not in range 0 to 127 (lokey)
sfz2 basic tests/02 - input controls/16 - region trigger on cc.sfz:16:24:W -1 not in range 0 to 127 (hikey)
sfz2 basic tests/02 - input controls/17 - region trigger start-stop on cc.sfz:13:7:W -1 not in range 0 to 127 (lokey)
sfz2 basic tests/02 - input controls/17 - region trigger start-stop on cc.sfz:13:16:W -1 not in range 0 to 127 (hikey)
sfz2 basic tests/03 - release triggers/03 - release trigger not on sustain switch.sfz:14:33:W duplicate opcode
sfz2 basic tests/03 - release triggers/04 - release trigger on sustain switch.sfz:14:33:W duplicate opcode
sfz2 basic tests/03 - release triggers/08 - release trigger and key switches.sfz:40:5:W -1 not in range 0 to 4294967296 (end)
sfz2 basic tests/04 - voice groups/01 - polyphony.sfz:26:17:W cannot compare a3 with 0, 127 (pitch_keycenter)
sfz2 basic tests/04 - voice groups/02 - polyphony note self mask.sfz:23:17:W cannot compare a3 with 0, 127 (pitch_keycenter)
sfz2 basic tests/04 - voice groups/03 - polyphony note no self mask.sfz:20:17:W cannot compare a3 with 0, 127 (pitch_keycenter)
sfz2 basic tests/04 - voice groups/04 - exclusive regions bi.sfz:18:7:W cannot compare b3 with 0, 127 (hikey)
sfz2 basic tests/04 - voice groups/14 - sustain and sostenuto switch off.sfz:17:17:W cannot compare a3 with 0, 127 (pitch_keycenter)
sfz2 basic tests/05 - pitch, pitch bend/05 - pitch on cc bipolar.sfz:22:44:W no corresponding curve_index found (pitch_curveccN)
sfz2 basic tests/05 - pitch, pitch bend/06 - pitch on cc digital.sfz:19:44:W no corresponding curve_index found (pitch_curveccN)
sfz2 basic tests/05 - pitch, pitch bend/07 - pitch on cc sawed.sfz:25:44:W no corresponding curve_index found (pitch_curveccN)
sfz2 basic tests/05 - pitch, pitch bend/07 - pitch on cc sawed.sfz:26:44:W no corresponding curve_index found (pitch_curveccN)
sfz2 basic tests/05 - pitch, pitch bend/07 - pitch on cc sawed.sfz:27:44:W no corresponding curve_index found (pitch_curveccN)
sfz2 basic tests/05 - pitch, pitch bend/08 - pitch on cc tri-state.sfz:24:44:W no corresponding curve_index found (pitch_curveccN)
sfz2 basic tests/07 - noise/01 - noise stereo.sfz:20:8:W file not found "/tmp/suite/sfz2 basic tests/07 - noise/../../samples/stereo silence.wav" (sample)
sfz2 basic tests/07 - noise/02 - noise mono level on cc.sfz:35:20:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/02 - noise mono level on cc.sfz:36:20:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/02 - noise mono level on cc.sfz:37:20:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/02 - noise mono level on cc.sfz:37:24:W unknown opcode (noise_level_stepccN)
sfz2 basic tests/07 - noise/02 - noise mono level on cc.sfz:38:20:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/02 - noise mono level on cc.sfz:39:21:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/03 - noise mono step on cc.sfz:34:24:W unknown opcode (noise_step_smoothccN)
sfz2 basic tests/07 - noise/03 - noise mono step on cc.sfz:35:24:W unknown opcode (noise_step_smoothccN)
sfz2 basic tests/07 - noise/03 - noise mono step on cc.sfz:36:24:W unknown opcode (noise_step_stepccN)
sfz2 basic tests/07 - noise/03 - noise mono step on cc.sfz:37:24:W unknown opcode (noise_step_smoothccN)
sfz2 basic tests/07 - noise/03 - noise mono step on cc.sfz:38:24:W unknown opcode (noise_step_smoothccN)
sfz2 basic tests/07 - noise/06 - noise stereo level on cc.sfz:27:8:W file not found "/tmp/suite/sfz2 basic tests/07 - noise/../../samples/stereo silence.wav" (sample)
sfz2 basic tests/07 - noise/06 - noise stereo level on cc.sfz:35:20:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/06 - noise stereo level on cc.sfz:36:20:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/06 - noise stereo level on cc.sfz:37:20:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/06 - noise stereo level on cc.sfz:37:24:W unknown opcode (noise_level_stepccN)
sfz2 basic tests/07 - noise/06 - noise stereo level on cc.sfz:38:20:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/06 - noise stereo level on cc.sfz:39:21:W 48 not in range -96 to 24 (noise_level_onccN)
sfz2 basic tests/07 - noise/07 - noise stereo step on cc.sfz:26:8:W file not found "/tmp/suite/sfz2 basic tests/07 - noise/../../samples/stereo silence.wav" (sample)
sfz2 basic tests/07 - noise/07 - noise stereo step on cc.sfz:34:24:W unknown opcode (noise_step_smoothccN)
sfz2 basic tests/07 - noise/07 - noise stereo step on cc.sfz:35:24:W unknown opcode (noise_step_smoothccN)
sfz2 basic tests/07 - noise/07 - noise stereo step on cc.sfz:36:24:W unknown opcode (noise_step_stepccN)
sfz2 basic tests/07 - noise/07 - noise stereo step on cc.sfz:37:24:W unknown opcode (noise_step_smoothccN)
sfz2 basic tests/07 - noise/07 - noise stereo step on cc.sfz:38:24:W unknown opcode (noise_step_smoothccN)
sfz2 basic tests/07 - noise/08 - noise stereo tone on cc.sfz:20:8:W file not found "/tmp/suite/sfz2 basic tests/07 - noise/../../samples/stereo silence.wav" (sample)
sfz2 basic tests/07 - noise/09 - noise stereo hpf_1p.sfz:20:8:W file not found "/tmp/suite/sfz2 basic tests/07 - noise/../../samples/stereo silence.wav" (sample)
sfz2 basic tests/08 - filters/03 - filter cutoff keytrack negative.sfz:18:31:W -100 not in range 0 to 1200 (fil_keytrack)
sfz2 basic tests/08 - filters/07 - cutoff as note names.sfz:11:11:W 96 not in range 0 to 40 (resonance)
sfz2 basic tests/08 - filters/12 - filter resonance on cc smooth.sfz:26:18:W 50 not in range 0 to 40 (resonance_onccN)
sfz2 basic tests/08 - filters/12 - filter resonance on cc smooth.sfz:27:18:W 50 not in range 0 to 40 (resonance_onccN)
sfz2 basic tests/08 - filters/12 - filter resonance on cc smooth.sfz:28:18:W 50 not in range 0 to 40 (resonance_onccN)
sfz2 basic tests/08 - filters/12 - filter resonance on cc smooth.sfz:29:18:W 50 not in range 0 to 40 (resonance_onccN)
sfz2 basic tests/08 - filters/12 - filter resonance on cc smooth.sfz:30:19:W 50 not in range 0 to 40 (resonance_onccN)
sfz2 basic tests/08 - filters/28 - filter apf_1p noise mono.sfz:15:25:W 20000 not in range -9600 to 9600 (cutoff_onccN)
sfz2 basic tests/08 - filters/29 - filter apf_1p noise stereo.sfz:15:25:W 20000 not in range -9600 to 9600 (cutoff_onccN)
sfz2 basic tests/08 - filters/34 - filter bpf_2p noise mono.sfz:21:47:W 12 not in range -144 to 6 (volume)
sfz2 basic tests/08 - filters/35 - filter bpf_2p noise stereo.sfz:21:47:W 12 not in range -144 to 6 (volume)
sfz2 basic tests/08 - filters/38 - filter spl_2p noise mono.sfz:24:14:W 12000 not in range -9600 to 9600 (cutoff_onccN)
sfz2 basic tests/08 - filters/38 - filter spl_2p noise mono.sfz:25:10:W spl_2p not one of ['lpf_1p', 'hpf_1p', 'lpf_2p', 'hpf_2p', 'bpf_2p', 'brf_2p', 'bpf_1p', 'brf_1p', 'apf_1p', 'lpf_2p_sv', 'hpf_2p_sv', 'bpf_2p_sv', 'brf_2p_sv', 'pkf_2p', 'lpf_4p', 'hpf_4p', 'lpf_6p', 'hpf_6p', 'comb', 'pink', 'lsh', 'hsh', 'peq'] (fil_type)
sfz2 basic tests/08 - filters/39 - filter spl_2p noise stereo.sfz:24:14:W 12000 not in range -9600 to 9600 (cutoff_onccN)
sfz2 basic tests/08 - filters/39 - filter spl_2p noise stereo.sfz:25:10:W spl_2p not one of ['lpf_1p', 'hpf_1p', 'lpf_2p', 'hpf_2p', 'bpf_2p', 'brf_2p', 'bpf_1p', 'brf_1p', 'apf_1p', 'lpf_2p_sv', 'hpf_2p_sv', 'bpf_2p_sv', 'brf_2p_sv', 'pkf_2p', 'lpf_4p', 'hpf_4p', 'lpf_6p', 'hpf_6p', 'comb', 'pink', 'lsh', 'hsh', 'peq'] (fil_type)
sfz2 basic tests/08 - filters/60 - filter comb noise mono.sfz:14:28:W 20000 not in range -9600 to 9600 (cutoff_onccN)
sfz2 basic tests/08 - filters/60 - filter comb noise mono.sfz:14:44:W 90 not in range 0 to 40 (resonance)
sfz2 basic tests/09 - drive/00 - drive mono.sfz:14:1:W unknown opcode (drive_shape)
sfz2 basic tests/09 - drive/01 - drive stereo.sfz:14:1:W unknown opcode (drive_shape)
sfz2 basic tests/09 - drive/02 - drive mono on cc.sfz:15:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/09 - drive/02 - drive mono on cc.sfz:16:1:W unknown opcode (drive_filter)
sfz2 basic tests/09 - drive/02 - drive mono on cc.sfz:17:1:W unknown opcode (drive_tone_onccN)
sfz2 basic tests/09 - drive/03 - drive stereo on cc.sfz:15:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/09 - drive/03 - drive stereo on cc.sfz:16:1:W unknown opcode (drive_filter)
sfz2 basic tests/09 - drive/03 - drive stereo on cc.sfz:17:1:W unknown opcode (drive_tone_onccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:22:1:W unknown opcode (drive_filter)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:24:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:24:24:W unknown opcode (drive_shape_smoothccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:25:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:25:24:W unknown opcode (drive_shape_smoothccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:26:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:26:24:W unknown opcode (drive_shape_stepccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:27:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:27:24:W unknown opcode (drive_shape_smoothccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:28:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/09 - drive/04 - drive shape on cc smooth .sfz:28:25:W unknown opcode (drive_shape_smoothccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:21:1:W unknown opcode (drive_shape)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:22:1:W unknown opcode (drive_filter)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:24:1:W unknown opcode (drive_tone_onccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:24:24:W unknown opcode (drive_tone_smoothccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:25:1:W unknown opcode (drive_tone_onccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:25:24:W unknown opcode (drive_tone_smoothccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:26:1:W unknown opcode (drive_tone_onccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:26:24:W unknown opcode (drive_tone_stepccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:27:1:W unknown opcode (drive_tone_onccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:27:24:W unknown opcode (drive_tone_smoothccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:28:1:W unknown opcode (drive_tone_onccN)
sfz2 basic tests/09 - drive/05 - drive tone on cc smooth .sfz:28:25:W unknown opcode (drive_tone_smoothccN)
sfz2 basic tests/09 - drive/06 - drive on velocity.sfz:16:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/09 - drive/07 - drive on after.sfz:14:1:W unknown opcode (drive_shape_onccN)
sfz2 basic tests/11 - compressor, gate/00 - compressor test mono.sfz:12:8:W file not found "/tmp/suite/sfz2 basic tests/11 - compressor, gate/../../samples/compressor test mono.wav" (sample)
sfz2 basic tests/11 - compressor, gate/01 - compressor test stereo.sfz:13:8:W file not found "/tmp/suite/sfz2 basic tests/11 - compressor, gate/../../samples/compressor test stereo.wav" (sample)
sfz2 basic tests/11 - compressor, gate/02 - compressor test link.sfz:13:8:W file not found "/tmp/suite/sfz2 basic tests/11 - compressor, gate/../../samples/compressor test link.wav" (sample)
sfz2 basic tests/11 - compressor, gate/03 - gate test mono.sfz:13:8:W file not found "/tmp/suite/sfz2 basic tests/11 - compressor, gate/../../samples/compressor test mono.wav" (sample)
sfz2 basic tests/11 - compressor, gate/04 - gate test stereo.sfz:13:8:W file not found "/tmp/suite/sfz2 basic tests/11 - compressor, gate/../../samples/compressor test stereo.wav" (sample)
sfz2 basic tests/11 - compressor, gate/05 - gate test link.sfz:13:8:W file not found "/tmp/suite/sfz2 basic tests/11 - compressor, gate/../../samples/compressor test link.wav" (sample)
sfz2 basic tests/12 - amplifier/10 - phase cancel.sfz:17:8:W 30 not in range -144 to 6 (volume)
sfz2 basic tests/12 - amplifier/11 - pan.sfz:19:16:W cannot compare b3 with 0, 127 (hikey)
sfz2 basic tests/12 - amplifier/11 - pan.sfz:20:14:W cannot compare c4 with 0, 127 (key)
sfz2 basic tests/12 - amplifier/15 - pan cc73 bipolar.sfz:19:30:W no corresponding curve_index found (pan_curveccN)
sfz2 basic tests/12 - amplifier/20 - width.sfz:38:23:W 120 not in range -100 to 100 (width)
sfz2 basic tests/13 - amplifier eg (main)/13 - amp eg on release trigger.sfz:14:33:W duplicate opcode
sfz2 basic tests/14 - crossfade/06 - xfade on keyboard - equal gain.sfz:18:21:W cannot compare c4 with 0, 127 (xfin_lokey)
sfz2 basic tests/14 - crossfade/07 - xfade on keyboard - equal power.sfz:18:21:W cannot compare c4 with 0, 127 (xfin_lokey)
sfz2 basic tests/14 - crossfade/07 - xfade on keyboard - equal power.sfz:18:36:W cannot compare c#5 with 0, 127 (xfin_hikey)
sfz2 basic tests/15 - effect sends/00 - effect sends (turn fx on).sfz:35:13:W hall not one of ['chamber', 'large_hall', 'large_room', 'mid_hall', 'mid_room', 'small_hall', 'small_room'] (reverb_type)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:11:1:W unknown opcode (fxN_return)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:12:1:W unknown opcode (fxN_return)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:13:1:W unknown opcode (fxN_output)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:14:1:W unknown opcode (fxN_output)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:15:1:W unknown opcode (input)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:16:1:W unknown opcode (dry)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:17:1:W unknown opcode (wet)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:26:1:W unknown opcode (input)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:27:1:W unknown opcode (dry)
sfz2 basic tests/15 - effect sends/02 - chap17l.sfz:28:1:W unknown opcode (wet)
sfz2 basic tests/16 - loops/09 - loop tune.sfz:16:8:W file not found "/tmp/suite/sfz2 basic tests/16 - loops/../../samples/mono 400 10s with 3 loops.wav" (sample)
sfz2 basic tests/16 - loops/09 - loop tune.sfz:17:1:W unknown opcode (loop_tuneN)
sfz2 basic tests/16 - loops/09 - loop tune.sfz:18:1:W unknown opcode (loop_tuneN)
sfz2 basic tests/16 - loops/09 - loop tune.sfz:19:1:W unknown opcode (loop_tuneN)
sfz2 basic tests/16 - loops/19 - sample count, reverse and loops.sfz:15:8:W file not found "/tmp/suite/sfz2 basic tests/16 - loops/../../samples/loop tests - three loops overlap.wav" (sample)
sfz2 basic tests/17 - LFO/09 - lfo01_step_oncc smooth.sfz:15:25:W unknown opcode (lfoN_stepX_smoothccY)
sfz2 basic tests/17 - LFO/09 - lfo01_step_oncc smooth.sfz:16:25:W unknown opcode (lfoN_stepX_smoothccY)
sfz2 basic tests/17 - LFO/09 - lfo01_step_oncc smooth.sfz:17:25:W unknown opcode (lfoN_stepX_smoothccY)
sfz2 basic tests/17 - LFO/09 - lfo01_step_oncc smooth.sfz:18:25:W unknown opcode (lfoN_stepX_smoothccY)
sfz2 basic tests/17 - LFO/09 - lfo01_step_oncc smooth.sfz:21:25:W unknown opcode (lfoN_stepX_stepccY)
sfz2 basic tests/17 - LFO/09 - lfo01_step_oncc smooth.sfz:22:25:W unknown opcode (lfoN_stepX_stepccY)
sfz2 basic tests/17 - LFO/09 - lfo01_step_oncc smooth.sfz:23:25:W unknown opcode (lfoN_stepX_stepccY)
sfz2 basic tests/17 - LFO/09 - lfo01_step_oncc smooth.sfz:24:25:W unknown opcode (lfoN_stepX_stepccY)
sfz2 basic tests/17 - LFO/10 - lfo01_step_oncc.sfz:15:25:W unknown opcode (lfoN_stepX_smoothccY)
sfz2 basic tests/17 - LFO/10 - lfo01_step_oncc.sfz:17:1:W unknown opcode (lfoN_stepX_on)
sfz2 basic tests/17 - LFO/10 - lfo01_step_oncc.sfz:18:1:W unknown opcode (lfoN_stepX_on)
sfz2 basic tests/17 - LFO/10 - lfo01_step_oncc.sfz:19:1:W unknown opcode (lfoN_stepX_on)
sfz2 basic tests/17 - LFO/10 - lfo01_step_oncc.sfz:20:1:W unknown opcode (lfoN_stepX_on)
sfz2 basic tests/17 - LFO/34 - lfo01_resonance.sfz:10:26:W duplicate opcode
sfz2 basic tests/17 - LFO/35 - lfo01_resonance_oncc.sfz:11:26:W duplicate opcode
sfz2 basic tests/17 - LFO/40 - lfo01_eq1bw.sfz:11:1:W duplicate opcode
sfz2 basic tests/17 - LFO/60 - multi lfo basic test.sfz:16:1:W unknown opcode (lfoN_wave2)
sfz2 basic tests/18 - EG/03 - eg01_loop.sfz:13:13:W unknown opcode (egN_loop_shape)
sfz2 basic tests/18 - EG/04 - eg01_loop count.sfz:13:13:W unknown opcode (egN_loop_shape)
sfz2 basic tests/18 - EG/26 - eg01_drive.sfz:21:1:W unknown opcode (egN_drive)
sfz2 basic tests/18 - EG/27 - eg01_drive_oncc.sfz:21:1:W unknown opcode (egN_drive_onccX)
sfz2 basic tests/18 - EG/27 - eg01_drive_oncc.sfz:22:1:W unknown opcode (egN_drive_onccX)
sfz2 basic tests/18 - EG/27 - eg01_drive_oncc.sfz:23:1:W unknown opcode (egN_drive_onccX)
sfz2 basic tests/18 - EG/27 - eg01_drive_oncc.sfz:24:1:W unknown opcode (egN_drive_onccX)
sfz2 basic tests/18 - EG/27 - eg01_drive_oncc.sfz:25:1:W unknown opcode (egN_drive_onccX)
sfz2 basic tests/18 - EG/28 - eg01_eq1freq.sfz:13:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/29 - eg01_eq1freq_oncc.sfz:13:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/30 - eg01_eq1bw.sfz:13:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/31 - eg01_eq1bw_oncc.sfz:13:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/34 - eg01_eq2freq.sfz:13:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/36 - eg01_eq2bw.sfz:13:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/40 - eg01_eq3freq.sfz:13:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/42 - eg01_eq3bw.sfz:13:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/46 - eg01 all eq freq _oncc.sfz:16:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/46 - eg01 all eq freq _oncc.sfz:17:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/46 - eg01 all eq freq _oncc.sfz:18:10:W 30 not in range -96 to 24 (eqN_gain)
sfz2 basic tests/18 - EG/99 - eg01_pitch (tool generated).sfz:12:1:E Unexpected token Token('REST_OF_LINE', '/------------------------------------------------------------------------------') at line 12, column 1.
sfz2 basic tests/19 - glide/00 - glidetime pitch.sfz:16:1:W unknown opcode (egN_glide_time)
sfz2 basic tests/19 - glide/00 - glidetime pitch_davidv.sfz:17:1:W unknown opcode (egN_glide_speed)
sfz2 basic tests/19 - glide/01 - glidespeed pitch.sfz:16:1:W unknown opcode (egN_glide_speed)
sfz2 basic tests/19 - glide/02 - glidespeed time on cc pitch.sfz:16:1:W unknown opcode (egN_glide_speed)
sfz2 basic tests/19 - glide/03 - glide for 2 points eg pitch.sfz:16:17:W duplicate opcode
sfz2 basic tests/19 - glide/03 - glide for 2 points eg pitch.sfz:16:30:W duplicate opcode
sfz2 basic tests/19 - glide/03 - glide for 2 points eg pitch.sfz:17:1:W unknown opcode (egN_glide_speed)
sfz2 basic tests/19 - glide/04 - glide for 2 points level on cc pitch.sfz:16:22:W duplicate opcode
sfz2 basic tests/19 - glide/04 - glide for 2 points level on cc pitch.sfz:16:35:W duplicate opcode
sfz2 basic tests/19 - glide/04 - glide for 2 points level on cc pitch.sfz:17:1:W unknown opcode (egN_glide_speed)
sfz2 basic tests/20 - envelope follower/00 - envelope follower pitch.sfz:8:8:W file not found "/tmp/suite/sfz2 basic tests/20 - envelope follower/../../samples/fade out.wav" (sample)
sfz2 basic tests/20 - envelope follower/00 - envelope follower pitch.sfz:9:1:W unknown opcode (egN_followattack)
sfz2 basic tests/20 - envelope follower/00 - envelope follower pitch.sfz:9:21:W unknown opcode (egN_followrelease)
sfz2 basic tests/20 - envelope follower/00 - envelope follower pitch.sfz:9:44:W unknown opcode (egN_followspeed)
sfz2 basic tests/20 - envelope follower/01 - envelope follower filter.sfz:8:8:W file not found "/tmp/suite/sfz2 basic tests/20 - envelope follower/../../samples/Mono_16_44100.wav" (sample)
sfz2 basic tests/20 - envelope follower/01 - envelope follower filter.sfz:11:1:W unknown opcode (egN_follow_attack)
sfz2 basic tests/20 - envelope follower/01 - envelope follower filter.sfz:11:22:W unknown opcode (egN_follow_release)
sfz2 basic tests/20 - envelope follower/01 - envelope follower filter.sfz:12:1:W unknown opcode (egN_follow_speed)
sfz2 basic tests/20 - envelope follower/01 - envelope follower filter.sfz:13:1:W unknown opcode (egN_follow_gain)

@redtide
Copy link
Contributor

redtide commented Feb 1, 2022

  • not sure what -1 is supposed to indicate?

It's documented as a v2 feature:

In the SFZ 1 specification, the allowed range is 0 to 127. However, SFZ 2 additionally includes the possibility to set lokey and hikey to -1, to prevent a region from being triggered by any keys.

  • 06 - filter eg one octave test.sfz gives a value of 1w for fileg_hold. I don't know what the w means

might be a typo?

@kmturley
Copy link
Contributor Author

kmturley commented Feb 2, 2022

Which version is latest? The results above are from using version 0.1.2

@redtide
Copy link
Contributor

redtide commented Feb 2, 2022

@kmturley
Copy link
Contributor Author

If I do:

pip3 install git+git://github.com/jisaacstone/[email protected]
git clone https://github.com/sfz/tests.git
cd ./tests
sfzlint "./sfz1 basic tests/01 - Amp LFO/01 - amp lfo freq.sfz" --spec-version=v1
sfzlint "./sfz2 basic tests/00 - syntax/00 - syntax introduction.sfz" --spec-version=v2

I still see the same issues. If I omit the spec-version parameter they pass

sfzlint "./sfz1 basic tests/01 - Amp LFO/01 - amp lfo freq.sfz"
sfzlint "./sfz2 basic tests/00 - syntax/00 - syntax introduction.sfz"

Also FYI the v0.1.3 still has the old version number in the setup.py
https://github.com/jisaacstone/sfzlint/blob/v0.1.3/setup.py#L14

@jisaacstone
Copy link
Owner

OK so there was a problem with the pickle file being cached. I added the --no-pickle option to force that from the command line. Should also be cleaned up when any setup commands are run.

Also fixed lokey and hikey to accept -1

@kmturley
Copy link
Contributor Author

I see an improvement. With the current version I now get:

sfzlint "./sfz1 basic tests/01 - Amp LFO/01 - amp lfo freq.sfz" --spec-version=v1
sfzlint "./sfz2 basic tests/00 - syntax/00 - syntax introduction.sfz" --spec-version=v2
sfz2 basic tests/00 - syntax/00 - syntax introduction.sfz:27:2:W header spec v1 not in {'v2'} (region)
sfz2 basic tests/00 - syntax/00 - syntax introduction.sfz:27:10:E opcode spec v1 is not one of {'v2'}

Line 27 being:

<region> sample=..\..\samples\440.wav

Seems like there is still an issue as these are supported header/opcodes in v2 spec?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants