Modérateurs: Modération Forum DIY, Modération Forum Installations, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

Pour discuter de tout ce qui sert dans un projet DIY, de la défonceuse au logiciel de mesure

rePhase: linéarisation de phase, EQ et filtrage FIR

Message » 27 Aoû 2012 1:03

NB:
rePhase ayant beaucoup évolué depuis le début de ce long topic, il ne constitue pas une lecture idéale pour qui veut se faire une idée de ce que peut faire rePhase, ou de son état d'avancement actuel.

Plus d'infos, liens support et tutoriels ici : https://rephase.org


post original:

rePhase est un outil de génération d'impulse (finite impulse response, FIR), dans le but de corriger/filtrer un système.

Une fois générée l'impulse doit être insérée dans le système de reproduction à l'aide d'un outil de convolution, soit software (genre plugin convolver, qui sont pour la plupart gratuits) soit hardware (par exemple l'openDRC de minidsp).

L'amplitude et la phase peuvent être modifiées indépendamment l'une de l'autre.

rePhase est un logiciel gratuit sans restriction d'usage, et sans garantie: toute responsabilité vous incombe quant à son usage.
Il tourne pour le moment uniquement sous windows.

On peut utiliser rePhase dans plusieurs buts (éventuellement combinés) :
- linéariser la phase d'une enceinte existante, passive ou active (le but initial de ce logiciel), à la manière de phase arbitrator
- égaliser un système sans modifier sa réponse en phase
- réaliser un filtrage complet d'une enceinte, en phase linéaire (une convolution par voie)

Voir les explications, tutos, et exemples d'usage dans les deux posts suivants

Image . Image . Image

téléchargement: https://rephase.org

évolution :
Code: Tout sélectionner
1.4.3 2019-01-16
  Bug corrections:
    - after loading a preset, correctly show "rotate" option when set in
      Filters Linearization tab
    - resolved the zoom out (right click) bug where too much zoom states
      were added
  Adjustments:
    - measurement interpolation is now logarithmic in both magnitude and
      frequency axes, so that an interpolation between two points will
      always show as a straight line

1.4.2 2018-12-27
  Bug corrections:
    - corrected graphical EQ manipulation behavior when gain offset is used
      on a measurement
    - corrected active EQ focus bug after loading a measurement

1.4.1 2018-12-23
  Adjustments:
    - improved compatibility of frd format:
        * enforce decimal form instead of scientific notation
        * use semicolon instead of tabulation as column separator
        * add commented info (software, url, columns description)
    - improved information in EQ bank drop-down menu, including EQ type and
      number of bypassed EQs
    - dynamically adjusted choices in FFT drop-down menu, removing unusable
      options
    - removed unused EQ type drop-down menus in paragraphic phase EQ tab
    - reworked links and contact info

1.4.0 2018-12-19
  New features:
    - graphical zoom functionality, similar to HOLMImpulse:
        * clicking and dragging the mouse over the response graph draws a
          zoom box that defines the new graph area when button is released
        * right clicking cancels last zoom operation
        * zoom only affects frequency and magnitude scales, not phase one
    - real-time graphical edition of gain EQ points:
      clicking an EQ fader or entries will turn them yellow to reflect the
      fact that this particular EQ point now has a special focus:
        * mouse wheel changes its Q value while on the response graph
        * middle click or ctrl-click on the response graph updates its
          freq and dB values in real-time while the button is held pressed
        * dB position is relative to the existing target magnitude curve,
          including optional measurement, and is limited to ±96dB per EQ
          (note: it is recommanded to use "constant shape" EQ type for
          high amplitude corrections)
        * modifications can be cancelled as long as focus is not lost
    - "frequency response (.frd)" format to export the generated correction
      (ie the red curves) as a three columns frequency/magnitude/phase file
    - Added "linearize"/"rotate" option in Filters Linearization tab.
      "linearize" is the default and compensates for phase rotation of a
      given filter (inverse all-pass), whereas "rotate" emulates the phase
      rotation of the chosen filter without affecting magnitude (all-pass).
    - New "throughout banks" EQ tools to bypass or order EQ points
      throughout all banks at once. Confirmation is requested as this can
      be an irreversible operation. Ordering EQ points between different
      banks requires EQ types to be identical in all banks.
    - try to let the user save current settings before exiting in case of a
      crash
  Adjustments:
    - frequency marker on the magnitude target curve is replaced with a
      vertical yellow line that reflects both magnitude and phase
      corrections
    - up/down key binding on drop-down menus to iterate values (same idea
      as existing incrementation/decrementation of entries with numerical
      values)
    - link to rephase.org in Help menu
    - stay in same tab after settings load/reset
    - more compact setting file
    - view preferences are saved on the fly instead of when quitting
    - force entry focus loss when switching tab
    - added Nyquist frequencies of a few common sampling rates in frequency
      upper limit choices in the Range tab
    - removed bypassed EQs from EQ points count in "Bank" drop-down menu
    - avoid saving measurement summary in the setting file, and generate it
      on the fly

1.3.0 2018-02-15
  New features:
    - "Load Recent Settings" entry in File menu, keeping track of the last
      15 opened or saved setting files
    - ctrl-click on a fader will reset its value to zero, similar to what a
      middle click does (useful for persons using a mouse pad)
    - improved measurement parsing heuristics to handle more formats;
      recommended measurement format is still the one described in the info
      box when failing to load a measurement
    - added CSV output format: 64 bit floating-point values in text format,
      separated with commas
    - allowed measurement importing from clipboard, both from File menu
      and Measurement tab
    - added "hide magnitude" button in Measurement tab
  Adjustments:
    - added a "Donate" entry in Help menu linking to a paypal donation page
    - made "Load Settings From Clipboard" functionality tolerant to leading
      and trailing spaces and newlines in clipboard
    - reworked output format names
    - renamed "invert" button to "invert response" for clarity in
      Measurement tab
    - rename "impulse offset" to "impulse delay" for clarity in impulse
      status report
    - add max impulse level in impulse status report, complementing max
      response level
    - reworked impulse and measurement status report areas to make them
      more visible
    - enabled DPI adaptation if forced to by the operating system (not
      recommended, looks nice but crashes might occur), and added scale
      ratio and DPI indication in View menu
    - added a no warranty disclaimer in "About" info box

1.2.0 2016-12-08
  New features:
    - REW automated EQ settings generated using the 'rePhase' equaliser
      type (as implemented in REW V5.17 beta 14 and up) can now be imported
      directly into a paragraphic EQ bank
    - EQ points in paragraphic EQ tabs can now be individually bypassed
    - added a "tools" menu in paragraphic EQ tabs, effective on current
      bank:
      * load/save current bank into a '.eq' file as a JSON object
        (gain paragraphic EQ tab only)
      * load/save current bank into the clipboard as a JSON object to
        easily copy it to other banks or rePhase instances, or share it
        through forum posts
        (gain paragraphic EQ tab only)
      * import REW EQ settings generated with 'rePhase' equaliser type
        (gain paragraphic EQ tab only)
      * convert back and forth between constant and proportional Q types
        (gain paragraphic EQ tab only)
      * invert corrections
      * bypass or activate all EQ points
      * order by frequency, active or reversed order
    - "Help" menu entry (albeit probably not very helpful :( )
  Bug corrections:
    - The long lasting encoding issues with paths when loading, saving, and
      generating files should now at last be solved. It was already
      supposed to be the case in version 0.9.7, then 1.1.0, and should now
      *at last* be effective. Please report any problem with files or paths
      containing special characters (accents, etc.).
    - Corrected a bug introduced in version 1.1.1: fader position could
      sometimes change based on the position of the mouse cursor after
      loading or saving a file
    - Stop confining mouse cursor within faders, as it could stay stuck
      under some rare circumstances
  Adjustments:
    - set default optimization setting to none, as optimization process can
      increase preringing and should only really be used when the number of
      available taps is too limited to obtain the desired magnitude curve
    - increased default number of taps to 16384 to reflect an increase in
      CPU and DSP power in the last few years (wishful thinking? :) )
    - boost FFT length calculation ratio to improve precision
    - changed default windowing algorithm from rectangular to hann for a
      more generic default behavior
    - EPS vector files screenshots including result curves are now
      significantly lighter and result in smoother curves compared to
      versions 1.1.0 and 1.1.1
    - suppressed flickering when switching between Views buttons
    - default to "Large" view mode

1.1.1 2016-10-29
  New features:
    - added a 64 bit IEEE-754 output format to accommodate BruteFIR:
      http://tinyurl.com/htqvln8
  Bug corrections:
    - fader focus bug solved: http://tinyurl.com/ztbp7cl
    - beefed-up clipboard handling to avoid bugs when loading measurements
      by dragging them over the interface: http://tinyurl.com/jygt7jx
    - removed the final optimization step that was recently added in
      version 1.1.0 as it had some ill side effects in specific scenarios
  Adjustments:
    - renamed measurement "compensate" function to "invert" to avoid
      confusions: http://tinyurl.com/j76wm5w
    - reworked focus and entries editing in paragraphic EQ tabs:
        * using the tab key now goes from one entry to the other as
          expected, making it faster to edit multiple EQ points in a row
        * clicking on an entry does select the entire content for ease of
          editing
        * middle click or double left click on the dB/° entry used to reset
          the value to 0. This is now gone, but the same result can still
          be achieved with a middle click on the fader
    - internal DPI scaling adjustments

1.1.0 2016-10-27
  New features:
    - screenshot functionalities added to the file menu:
        * "Save Graph Screenshot As..." saves current graph view with a
          logo added to the bottom right corner
        * "Save Window Screenshot As..." saves current window view with the
          directory entry hidden for anonymity concerns
        * supported bitmap file formats are PNG, GIF and JPEG
        * graph screenshot also supports EPS vector file format
    - 64 bits output formats handling (mono/stereo IEEE wav, txt)
    - All-Pass filters added to the Minimum-Phase Filters tab
    - measurement compensate mode to manually replicate a given measurement
      (eg replicating a mic calibration file and getting its missing
      minimum-phase response, replicating a target curve, etc.)
    - added a "Clear Result" entry in the File menu, clearing result curves
      and status
    - reworked "what's new" changelog window to make it easier to read
  Removed features:
    - removed "complex" windowing algorithm which was deprecated since
      version 0.9.0
      An alert box will popup when loading settings using it
  Bug corrections:
    - bug correction for 2nd order minimum-phase filters with Q<0.5
      An alert box will popup when loading settings containing that bug
        * bug report: http://tinyurl.com/z59qw4t
    - filename encoding bugfix: accents and other special characters
      handling in setting, impulse, and measurement filenames and paths
      (was supposed to be resolved since 0.9.7, but was not...)
    - last updated graph setting sometimes remained unchanged after
      resetting or loading new settings
    - fixed a few instabilities:
        * Horbach-Keele filters with R=1
        * clipboard corner case errors
        * NaN detection bugs
    - fixed various graphical bugs:
        * generation status remaining after reset
        * misbehaved result phase curve when hide=-Inf
        * view slots flickering in large view mode
  Adjustments:
    - faster constant Q, proportional Q and constant shape EQs calculation:
      should be around three times as fast now, and should be notable when
      manipulating EQ faders as well as during the first generation step
      when a lot of EQ points are used
    - added "Pano Phase Shuffler" presets in the Paragraphic Phase EQ tab
        * source: http://tinyurl.com/pano-shuffler
        * settings: http://tinyurl.com/pano-shuffler-preset
    - status text under the generation button
    - added a final optimization step in moderate/extensive/maximal modes
      with a correction factor set to 1
    - added ± 15dB and ± 18dB ranges for convenience in paragraphic EQ tab
    - increased EQ dB precision from 0.1dB to 0.01dB for manual editing
    - set default optimization floor to -100dB
    - faster startup time
    - made clear the fact the subsonic filters linarization options were
      based on optimized approximations (cf http://tinyurl.com/hslsb8m ) by
      by naming them as such and adding "textbook" versions for the most
      reckless users :)

1.0.0 2015-06-25
  New features:
    - Albrecht cosine windows implementation
      Ref: A Family of Cosine-Sum Windows for High-Resolution Measurements
    - multiple memory slots in range settings to be able to quickly go from
      one view to the other and focus on different aspects of the response
      curves
      These slots are preset with (hopefully) useful values but can be
      manually modified and copied.
    - "Load Settings From Clipboard" and "Save Settings To Clipboard" menu
      entries in order to be able to easily share corrections on web forums
    - frequency marker for the last correction point (5 sec persistence)
    - fader values can now be manually edited to arbitrary values
  Bug corrections:
    - bug correction in Minimum-Phase Filters tab: the polarity of low-pass
      Linkwitz-Riley filters of order 2(2n+1) was reversed
      (eg 12dB/oct, 36dB/oct, 60dB/oct, 84dB/oct, etc.)
      A warning will be emitted when loading correction files from prior
      versions using an odd number of such filters, as the polarity will
      now be correct and reversed compared to the prior bogus correction.
    - bug correction with higher than normal noise floor with even order
      taps (introduced in version 0.9.9 while solving a similar problem
      for odd taps numbers!)
    - bug correction with txt output file with 0.000(...)0 values
      (especially pregnant when using Hann window)
    - correction of the bogus flat top window implementation
    - corner case instabilities corrections (undue octal conversions on
      some value entries)
  Adjustments:
    - set "32 float txt" as the default output format instead of "32bit
      LPCM wav" in order to avoid  rising the result noise floor because of
      the fixed point format
    - added de-empahasis and pre-emphasis presets in the Paragraphic EQ tab
    - added Linkwitz-Riley linearization orders 11th to 16th (why not?)
    - reduce default phase EQ range to ± 45° (was ± 90°) and removed
      unpractical ranges
    - increase default EQ range to ± 12dB (was ± 6dB)
    - added 384 and 352.8kHz sampling rates as drop menu options for ease
      of use (any other value can still be manually entered)
    - got rid of the "Curves" tab for the time being, waiting for the
      capture functionality to be implemented in some future version...

0.9.9 2014-12-10
    - shelving EQs with variable Q in Paragraphic EQ tab, with associated
      monotonic high and low shelv presets
    - centering can now be manually set to values in samples, percentage,
      time (us/ms/s) and distance (mm/cm/m).
      It is also possible to add or subtract several values, for example
      "middle+270us"
    - new centering adjustment layout:
        * 'float' is now 'use closest perfect impulse' and is explicitly
          recommended
        * 'int' is now 'round to closest sample'
        * 'use exact centering value' has been added for exact delays
    - 32 bits IEEE-754 float WAV output format added
    - output format noise floor is now shown in result curve
    - improved impulse and windowing symmetry, especially when an odd taps
      value is used
    - import/clear measurement file menu entries
    - fix partial installation catch

0.9.8c 2014-09-29
    - correction of a bug introduced in version 0.9.8 for closed-box phase
      linearization

0.9.8 2014-09-28
    - minimum-phase filters tab with common IIR filter types:
        * 1st order
        * 2nd order with arbitrary Q
        * Butterworth with slopes ranging from 6dB/oct to 996dB/oct in 6dB
          increments
        * Linkwitz-Riley with slopes ranging from 12dB/oct to 996dB/oct in
          12dB increments
    - 'compensate' mode for generalized arbitrary order Linkwitz
      Transform-like manipulations in minimum-phase filters tab
    - new centering options expressed as a percentage to easily obtain
      matched delays
    - default to "middle" centering instead of "energy" to avoid delay
      mismatch problems for the unaware user (principle of least surprise)
    - praxis measurement format handling, scientific notation in frequency
      column
    - smaller executable, new installation method
    - bug correction: crash on impulse generation with some specific filter
      settings
    - directory handling bug correction
    - measurements can now be loaded from the command line or drop on exe,
      similarly to settings
    - revamped file extension handling (settings)
    - revamped icon
    - smoothed out taps/fft size calculation

0.9.7 2013-09-03
    - Brickwall filters implementation.
      /!\ result slope relies solely on windowing /!\
      Iterative optimization and energy centering algorithms are
      automatically defeated when a brickwall filter is set, to make it
      possible to build complementary crossovers. It is up to the user to
      make sure he uses the exact same number of taps and same windowing
      algorithm on both sides of the crossover to ensure complementarity
    - sampling rate drop down menu can now also be directly edited to input
      arbitrary values, so menu options have been reduced to the most
      common values for clarity and ease of use
    - frequency, amplitude and phase ranges can now also be set to
      arbitrary values
    - optimization floor can now be set (was -40dB fixed)
    - B-weighting in optimization calculation was removed (for now)
    - new amplitude paragraphic presets with fixed frequencies (1kHz) for
      various Q values (0.5, 1, 2, 4, 8, 16)
    - got rid of scientific notation in txt output format to broaden
      compatibility
    - dark graph theme
    - various graphical bugs resolution
    - C float array output formats
    - filename encoding bugfix: accents and other special characters
      handling in setting and measurement filenames
    - "reject" filter slopes bugfix
    - "Save Settings" menu option
    - "Save modifications" dialog box before loading/resetting/exiting
    - window title now shows the settings name instead of the impulse name
    - updated 'tips' in Linearization and filtering tabs

0.9.6 2013-04-16
    - show frequency, amplitude and phase from current cursor position in
      graph
    - improved measurement handling:
        * drag and drop loading
        * loading speed up (twofold increase)
        * gain and time offset settings
        * polarity inversion and phase hiding functionality
        * bypass option
        * description: name, number of points, frequency and dB ranges
        * ARTA format handling (trailing spaces in frequency column)
    - Save measurement inside *.rephase settings files together with
      corrections and other parameters
    - new 'constant shape' EQ, both for linear-phase and minimum-phase EQ.
      Equivalent to a constant Q EQ at 6dB, it keeps exactly the same shape
      at any dB setting. It should be preferred to constant Q and
      proportional Q at high dB settings as those two are bound to their
      2nd order definition and have to stay within a ±90° phase range,
      thus leading to odd gain shapes at high dB settings...
    - "What's new" menu entry, exposing this changelog, instead of having a
      separate REDAME file
    - bugfix when loading settings from version prior to 0.9.2: filter
      frequencies were lost
    - going back to forced 'middle' in energy centering when only
      linear-phase corrections are used
    - curve capture functionality teasing...

0.9.5 2013-04-06
    - measurement import implementation, following HOLMImpulse import rules
      and interpolation strategy
      (first draft with limited functionality)
    - Nyquist frequency is now explicitly represented in gain result curve
      as a brickwall low-pass
    - result curves are now cleared upon settings reset or loading
    - improved energy centering algorithm
    - stop forcing energy centering to middle when only linear-phase
      corrections are in use
    - middle click on a fader reset its value to 0
    - bugfix for result phase curve unwrapping
    - bugfix on curves when polarity is inverted and a phase range larger
      than ±180° is chosen
    - bugfix for 1st order high-pass filters

0.9.4 2013-03-16
    - crash at start problems (previsously requiring temp/ dir content to
      be deleted) should now be solved
    - up to 16 banks can now be used in paragraphic gain and phase EQ
    - removed bank EQ tabs (settings saved with banks EQ will be
      automatically reported to paragraphic EQ banks)
    - improved graph range options: frequency and phase range can now be
      set and saved in settings
    - new phase wrapping implementation, automatically adapted to current
      phase range
    - view mode (compact/normal/large) is now automatically saved and
      restored from one run to the next
    - double-click on a fader value entry reset the fader to 0
    - improved raised cosine EQ. Interactions between EQs should now behave
      exacly like the "Ideal Graphic Equalization" exposed here in this
      application note: http://www.nordicsales.dk/imgdb/docs/lakewh_981.pdf
    - better precision for frequency entries (fractional up to 5 chars
      total to fit the entry) and appropriate up/down key binding (0.1hz
      steps under 10hz)
    - real 2/3 and 1/3 octave frequencies in paragraphic EQ sections
      (mandatory to make the raised cosine graphical EQ "magic" work...)
    - improved biquad precision (constant Q and proportional Q EQs) by
      adapting the sampling rate of each biquad to its fc
    - increased Q range (0.1 to 100)
    - improved phase deg precision in paragraphic EQ
    - added ESS sabre frequencies

0.9.3c (misnamed 0.9.31) 2013-01-29
    - mini bugfix for the taps entry...

0.9.3 2013-01-29
    - new Paragraphic EQ implementation, with multiple EQ types:
        * constant Q minimum-phase (new default)
        * constant Q linear-phase
        * proportional Q minimum-phase
        * proportional Q linear-phase
        * constant slope linear-phase (former implementation)
        * raised cosine linear-phase (beta version...)
      ( bank EQ section remains constant slope linear-phase )
    - FFT size can now be set by user (minimum size is two times the
      smallest power of two equal or bigger than the requested number
      of taps). Setting a larger FFT size makes generation and optimization
      slower, but can increase the precision of the optimization and also
      makes result curves more precise (just a visual effect for that one
      though: no effect on the actual impulse)
    - bug correction: negative gains can now be entered directly from
      the keybord in the Gain EQ Bank tab.
    - exit on repeated errors to avoid "panic mode" effect

0.9.2 2012-11-04
    - added back '24bit LPCM mono' output format, missing since 0.9.0
    - improved up/down key bindings on frequency entries
    - added up/down key bindings for taps entry, with color warnings for
      extreme values
    - new '1st order' and '2nd order' linear-phase filters, meant to be
      combined with an existing (and already corrected in phase) rolloff
      to obtain a linear-phase acoustical Linkwitz-Riley filter
    - made sure 'middle'+'float' centering ends up within -0.5/+0.5 sample
      from middle (was -1/+0.5)

0.9.1 2012-10-29
    - centering 'int' option was not working, this is now fixed
    - more explicit error message when loading a wrong setting file

0.9.0 2012-10-28
    - new file format '.rephase', saving/loading all settings, including
      correction settings, impulse settings, and graph settings
      (old '.jason' files can still be loaded, but impulse and graph
      settings get reset)
    - impulse file is now a three-part thing: directory, filename, and
      format extension. The directory is the only thing that is not saved
      in the '.rephase' file
    - '.rephase' files can be loaded upon start (as a parameter or by drag
      and drop on rephase.exe) or by drag and drop on the user interface
    - new offset option "float" for fractional sample centering, avoiding
      HF ripples in the impulse when the phase target is not a multiple
      of 180° at the Nyquist frequency
    - make "rectangular" the default window function: this should be the
      best choice for phase-only corrections, and "complex" windowing is
      not needed anymore with the "float" offset
      Note: "rectangular" window is still likely to be the worst choice
      for filter generation, when gain target goes far below 0dB...
    - new "ovelapping" filters, to be used for example in the midbass
      region, under Schroeder's frequency...
    - stereo wav formats are now available
    - bug correction in offset calculation in time=inv mode

0.8.4 2012-10-14
    - new time inversion option in general tab, to reverse the generated
      impulse, thus opposing phase corrections. This can be used to better
      visually track a phase target (inverse during correction, and return
      to normal before generating the impulse), or to evaluate the
      audibility of a given correction with headphones for example (in this
      case the convolution of the impulse will simulate the speaker before
      correction)
    - confirmation box when exiting whithout saving modified correction
      settings, and avoid asking for confirmation on reset when correction
      where saved or loaded without modification
    - Improves advice section in the linear filter tab, and add one in the
      linearization tab

0.8.3 2012-10-12
    - range choices in paragraphic EQs (up to ± 48dB and 720°)
    - improve arrow keys binding after click in faders
    - stop constraining frequencies to 16Hz-25khz in paragraphic EQs
      (now 1hz-99khz like in EQ banks)
    - ask for confirmation before resetting correction settings
    - bug correction when resetting settings ("wrong format")
    - stop using '.rephase' as default extension when saving an impulse

0.8.2 2012-10-07
    - try to play nice with multiple screens
    - new "large" layout, and "View" menu for layout choice
    - change Q interpretation for phase EQ to be more in line with gain EQ
      (to maintain an ascending compatibility, phase corrections saved from
      versions 0.8.0 and 0.8.1 get their Q divided by 1.8 upon loading)

0.8.1 2012-10-03
    - fix small bug with slope/ratio display when loading a FIR filter

0.8.0 2012-10-02
    - real-time amplitude/phase curves for both target and result
    - save/load correction settings (/!\ beware /!\, still experimental)
    - Horbach-Keele 'last' ratio (special tweeter) is now a different
      filter type for ease of use and clarity reasons
    - added some more window functions

0.7.6 2012-09-20
    - resolved (hopefuly) some issues with windows XP with the program
      refusing to actually start

0.7.5 2012-09-18
    - bug fix (crash during otpimisation step)

0.7.4 2012-09-16
    - bug corrections
    - optimization iterations are now faster
    - new optimization options ("moderate" and "extensive")
    - Horbach-Keele filters
      (ratio above 4.5 is the special "tweeter" ratio)
    - "Reject low" and "Reject high" filters for higher low or high rolloff

0.6.0 2012-08-26
    - first version on SourceForge

Dernière édition par pos le 15 Mar 2019 15:05, édité 59 fois.
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 27 Aoû 2012 1:03

Explications (très incomplètes, désolé)

tuto très complet de l'équipe miniDSP
https://www.minidsp.com/applications/ad ... e-fir-tool

article de Pat Brown sur prosoundweb (orienté filtrage brickwall)
http://www.prosoundweb.com/article//a_u ... r_filters/

tuto de JIM: (orienté filtrage avec JRiver)
http://jimmy.thomas.free.fr/Jriver/Tuto ... mpulse.pdf

article de jimbee: (orienté correction de phase)
http://jimbee.over-blog.com/page-8372251.html

article de Dominique Petoin
http://petoindominique.fr/php/pc_phase.php

La genèse, ainsi que quelque explications au fil des posts dans un ancien topic
viewtopic.php?p=177095964#p177095964

quelque explications liées à la toute première version dans ce même ancien topic (mais ca reste valable sur pas mal de point pour la version actuelle) :
viewtopic.php?p=177104852#p177104852

Pour le reste il faut lire plus avant ce topic, et ne pas hésiter à poser des questions!

Un mode d'emploi est en préparation... :charte:


Inspirations:

Phase Arbitrator:
http://www.thuneau.com/arbitrator.htm
et son mode d'emploi, dont la lecture est aussi utile pour la compréhension de rePhase:
http://www.thuneau.com/Loudspeaker%20Ph ... 0Guide.pdf

Grimm Audio LS1:
http://www.grimmaudio.com/pro_loudspeakers_ls1.htm
white paper: http://www.grimmaudio.com/whitepapers/speakers.pdf


Sujets sur rePhase sur d'autres forums:

DIYaudio.com:
http://www.diyaudio.com/forums/multi-wa ... -tool.html

minidsp.com:
http://www.minidsp.com/forum/3-suggesti ... or-opendrc
Dernière édition par pos le 31 Déc 2013 13:20, édité 15 fois.
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 27 Aoû 2012 1:04

Exemples d'usage

Filtrage à phase linéaire:

JIM: viewtopic.php?p=177198406#p177198406
Et son tuto rePhase/Holm/Jriver: http://jimmy.thomas.free.fr/Jriver/Tuto ... mpulse.pdf :grad:

Tuto de Thierry38 en anglais, avec VST Host:
http://www.diyaudio.com/forums/pc-based ... d-drc.html

Linearization de phase d'enceintes déjà filtrées (passives ou actives):

JMiParis/Jimbee: Elipson Prestige 4:
post177470831.html#p177470831
http://www.audax.fr/forum/read.php?4,38503

Goan/Thierry38: DIY:
post177476285.html#p177476285

Denis31: Behringer B2031A:
viewtopic.php?p=177226872#p177226872

Denis31: Focal 1028Be, Focal CC1028Be, Cabasse Bisquine MK2:
viewtopic.php?p=177257066#p177257066

Pos: JBL LSR25p:
viewtopic.php?p=177219752#p177219752

Pos: JBL 4425:
viewtopic.php?p=177107490#p177107490

Thierry38: DIY:
viewtopic.php?p=177231922#p177231922

Adrixn: DIY (CSD):
viewtopic.php?p=177109610#p177109610

Exemple CSD:
viewtopic.php?p=177235556#p177235556

article de jimbee:
http://jimbee.over-blog.com/pages/Egali ... 72251.html

Tests d'audibilité des corrections

Le logiciel de Jean-Luc Ohl:
viewtopic.php?p=177228423#p177228423



to be continued...
Dernière édition par pos le 25 Fév 2013 2:09, édité 15 fois.
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 27 Aoû 2012 19:24

:ohmg: :ohmg: :ohmg: :love: :love: :love:
Merci Merci Merci

Juste un petit essai de génération d'une impulse (filtre LR24dB à 500Hz et LR12 à 5kHz) avec la phase.
J'ai décalé la courbe de 1dB avec l'image du gabarit correspondant aux filtres choisis sous Arta.
Ce n'est pas une mesure, juste une vérification de l'impulsion générée.
Image
Bravo et merci de nous faire partager ça, c'est clairement un outil qui pourrait être payant et qui correspond parfaitement aux besoins d'un filtrage actif par convolution.

Je préfère cette approche de tout maîtriser plutôt qu'une correction inverse à partir d'une mesure et d'une courbe cible. Les filtres actif, même FIR vont devoir revoir leur copie !

Je ne sais pas si tu as vu mais Jriver possède visiblement la possibilité de faire de la convolution et le filtrage actif, il faut que je creuse encore un peu et fasse des essais mais ça va être une solution terrible.

Jriver fait la convolution en 64 bits, tu as la possibilité de rajouter ce format en sortie ?
Autre évolution possible, ajout des corrections Phase et amplitude de type Hi/Lo-Shelv ?

Je vais tester les autres possibilités.

Encore bravo et merci ................. et aux filtres traditionnel :adieu:
JIM
Modérateur Installations
Modérateur Installations
 
Messages: 7060
Inscription Forum: 19 Nov 2001 2:00
Localisation: Toulouse
  • offline

Message » 27 Aoû 2012 19:52

JIM a écrit:Jriver fait la convolution en 64 bits, tu as la possibilité de rajouter ce format en sortie ?

Avoir les coeff en 64 bits est vraiment complétement overkill ! (as tu calculé le raport S/N?)
Que la convolution utilise pour ses calculs intermédiaires un accumulateur sur 64 bits peut avoir son utilité, mais les coefficients :roll: ...

De mon coté , j'ai une 1ere version de mon convoler ladspa qui fonctionne, rien de sophistiqué, mais ca va pouvoir me permettre de faire des tests. Pour la petite histoire, avec 4096 coeff en stéréo je ne suis qu'a 50% de CPU sur un PC certe récent mais disposant d'un CPU de portable , le tout avec un code de convolution des plus basique (méthode directe et pas via FFT) .....
tcli
 
Messages: 4064
Inscription Forum: 23 Nov 2009 22:40
Localisation: Complètement à l'ouest
  • offline

Message » 27 Aoû 2012 20:23

Ok tcli pour les 64 bits, je ne suis pas rentré dans le fonctionnement et sa programmation donc !
4096 coeff, ça représente quel ordre de grandeur ?
JIM
Modérateur Installations
Modérateur Installations
 
Messages: 7060
Inscription Forum: 19 Nov 2001 2:00
Localisation: Toulouse
  • offline

Message » 27 Aoû 2012 21:28

JIM a écrit:4096 coeff, ça représente quel ordre de grandeur ?

Ben a 44100 cela fait un point de contrôle (phase et amplitude) tout les 44100/2/4096=5.38Hz
On voit tout de suite le pb du FIR : 5Hz de précision c'est très ( voir trop) bien a 2000Hz , mais à peine suffisant à 40Hz.
Moralité, il faut beaucoup de coeff si on veux être précis dans les basses , ou avoir recours à des astuces pas simples (warped FIR)
tcli
 
Messages: 4064
Inscription Forum: 23 Nov 2009 22:40
Localisation: Complètement à l'ouest
  • offline

Message » 27 Aoû 2012 23:17

Merci JIM, ça fait plaisir!
JIM a écrit:Je préfère cette approche de tout maîtriser plutôt qu'une correction inverse à partir d'une mesure et d'une courbe cible.

100% d'accord
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 27 Aoû 2012 23:21

tcli a écrit:Ben a 44100 cela fait un point de contrôle (phase et amplitude) tout les 44100/2/4096=5.38Hz
On voit tout de suite le pb du FIR : 5Hz de précision c'est très ( voir trop) bien a 2000Hz , mais à peine suffisant à 40Hz.
Moralité, il faut beaucoup de coeff si on veux être précis dans les basses , ou avoir recours à des astuces pas simples (warped FIR)

Pourquoi ne pas faire du downsampling, en fonction de la freq la plus haute à reproduire, pour economiser des taps?

c'est ce que fait four audio:
http://www.fouraudio.com/en/technical-a ... ution.html

C'est pour ce genre d'usage que j'ai prévu la possibilité de choisir une freq de sampling basse en sortie dans rePhase.
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 27 Aoû 2012 23:44

pos a écrit:
tcli a écrit:Ben a 44100 cela fait un point de contrôle (phase et amplitude) tout les 44100/2/4096=5.38Hz
On voit tout de suite le pb du FIR : 5Hz de précision c'est très ( voir trop) bien a 2000Hz , mais à peine suffisant à 40Hz.
Moralité, il faut beaucoup de coeff si on veux être précis dans les basses , ou avoir recours à des astuces pas simples (warped FIR)

Pourquoi ne pas faire du downsampling, en fonction de la freq la plus haute à reproduire, pour economiser des taps?

Oui, bien sur, mais a partir du moment où on utilise le FIR pour de la correction global et pas du filtrage, il faut bien être à 44.1Khz,
ou alors utiliser un banc de filtre, mais c'est plus compliqué ...
tcli
 
Messages: 4064
Inscription Forum: 23 Nov 2009 22:40
Localisation: Complètement à l'ouest
  • offline

Message » 16 Sep 2012 11:58

Nouvelle version 0.7.4 dispo sur sourceforge
En fait je voulais attendre que la version avec affichage des courbes soit prête avant de faire un nouvel update mais je finalement je préfère mettre une version intermediaire qui corrige qq bugs et apporte les améliorations en cours de dev

donc pour les changements:
- corrections de bugs
- accélération des itérations d'optimisation
- nouveaux choix d'optimisation ("moderate" et "extensive") qui stoppent les itérations d'optimisation une fois un but ou une durée atteinte
- nouveau filtre Horbach-Keele (avec le mode special "tweeter" en mettant le ratio au dessus de 4.5)
- nouveaux filtres "Reject low" et Reject high", avec un rolloff plus élevé respectivement sur le bas et le haut


Pour Horbach-Keele voir ici pour des explications:
http://www.linkwitzlab.com/horbach-keele%20xo.ppt
http://www.linkwitzlab.com/Horbach-Keel ... 2%20V4.pdf
(voir surtout le second lien)

A noter que la frequence indiquée dans le filtrage est la frequence critique, pas la frequence de coupure.
Pour le moment il faut calculer le ratio et la freq critique soit même à partir des distances et direcitivté visées, à l'aide des liens ci dessus, mais peut etre qu'il y aura une interface plus sympa (comme celle d'acourate) dans une prochaine version


Pour les "Reject low" et "Reject high", il faut évidemment utiliser le même pour le LP et le HP, car il sont complémentaire.
En gros si on veux rejeter plus vite les aigus on va utiliser le "Reject high" à la fois pour le LP (qui ressemblera "un peu" à un Linkwitz Riley) et le HP (qui aura un rolloff plus rapide, mais complementaire au LP).
Si vous avez une idée de nom plus explicite pour ces filtres je suis preneur (j'avais pensé à "Steep low"/"Steep high" au départ)
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 16 Sep 2012 12:16

Salut,

Je n'en suis pas encore là dans mon projet de PCHC/HIFI mais chapeau c'est du beau boulot ... :ohmg:
stloup
 
Messages: 1017
Inscription Forum: 12 Sep 2002 12:00
Localisation: Loir et Cher
  • offline

Message » 16 Sep 2012 21:03

merci :)
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 17 Sep 2012 14:34

Quelques suggestions,

Ce qui va vite manquer, pour la prochaine version peut être :wtf: , c'est une sauvegarde de la configuration de tout les filtres.
Un rapport sauvegardable et chargeable en clair au format texte serait super, un chapitre par onglet par ex.
Ca devient lourd si on doit tout noter et reprendre pour ajouter ou enlever juste une EQ.

Et les low/high shelv ?

Une petite explication sur le choix de la fenêtre "windowing" serait sympa car j'ai vu que suivant le filtre, on pouvait avoir de grosses imprécisions. Du genre, un palier à -50dB sur un filtre. Ajouter peut être une indication sur la limite basse et la précision en fonction du nombre de taps ?

Un section EQ et filtres à phase minimale ?

Sinon, j'ai mis en oeuvre ton logiciel avec Jriver et Holm, nickel
JIM
Modérateur Installations
Modérateur Installations
 
Messages: 7060
Inscription Forum: 19 Nov 2001 2:00
Localisation: Toulouse
  • offline

Message » 17 Sep 2012 20:47

Salut JIM,

Merci pour ces suggestions.
La sauvegarde oui c'est prévu (les boutons sont grisés), mais il faut un format à peu près stable pour etre compatible avec les futurs versions de manière ascendante, et permetre de gerer proprement les incompatibilités. En gros il faut juste se pencher un peu sur la question pour faire un truc propre. Je vais voir ça en priorité.
A noter que ca ne concernera que les reglages de la partie de gauche (eq et filtres), et pas les settings de l'impulse. Le but est de pouvoir sauver des "preset" indépendament des params de l'impulse (qui sont propre à une mise en oeuvre donnée... meme si le nb de taps et le windowing jouent evidemment sur le resultat final).

Les low/high shelv je ne sais pas trop où les ajouter (dans des bandes extrêmes de l'eq paragraphiques, ou comme paramètre en plus dans la banque d'eq ?...). C'est vraiment essentiel tu pense?

Pour le windowing oui c'est clair, c'est pour ca que j'ai mis un gros "caveat emptor". A priori je les ai à peu près "classé" dans le menu en fonction de leur rejet des ripples, la rectangulaire etant la plus mauvaise.
En gros si tu ne fais que de la correction de phase et de l'eq légère il vaut mieux etre sur complex, mais sur du filtrage FIR il faut choisir une autre des fenetres. Plus tu rejete loin les ripples et plus tu risque de ne pas arriver à "suivre" la pente demandée si elle est d'ordre élevé ou basse en freq (en fonction du nb de taps evidemment...). C'est exactement comme le parametre de stop ripple sur le DX46 (c'est une particularité du windiwing kaiser: il est parametrable...). Au fond je devrait peut etre ajouter des kaisers avec un stop ripple plus explicite.
En tout cas dans la prochaine version il y aura des courbes affichées avec à la fois le target, et le resultat obtenu en fonction des params choisi (il faudra tout de meme cliquer sur "generate"), ca devrait résoudre le problème.

EQ et filtre à phase minimale pourquoi pas, il faudrait rajouter une section, mais ce ne sera pas pour la prochaine version à priori.
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline


Retourner vers Outils & Logiciels

 
  • Articles en relation
    Dernier message